見出し画像

プログラミングガイド「ビルド設定リファレンス」(A部)

Build settings reference」の私家版和訳です。

ルート/←/→B部

1. アクティブ・ビルドアクション (ACTION)

実行されるビルドシステムアクションを識別する文字列です。

2. 追加SDK (ADDITIONAL_SDKS)

基本SDK (SDKROOT)で指定したSDKの上に階層化すべきスパースSDKの場所を指定します。複数のSDKがリストされている場合は、最初のSDKが最優先されます。この設定で指定したSDKは全て「スパース」なSDKである必要があり、例えば、macOSリリース全体のSDKではありません。

3. 代替のインストールグループ (ALTERNATE_GROUP)

代替の権限ファイル (ALTERNATE_PERMISSIONS_FILES)設定下でリストされているファイルのグループ名またはGIDです。

4. 代替のインストール権限 (ALTERNATE_MODE)

代替の権限ファイル (ALTERNATE_PERMISSIONS_FILES)設定下でリストされているファイルに使用される権限です。

5. 代替のインストール所有者 (ALTERNATE_OWNER)

代替の権限ファイル (ALTERNATE_PERMISSIONS_FILES)設定下でリストされているファイルの所有者名またはUIDです。

6. 代替の権限ファイル (ALTERNATE_PERMISSIONS_FILES)

代替の所有者、グループ、および権限が適用されるファイルのリストです。

7. Swift標準ライブラリを常に埋め込む (ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES)

ターゲットがSwiftコードを含まない場合でも、常にターゲットのプロダクトにSwift標準ライブラリを埋め込みます。例えば、ターゲットがSwiftを含む他のプロダクトを埋め込んでいる場合や、Swiftを含まないがSwiftを含むプロダクトをテストしているテストターゲットの場合には、この設定を有効にすべきです。この設定は、ラップされたプロダクトにのみ適用され、スタンドアロンのバイナリプロダクトには適用されません。

8. ユーザーパスを常に検索する(非推奨) (ALWAYS_SEARCH_USER_PATHS)

この設定はXcode 8.3で非推奨になっており、将来のバージョンではサポートされない可能性があります。この設定を無効にすることをお勧めします。

後方互換性の理由から、この設定はデフォルトで有効になっています。無効にすることを強く推奨します。

有効にすると、「#include <header.h>」スタイルと「#include "header.h"」スタイルのディレクティブの両方で、ヘッダー検索パス (HEADER_SEARCH_PATHS)の前に、ユーザーヘッダー検索パス (USER_HEADER_SEARCH_PATHS)のパスが検索されます。結果として、「#include <header.h>」を使用する際には、「String.h」ヘッダーのようなユーザーヘッダーがシステムヘッダーよりも優先されます。これは、ユーザーヘッダーの検索パス (USER_HEADER_SEARCH_PATHS)で提供されるパスに対して「-iquote」フラグを使用して行なわれます。無効にしていて、コンパイラが個別のユーザーパスを完全にサポートしている場合、ユーザーヘッダーは「#include "header.h"」スタイルのプリプロセッサ・ディレクティブでのみアクセスできます。

9. App-Extension-Safe APIのみが必要 (APPLICATION_EXTENSION_API_ONLY)

有効にすると、コンパイラとリンカは、アプリの拡張機能で利用できないAPIの使用を禁止し、この設定を有効にしてビルドされていないフレームワークへのリンクを禁止します。

10. コピーしたファイルを変換する (APPLY_RULES_IN_COPY_FILES)

この設定を有効にすると、ターゲットのビルドフェーズCopy Filesにあるファイルは、ビルドルールで処理されます。例えば、プロパティリスト・ファイル(.plist)及び文字列ファイルは、それぞれプロパティリストの出力エンコーディング (PLIST_FILE_OUTPUT_FORMAT)及び文字列ファイルの出力エンコーディング (STRINGS_FILE_OUTPUT_ENCODING)で指定された通りに変換されます。

