Xcode 5.1 にアップデートした後、64 ビット シミュレーター用のプロジェクトをビルドできなくなり、次のエラーが表示されます。
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
ターゲットビルド設定は次のとおりです。
「Build Active Architecture」を「No」に変更し、「Valid Architectures」に「i386」を追加してみましたが、残念ながらどちらも機能しませんでした。ご提案をいただければ幸いです。
ベストアンサー1
必要なのは、ONLY_ACTIVE_ARCH
を設定することだけですNO
(少なくとも私の場合はうまくいきました)。以下はそのスクリーンショットです:
編集:
私の知る限りでは (何か間違っている点があれば指摘してください。ONLY_ACTIVE_ARCH
)を に設定すると、YES
Xcode はアクティブなアーキテクチャ (現在 Xcode でアクティブなデバイスを参照) に対してのみビルドすることを意味します。Xcode のデフォルト設定では Debug が に設定されているようです。YES
そのため、Mac に接続されている特別なデバイスに対してのみビルドしたい場合、他のアーキテクチャのバイナリはビルドされません。
ビルドに失敗した理由は、プロジェクトが接続したデバイスのアーキテクチャをサポートしていないことが原因である可能性があります。したがって、最善の解決策は、デバイスに適切なアーキテクチャを追加することです。以下は、サポートされるアーキテクチャとデバイスのリストです。
- ARMv8/ ARM64 :
iPhone 6
、、、iPhone 5s
iPad Air
Retina iPad Mini
- ARMv7 :
iPhone 5
、、iPhone 5c
iPad 4
- ARMv7 :
iPhone 3GS
、、、、、、、、、iPhone 4
iPhone 4S
iPod 3G/4G/5G
iPad
iPad 2
iPad 3
iPad Mini
- ARMv6 :
iPhone
、、iPhone 3G
iPod 1G/2G
なぜ「ONLY_ACTIVE_ARCH
をNO
」に設定する動作しますか? デバイスは、追加したすべてのアーキテクチャ用にビルドされたバイナリを引き続き実行できます (ビルドに合格) が、パフォーマンスが若干低下します。これは簡単な解決策ですが、最善の解決策ではありません。
注記: 追加したアーキテクチャの数が増えるほど、生成されるバイナリのサイズが大きくなります。そのため、プロジェクトに適したアーキテクチャを選択することをお勧めします。;)