54097


Xcodeの`ONLY_ACTIVE_ARCH`は何をするフラグでしょうか？

厳密に言うと、Xcodeではなくプロジェクトファイル（プロジェクト名.xcodeproj/project.pbxproj）に他人のコミットの差分として現れたものですので、Xcodeのどこに該当するものなのかわかっていません。

ネットで検索しても、何をするためのものという説明はヒットせず、  
ここのフラグを変えると動くといったものしかヒットしましせんでした。


CC BY-SA 4.0
2019-04-11T09:39:52.377
54095
2019-04-11T11:12:00.680
2019-04-11T09:46:22.770
9008
9008
question
ios xcode
ONLY_ACTIVE_ARCHはなんのフラグですか？


Build Settingsの中のこちらの設定に相当するものです。

[![ONLY_ACTIVE_ARCH](https://i.stack.imgur.com/wXN3t.png)](https://i.stack.imgur.com/wXN3t.png)

"Build Active Architectures Only"なら説明されなくてもわかるかもしれませんが、ARCH
(Architecture)と言うのは、要はCPUアーキテクチャのことで、Xcodeは"Architectures"(ARCHS)に設定した様々なCPUアーキテクチャ用(32bit-x86,
64bit-x86, 32bit-ARM, 64bit-
ARM等)のバイナリをビルドすることができるのですが、「現在アクティブなビルド対象用のアーキテクチャだけビルドすれば良い」(例えば64bit-
Simulatorがビルド対象なら64bit-x86だけ、とか)ことを指示するためのフラグです。

例えばビルド済みのバイナリライブラリをリンクする場合など、ライブラリ側には一部のアーキテクチャ向けのバイナリしか存在しない場合があって、その場合、上記のフラグを真にしておかないとビルドがうまくいかない場合があったりますので、「ここのフラグを変えると動く」と言った記事は、そう言った場合の対処方法を示していたのではないかと思います。

普通はXcodeのデフォルト通り(Deubgでは真,
Releaseでは偽)にしておけば問題無いはずですが、Apple製以外のライブラリを使用したいときに、architecture云々のエラーが出た場合には試してみると良いかもしれません。


CC BY-SA 4.0
2019-04-11T11:03:18.327
54097
2019-04-11T11:12:00.680
2019-04-11T11:12:00.680
13972
13972
54095
answer