最近、開発中のMacBookをクラシックなMacBook(32ビット)からMacBook Air(64ビット)に切り替えました。 XCode 4を実行している古いMacBook(32ビット)で作成されたプロジェクトを開こうとしています。
プロジェクトは、PhoneGap 1.7.0で作成されたPhoneGapアプリケーションです。
私の新しいMacBook Air(64ビット)はXCode 5を実行しています
開発者のプロファイルを古いMacBookから新しいMacBook Airにインポートしました。しかし、実行しようとすると、次のエラーメッセージが表示されます。
私はビルド設定のアーキテクチャをarmv7に変更しようとしましたが、まだ運がありません:(
このエラーが発生する理由と修正方法を知っている人はいますか?
ありがとう
結局のところ、アプリケーションがarmv7をサポートしていない場合、XCode 5はデフォルトのアーキテクチャをarmv7に変更します。 Cordova 1.7.0を実行していますが、そのバージョンはarmv7アーキテクチャをサポートしていません。
Build Settings
から削除しました-> Valid Architecture
armv6
をBuild Settings
に追加-> Valid Architecture
libSystem.B.dylib
の問題を修正:/usr/lib/libSystem.B.dylib
をBuild Settings
から削除しました-> Linking
-> Other Linker Flags
-weak_library
もBuild Settings
から削除しました-> Linking
-> Other Linker Flags
Xcode 5は、シミュレーター(1)およびiOS(2)用のライブラリーをビルドするように要求します。次に、これらをマージして(3)ファットバイナリにして、メインプロジェクトにリンクします。 Xcodeがメインプロジェクトのビルドに使用しているのと同じフラグを使用します(スクリーンダンプに表示されます)。
私が行う一般的な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"
。ファットバイナリへのマージ
使用するものに応じて、.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