それらの意味は何ですか?異なる値に設定できますか?
アーキテクチャは構築したいものであり、有効なアーキテクチャはコードベースで構築することを思い付くものです。
したがって、armv7sのバイナリのみをビルドしたい場合でも、同じソースコードでarmv7とarmv6をコンパイルできます。そう VALID_ARCHS = armv6 armv7 armv7s
、しかしあなたはARCHS = armv7s
実際にコードでビルドしたいのはだけだからです。
または、Apple-eseの場合:
ARCHS(アーキテクチャ)
識別子のスペース区切りリスト。バイナリが対象とするアーキテクチャ(ABI、プロセッサモデル)を指定します。このビルド設定が複数のアーキテクチャを指定する場合、生成されたバイナリには、指定された各アーキテクチャのオブジェクトコードが含まれる場合があります。
そして:
VALID_ARCHS(有効なアーキテクチャ)
識別子のスペース区切りリスト。バイナリを構築できるアーキテクチャを指定します。ビルド中、このリストはARCHSビルド設定の値と交差します。結果のリストは、バイナリを実行できるアーキテクチャを指定します。結果のアーキテクチャリストが空の場合、ターゲットはバイナリを生成しません。
ソース: Xcode Build Setting Reference
実際には、VALID_ARCHS
単独で変更することを心配せずに、ARCHS
をいじって構築するアーキテクチャを設定します。通常、デバッグビルドはNATIVE_Arch
、テスト/実行するマシンのデバッグバージョンのみをビルドし、サポートする予定のすべてのアーキテクチャ向けにリリースをビルドするため。
Apple document、from、バイナリ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になり、両方のarmv6で正常に実行できます。/armv7/armv7sは、アームプロセッサに後方互換性があります。