回答:
アーキテクチャはあなたが構築したいものであり、有効なアーキテクチャはあなたのコードベースで構築することを思いつくことができるものです。
したがって、armv7sのバイナリのみをビルドしたい場合でも、同じソースコードでarmv7とarmv6を正しくコンパイルできます。つまりVALID_ARCHS = armv6 armv7 armv7s
、ARCHS = armv7s
実際にコードで構築したいのはそれだけなので、設定します。
または、Apple-eseの場合:
ARCHS(アーキテクチャ)
スペースで区切られた識別子のリスト。バイナリの対象となるアーキテクチャ(ABI、プロセッサモデル)を指定します。このビルド設定で複数のアーキテクチャが指定されている場合、生成されたバイナリには、指定された各アーキテクチャのオブジェクトコードが含まれる場合があります。
そして:
VALID_ARCHS(有効なアーキテクチャ)
スペースで区切られた識別子のリスト。バイナリを構築できるアーキテクチャを指定します。ビルド中、このリストはARCHSビルド設定の値と交差します。結果のリストは、バイナリを実行できるアーキテクチャを指定します。結果のアーキテクチャリストが空の場合、ターゲットはバイナリを生成しません。
ソース:Xcodeビルド設定リファレンス
実際には、そのままにしVALID_ARCHS
て変更を心配する必要はありませんARCHS
。構築するアーキテクチャを設定するためにいじるだけです。通常、デバッグビルドはjustに設定しNATIVE_ARCH
ます。これは、テスト/実行するマシンのデバッグバージョンと、サポートする予定のすべてのアーキテクチャのリリースビルドのみをビルドするためです。
Appleのドキュメントから、XcodeがビルドするバイナリはとValid Architectures
交差するリストであることがわかりArchitectures
ます。
だから、私はジェレミーの答えが正しいとは思わない、と彼は言う:
したがって、armv7sのバイナリのみをビルドしたい場合でも、同じソースコード
でarmv7とarmv6を正しくコンパイルできます。したがってVALID_ARCHS = armv6 armv7 armv7s
、コードで実際に構築したいのはそれだけなので、ARCHS = armv7sを設定します。
設定するとVALID_ARCHS = armv6 armv7 armv7s
、ARCHS = armv7s
バイナリXcodeのビルド結果はarmv7sになり、armv6 / armv7と互換性がなくなります。
また、armv6 / armv7 / armv7sと互換性を持たせる場合は、を設定する必要が VALID_ARCHS = armv6 armv7 armv7s
ありARCHS = armv6
ます。このようにして、バイナリXcodeの結果はarmv6になり、armプロセッサは下位互換性があるため、armv6 / armv7 / armv7sの両方で正常に実行できます。 。