связывание с 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, но все равно не повезло : (

кто-нибудь знает, почему я получаю эту ошибку и как ее исправить?

спасибо

2 ответов


OK Итак, как оказалось, XCode 5 изменяет архитектуру по умолчанию на armv7, когда мое приложение не поддерживает armv7. Я запускаю Cordova 1.7.0, и эта версия не поддерживает архитектуру armv7.

исправить проблему архитектуры:

  1. удалены все архитектур от Build Settings --> Valid Architecture
  2. добавил armv6 to Build Settings --> Valid Architecture enter image description here


исправить libSystem.B.dylib вопрос:

  1. удалены /usr/lib/libSystem.B.dylib С Build Settings -->Linking -->Other Linker Flags

  2. и удалены -weak_library С Build Settings -->Linking -->Other Linker Flags enter image description here


Xcode 5 просит вас создать свои библиотеки для симулятора (1) и для iOS (2). Затем вы можете объединить (3) их в двоичный файл fat, который затем свяжете с вашим основным проектом. Я использую те же флаги, что и Xcode для создания вашего основного проекта (как видно из вашего screendump).

выраженные в общих переменных GNU toolchain я делаю:

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. Слияние с fat binary

выберите .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