リファレンス
構成設定ファイル (xcconfig) 形式
構成設定ファイル (.xcconfig ファイル拡張子の付いたファイル) は、ビルド構成ファイル または xcconfig ファイルとも呼ばれ、プロジェクトまたはターゲットの特定のビルド構成の ビルド設定 を定義およびオーバーライドするプレーンテキストファイルです。この型のファイルは Xcode の外部で編集でき、ソース制御システムとうまく統合されます。ビルド構成ファイルは特定のフォーマット規則を遵守しており、遵守していない場合はビルド警告を生成します。
注意:構成設定ファイルをプロジェクトに追加するには、ビルド構成 (xcconfig) ファイルの追加 を参照してください。
コメント
単一行コメントを使用して、ビルドシステムで無視すべきメモやその他の情報を含めます。各コメントは 2 つのスラッシュ (//) で始まり、行の終わりに達するまで続きます。例えば:
//
// Config.xcconfig
// My iOS App
//
// Created by Johnny Appleseed on 11/15/16.
// Copyright © 2018 Apple. All rights reserved.
//
コメントは、それ自体で1行に配置することも、またビルド設定値の後に続けることもできます。例えば:
ASSETCATALOG_COMPILER_APPICON_NAME = MyAppIcon //これはコメントです。
ビルド設定値の指定
ビルド構成ファイルには、考えられるすべてのビルド設定をリストする必要はありません。カスタマイズしたいものだけを含める必要があります。各ビルド設定値は、以下の形式で 1 行で定義されます。
BUILD_SETTING_DECLARATION_NAME = BUILD_SETTING_VALUE_DEFINITION
例えば:
ONLY_ACTIVE_ARCH = YES
値の型は多数ありますが、最も一般的なものは以下のとおりです。
値の型 | 説明 |
ブール値 | YES または NO の値。 |
文字列 | 指定されたテキスト値。 |
列挙型(文字列) | 事前定義されたテキスト値。 |
文字列のリスト | 文字列値のスペース区切りのリスト。 文字列リスト内の文字列にスペースが 含まれている場合、文字列は引用符で 囲まなければなりません。 |
path(パス) | POSIX 形式のファイルまたは ディレクトリパス。 |
パスリスト | パス値のスペース区切りのリスト。 パスリスト内のパスにスペースが 含まれている場合、パスは引用符 で囲まなければなりません。 |
ビルド設定名とその値の定義の両方で、先頭と末尾のスペースは無視されます。同じ条件の同じビルド設定 (プラットフォーム条件を値に追加する を参照) が複数回定義されている場合、最終インスタンスが使用され、他のすべては無視されます。
注意:プロジェクトエディタ の [ビルド設定] ペイン内でビルド設定を選択すると、ビルド設定名が クイックヘルプインスペクタ 内に表示されます。ビルド設定の名前は、ビルド設定リファレンス にもあります。[ビルド設定] ペイン内で、ビルド設定のタイトルと名前を切り替える ことができます。
値が上書きされないようにする
新しく定義された値の一部として既存のプロジェクトまたはターゲットビルド設定値を保持するには、以下の形式の $(inherited) 変数を使用します。
BUILD_SETTING_DECLARATION_NAME = $(inherited)ADDITIONAL_VALUE
例えば
OTHER_SWIFT_FLAGS = $(inherited) -v
別のビルド設定の値を参照する
別のビルド設定の値を参照するには、以下の形式で他のビルド設定名を参照してください。
BUILD_SETTING_DECLARATION_NAME = $(OTHER_BUILD_SETTING_DECLARATION_NAME)
例えば
OBJROOT = $(SYMROOT)
他のビルド設定値は、以下のようにインラインで参照できます。
DSTROOT = /tmp/$(PROJECT_NAME).dst
または:
CONFIGURATION_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
プラットフォーム条件を値に追加
あるプラットフォーム対別のプラットフォームをターゲットにする場合、プロジェクトを異なる方法でビルドする必要があります。これを可能にするために、ビルドシステムは以下の条件をサポートしています。
条件付き | 条件値 |
sdk | macos10.12 や iphoneos10.2 などの SDK。 特定のプラットフォームの任意の SDK と一致させるには、バージョンの代わり にアスタリスク (*) を指定します。たと えば、macos * の条件値はすべての macOS SDK と一致します。 |
arch | x86_64 や arm64 などのアーキテクチャ。 |
条件はビルド設定名の後に表示され、角かっこで囲まれています。例えば:
BUILD_SETTING_DECLARATION_NAME[CONDITIONAL=CONDITION_VALUE] = VALUE_DEFINITION
たとえば、以下の行は、どの macOS SDK でビルドするときにでも、OTHER_LDFLAGS ビルド設定の値を -lncurses に設定します。
OTHER_LDFLAGS[sdk=macosx*] = -lncurses
以下の形式を使用して、複数の条件を指定することもできます。
BUILD_SETTING_DECLARATION_NAME[CONDITIONAL1=CONDITION_VALUE1]
[CONDITIONAL2=CONDITION_VALUE2] = VALUE_DEFINITION
たとえば、以下の行では、SDK が macosx * の値と一致し、アーキテクチャが x86_64 の値と一致する場合は常に、OTHER_LDFLAGS ビルド設定の値を -lncurses に設定します。
OTHER_LDFLAGS[sdk=macosx*][arch=x86_64] = -lncurses
他のビルド構成ファイルからの設定を含める
ビルド構成ファイルは、他のビルド構成ファイルからビルド設定をインポートできます。別のファイルから設定をインポートするには、接頭辞で #include を使用して、その後に引用符で囲まれたファイルへの参照を続けます。例えば:
#include "MyOtherConfigFile.xcconfig"
指定されたファイルがビルド時に見つからない場合、ビルド警告が生成されます。ビルド構成ファイルが見つからない場合の警告を抑制するには、#include 接頭辞の後に疑問符 (?) を付けます。 例えば:
#include? "MyOtherConfigFile.xcconfig"
ファイル名、相対パス、絶対パスを使用して、他のビルド構成ファイルを参照できます。
参照型 | 説明 | 例 |
ファイル名 | 現在のビルド構成ファイルと同じフォルダ 内のビルド構成ファイルの名前。 | #include "MyOtherConfigFile.xcconfig" |
相対パス | 現在のビルド構成ファイルの場所を 基準にしたビルド構成ファイルへのパス。 | #include "../MyOtherConfigFile.xcconfig" |
絶対パス | ディスク上のビルド構成ファイルへの 絶対パス。 | #include "/Users/MyUserName/Desktop /MyOtherConfigFile.xcconfig" |
注意:他のビルド構成ファイルへの参照は、ビルド設定を解釈する前に処理されます。
以下も見よ