11. ヘッダーファイルの処理 (APPLY_RULES_IN_COPY_HEADERS)

この設定を有効にすると、ターゲットのビルドフェーズCopy Headersの全てのパブリックおよびプライベートヘッダーがビルドルールによって処理されるようになります。これにより、これらのヘッダーを処理するためのカスタムビルドルールを定義できます。カスタムスクリプトルールは、「HEADER_OUTPUT_DIR」からの相対的な出力を定義でき、その出力はヘッダーの可視性を考慮してスクリプトに提供されます。スクリプトには「SCRIPT_HEADER_VISIBILITY」(“public”または“private”)も渡されます。この設定が有効な場合、ビルドルールで処理されないファイルは、ビルドフェーズCopy Filesに移動する必要があるかもしれません。

12. アーキテクチャ (ARCHS)

プロダクトがビルドされるアーキテクチャのリストです。これは通常、プラットフォームが提供する定義済みのビルド設定に設定されています。複数のアーキテクチャが指定された場合、ユニバーサルバイナリが生成されます。

13. アセットカタログのApp Iconセット名 (ASSETCATALOG_COMPILER_APPICON_NAME)

アセットカタログのApp Iconセットの名前で、その内容がInfo.plistにマージされます。

14. コンプリケーション名をウォッチする (ASSETCATALOG_COMPILER_COMPLICATION_NAME)

アセットカタログから使用するウォッチ・コンプリケーションの名前です。

15. アセットカタログの起動イメージセット名 (ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME)

アセットカタログの起動イメージセットの名前で、その内容がInfo.plistにマージされます。

16. リーダーボード識別子のプレフィックス (ASSETCATALOG_COMPILER_LEADERBOARD_IDENTIFIER_PREFIX)

アセットカタログのリーダーボードは、オプションでGame Center識別子を指定できます。指定しない場合は、その名前の前にこの値が付けられ、自動的に識別子が生成されます。

17. リーダーボード・セット識別子のプレフィックス (ASSETCATALOG_COMPILER_LEADERBOARD_SET_IDENTIFIER_PREFIX)

アセットカタログのリーダーボードセットは、オプションでGame Center識別子を指定できます。指定しない場合は、その名前の前にこの値が付けられ、自動的に識別子が生成されます。

18. 最適化 (ASSETCATALOG_COMPILER_OPTIMIZATION)

値を指定しない場合、コンパイラはデフォルトの最適化を使用します。また、「time」を指定してアクセス速度を最適化したり、「space」を指定してコンパイルされたアセットカタログを小さくして最適化したりすることもできます。

19. ステッカーパック識別子のプレフィックス (ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX)

アセットカタログのステッカーパックは、オプションで識別子を指定できます。指定しない場合は、その名前の前にこの値が付けられ、自動的に識別子が生成されます。

20. 通知を表示する (ASSETCATALOG_NOTICES)

アセットカタログのコンパイル中に発生した通知を表示します。

21. アセットカタログのその他のフラグ (ASSETCATALOG_OTHER_FLAGS)

アセットカタログ・コンパイラに追加のフラグを渡します。

22. 警告を表示する (ASSETCATALOG_WARNINGS)

アセットカタログのコンパイル中に発生した警告を表示します。

23. アセットパックのマニフェストURLプレフィックス (ASSET_PACK_MANIFEST_URL_PREFIX)

空の文字列以外を設定すると、AssetPackManifest.plistファイル内の全てのURLは、この文字列にアセットパックの名前が付加されたものになります。設定されていない場合、AssetPackManifest.plist内のURLは、アセットパックのビルド場所に合わせて適切なものになります。プレフィックス文字列は、エスケープされたり引用符で囲まれたりしないので、必要なエスケープはURL文字列の一部にしなければなりません。この設定はAssetPackManifest.plistファイル内のURLにのみ影響を与えます。—ローカル・ファイルシステムでアセットパックがビルドされる場所には影響しません。

この記事が気に入ったらサポートをしてみませんか?