Ссылка на dylib для файла MacOSX '/usr/lib/libSystem.B.dylib' для архитектуры i386
Недавно я переключил свой MacBook разработки с классического MacBook (32 бит) на MacBook Air (64 бит). Я пытаюсь открыть проект, который был сделан на моем старом MacBook (32 бит) с XCode 4.
Проект представляет собой приложение PhoneGap, сделанное в PhoneGap 1.7.0.
Мой новый MacBook Air (64-разрядный) запускает XCode 5.
Я импортировал свои профили разработчиков из своего старого MacBook в новый MacBook Air. Но когда я пытаюсь запустить его, я получаю следующее сообщение об ошибке.
![enter image description here]()
![enter image description here]()
Я попытался изменить мою архитектуру в настройках сборки на armv7, но все равно не повезло: (
Кто-нибудь знает, почему я получаю эту ошибку и как ее исправить?
Спасибо
Ответы
Ответ 1
ОК, так что, как оказалось, XCode 5 изменяет архитектуру по умолчанию на armv7, когда мое приложение не поддерживает armv7. Я запускаю Cordova 1.7.0, и эта версия не поддерживает архитектуру armv7.
Проблема с архитектурой исправления:
- Удалены архитектуры ВСЕ из
Build Settings
→ Valid Architecture
- Добавлен
armv6
в Build Settings
→ Valid Architecture
![enter image description here]()
Исправить libSystem.B.dylib
проблема:
-
Удалено /usr/lib/libSystem.B.dylib
из Build Settings
→ Linking
→ Other Linker Flags
-
Также удалено -weak_library
из Build Settings
→ Linking
→ Other Linker Flags
![enter image description here]()
Ответ 2
Xcode 5 просит вас создать свои библиотеки для симулятора (1) и для iOS (2). Затем вы можете объединить (3) в жирную двоичную систему, которую вы затем связываете с вашим основным проектом. Я использую те же флаги, что и Xcode, для создания вашего основного проекта (как видно из вашего screendump).
Выраженные общие переменные toolchain gnu:
1. Создание библиотеки для симулятора
CC=clang
IPHONEOS_DEPLOYMENT_TARGET=7.0
PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
CFLAGS="-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -mios-simulator-version-min=7.0"
2. Создание библиотеки для iOS
CC=clang
IPHONEOS_DEPLOYMENT_TARGET=7.0
PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
CFLAGS="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -miphoneos-version-min=7.0"
3. Слияние с жирным двоичным
Выберите любой из .a
или .dylib
в зависимости от того, что вы используете:
lipo -create "your armv7 lib".a "your simulator lib".a -output "your lib".a
lipo -create "your armv7 lib".dylib "your simulator lib".dylib -output "your lib".dylib