リファレンス
ビルド設定リファレンス
アクティブビルドアクション (ACTION)
実行中のビルドシステムアクションを識別する文字列。
追加の SDK (ADDITIONAL_SDKS)
Base SDK (SDKROOT) で指定されたものの上に階層化するスパース SDK の場所。一つ以上の SDK がリストされている場合、最初の SDK が最も優先されます。この設定で指定されたすべての SDK は、たとえば macOS リリース全体の SDK ではなく、"スパース" SDK である必要があります。
代替インストールグループ (ALTERNATE_GROUP)
代替アクセス許可ファイル (ALTERNATE_PERMISSIONS_FILES) 設定の下にリストされているファイルのグループ名または gid。
代替インストール許可 (ALTERNATE_MODE)
代替アクセス許可ファイル (ALTERNATE_PERMISSIONS_FILES) 設定の下にリストされているファイルに使用されるアクセス許可。
代替インストール所有者 (ALTERNATE_OWNER)
代替アクセス許可ファイル (ALTERNATE_PERMISSIONS_FILES) 設定の下にリストされているファイルの所有者名または uid。
代替権限ファイル (ALTERNATE_PERMISSIONS_FILES)
代替所有者、グループ、および権限が適用されるファイルのリスト。
常に Swift 標準ライブラリを埋め込む (ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES)
ターゲットに Swift コードが含まれていない場合でも、常にターゲットの製品に Swift 標準ライブラリを埋め込みます。たとえば、ターゲットが Swift を含む他の製品を埋め込む場合、または Swift を含まないがターゲットを含む製品をテストするテストターゲットである場合、これを有効にする必要があります。この設定はラップされた製品にのみ適用され、スタンドアロンのバイナリ製品には適用されません。
常にユーザーパスを検索 (旧式) (ALWAYS_SEARCH_USER_PATHS)
この設定は Xcode 8.3 で旧式となり、将来のバージョンではサポートされなくなる可能性があります。設定を無効にすることをお勧めします。
有効にした場合、#include <header.h>-style および #include "header.h"-style ディレクティブの両方とも、ヘッダ検索パス (HEADER_SEARCH_PATHS) の前に ユーザヘッダ検索パス (USER_HEADER_SEARCH_PATHS) でパスを検索します。その結果、#include <header.h> を使用する場合、独自の String.h ヘッダなどのユーザヘッダはシステムヘッダよりも優先されます。これは、ユーザヘッダ検索パス (USER_HEADER_SEARCH_PATHS) で提供されるパスに -iquote フラグを使用して行われます。無効にしていて、コンパイラが個別のユーザパスを完全にサポートしている場合、ユーザヘッダには #include "header.h" スタイルのプリプロセッサディレクティブでのみアクセスできます。
後方互換性のため、この設定はデフォルトで有効になっています。無効にすることを強くお勧めします。
アプリ拡張安全な API のみが必要 (APPLICATION_EXTENSION_API_ONLY)
これを有効にすると、コンパイラとリンカは、アプリの拡張機能で利用できない API の使用を禁止し、この設定を有効にしてビルドされていないフレームワークへのリンクを禁止します。
コピーしたファイルを変換する (APPLY_RULES_IN_COPY_FILES)
この設定を有効にすると、ターゲットのファイルのコピービルドフェーズのファイルがビルド規則によって処理されます。たとえば、プロパティリストファイル (.plist) と文字列ファイルは、それぞれ プロパティリスト出力エンコーディング (PLIST_FILE_OUTPUT_FORMAT) と 文字列ファイル出力エンコーディング (STRINGS_FILE_OUTPUT_ENCODING) の指定に従って変換されます。
ヘッダーファイルの処理 (APPLY_RULES_IN_COPY_HEADERS)
この設定を有効にすると、ターゲットのヘッダのコピービルドフェーズのすべての Public ヘッダと Private ヘッダーがビルド規則によって処理されるようになります。これにより、これらのヘッダを処理するカスタムビルド規則を定義できます。カスタムスクリプト規則では、ヘッダの可視性を考慮して、そのスクリプトに提供される HEADER_OUTPUT_DIR に関連する出力を定義できます。スクリプトには SCRIPT_HEADER_VISIBILITY ( "public"または "private") も渡されます。この設定が有効になっている場合、ビルド規則で処理されるべきではないファイルをファイルのコピービルドフェーズに移動する必要がある場合があります。
アーキテクチャ (ARCHS)
製品がビルドされるアーキテクチャのリスト。これは通常、プラットフォームによって提供される事前定義されたビルド設定に設定されます。一つ以上のアーキテクチャを指定すると、ユニバーサルバイナリが生成されます。
アセットカタログアプリアイコンセット名 (ASSETCATALOG_COMPILER_APPICON_NAME)
コンテンツが Info.plist にマージされるアセットカタログアプリアイコンセットの名前。
Watch のコンプリケーション名 (ASSETCATALOG_COMPILER_COMPLICATION_NAME)
アセットカタログから使用する watch コンプリケーションの名前。
アセットカタログ起動画像セット名 (ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME)
そのコンテンツが Info.plist にマージされるアセットカタログ起動画像セットの名前。
リーダーボード ID の接頭辞 (ASSETCATALOG_COMPILER_LEADERBOARD_IDENTIFIER_PREFIX)
アセットカタログ内のリーダーボードでは、オプションで Game Center ID を指定できます。そうでない場合は、名前の接頭辞にこの値が付加され、自動生成された ID が形成されます。
リーダーボードセット ID 接頭辞 (ASSETCATALOG_COMPILER_LEADERBOARD_SET_IDENTIFIER_PREFIX)
アセットカタログ内のリーダーボードセットでは、オプションで Game Center ID を指定できます。そうでない場合は、名前の接頭辞にこの値が付加され、自動生成された ID が形成されます。
最適化 (ASSETCATALOG_COMPILER_OPTIMIZATION)
値がない場合、コンパイラはデフォルトの最適化を使用します。また、アクセスの速度を最適化する時間や、コンパイルされた小さなアセットカタログを最適化するスペースを指定することもできます。
ステッカーパック ID 接頭辞 (ASSETCATALOG_COMPILER_STICKER_PACK_IDENTIFIER_PREFIX)
アセットカタログ内のステッカーパックでは、オプションで ID を指定できます。そうでない場合は、名前の接頭辞にこの値が付加され、自動生成された ID が形成されます。
通知を表示 (ASSETCATALOG_NOTICES)
アセットカタログのコンパイル中に発生した通知を表示します。
アセットカタログのその他のフラグ (ASSETCATALOG_OTHER_FLAGS)
追加のフラグをアセットカタログコンパイラに渡します。
警告を表示 (ASSETCATALOG_WARNINGS)
アセットカタログのコンパイル中に発生した警告を表示します。
アセットパックマニフェスト URL 接頭辞 (ASSET_PACK_MANIFEST_URL_PREFIX)
空の文字列以外に設定した場合、AssetPackManifest.plist ファイル内のすべての URL は、この文字列とアセットパックの名前が追加されたもので構成されます。設定しない場合、AssetPackManifest.plist 内の URL は、アセットパックのビルド場所に応じて適切に形成されます。接頭辞文字列はエスケープされず、また引用されないため、必要なエスケープは URL 文字列の一部でなければなりません。この設定は、AssetPackManifest.plist ファイル内の URL にのみ影響します。アセットパックがローカルファイルシステムでビルドされている場所には影響しません。
アクティブビルドコンポーネント (BUILD_COMPONENTS)
このアクション中にビルドされるコンポーネントのリスト。
配布用のライブラリをビルド (BUILD_LIBRARY_FOR_DISTRIBUTION)
ライブラリが配布用にビルドされていることを確認します。Swift の場合、これにより、ライブラリの進化とモジュールインターフェイスファイルの生成がサポートされます。
バリアントの作成 (BUILD_VARIANTS)
生成されるリンクされたバイナリのビルドバリアントのリスト。デフォルトでは、通常のバリアントのみが生成されます。その他の一般的な値には、デバッグとプロファイルが含まれます。
BUILT_PRODUCTS_DIR
すべての製品のファイルを見つけることができるディレクトリを識別します。このディレクトリには、製品ファイルまたはそれらへのシンボリックリンクが含まれます。スクリプトの実行ビルドフェーズでは、このビルド設定の値を、1 つ以上のターゲットによってビルドされた製品ファイルを参照する便利な方法として使用できます。これらのファイルがディレクトリ階層全体に分散している場合でも。 (たとえば、配置場所 (DEPLOYMENT_LOCATION) が YES に設定されている場合)
バンドルローダー (BUNDLE_LOADER)
リンクされているバンドル出力ファイルをロードする実行可能ファイルを指定します。バンドルからの未定義のシンボルは、バンドルがリンクされた動的ライブラリの 1 つであるかのように、指定された実行可能ファイルに対してチェックされます。
C++ コンテナーオーバーフローチェックを有効にする (CLANG_ADDRESS_SANITIZER_CONTAINER_OVERFLOW)
Address Sanitizer が有効になっているときに C++ コンテナのオーバーフローをチェックします。このチェックでは、アプリケーション全体を Address Sanitizer でビルドする必要があります。そうでない場合は、誤検知が報告される可能性があります。
フレームワークモジュールに非モジュール式インクルードを許可 (CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES)
この設定を有効にすると、非モジュール式のインクルードをフレームワークモジュール内から使用できます。フレームワークと非モジュール式インクルードの両方をインポートするクライアントがこのようなヘッダを使用すると、定義が重複する可能性があるため、これは本質的に安全ではありません。
デッドストア (CLANG_ANALYZER_DEADCODE_DEADSTORES)
変数に保存されている値をチェックし、再度読み取ることは決してありません。
グランドセントラルディスパッチの誤用 (CLANG_ANALYZER_GCD)
Grand Central Dispatch API の誤用をチェックします。
Grand Central Dispatch によるパフォーマンスアンチパターン (CLANG_ANALYZER_GCD_PERFORMANCE)
パフォーマンスの低下につながる可能性がある Grand Central Dispatch イディオムをチェックします。
IOKit および libkern 参照カウント規則の違反 (CLANG_ANALYZER_LIBKERN_RETAIN_COUNT)
OSObject から継承するオブジェクトに関連するリークとオーバーリリースを検出します
ローカリゼーションコンテキストコメントがありません (CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT)
NSLocalizedString() マクロの呼び出しにローカライザのコンテキストコメントがない場合に警告します。
ローカライザビリティがありません (CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED)
ローカライズされていない文字列が、ローカライズされた文字列を必要とするユーザインターフェイスメソッドに渡されたときに警告します。
不適切なメモリ管理 (CLANG_ANALYZER_MEMORY_MANAGEMENT)
メモリリーク、解放後の使用、およびその他の API の誤用について警告します。
Mach インターフェイスジェネレーター規則の違反 (CLANG_ANALYZER_MIG_CONVENTIONS)
MIG ルーチンがメモリ管理規則に違反した時に警告します。
'nonnull'の誤用 (CLANG_ANALYZER_NONNULL)
nonnull のパラメータと戻り値の型の誤用をチェックしてくます。
NSNumber と CFNumberRef の疑わしい変換 (CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION)
NSNumber、CFNumberRef、OSNumber、OSBoolean のインスタンスなどの数値オブジェクトが別のオブジェクトではなく原始値に比較されるかまたは変換されたときに警告します。
nil mutex と @synchronized (CLANG_ANALYZER_OBJC_ATSYNC)
@synchronized の mutexes として使用される nil ポインターで警告します。
コレクション API の誤用 (CLANG_ANALYZER_OBJC_COLLECTIONS)
CF のコレクションが非ポインターサイズ値で作成された場合に警告します。NS のコレクションが Objective-C でない型の要素で初期化されているかどうかをチェックします。
-dealloc での不適切なインスタンスのクリーンアップ (CLANG_ANALYZER_OBJC_DEALLOC)
-dealloc でインスタンスが不適切にクリーンアップされたときに警告します。
Objective-C 汎用の誤用 (CLANG_ANALYZER_OBJC_GENERICS)
特殊な汎用型が互換性のない型に変換された場合に警告します。
メソッドシグネチャの不一致 (CLANG_ANALYZER_OBJC_INCOMP_METHOD_TYPES)
型に互換性がない Objective-C メソッドシグネチャについて警告します。
CFError と NSError の不適切な処理 (CLANG_ANALYZER_OBJC_NSCFERROR)
CFErrorRef または NSError を受け入れる関数がエラーの発生を示すことができない場合に警告します。
参照カウント規則の違反 (CLANG_ANALYZER_OBJC_RETAIN_COUNT)
リークと不適切な参照カウント管理について警告します。
'self= `super init`規則の違反 (CLANG_ANALYZER_OBJC_SELF_INIT)
Objective-C 初期化メソッド内で super init が適切に呼び出されていることをチェックします。
未使用の Ivar (CLANG_ANALYZER_OBJC_UNUSED_IVARS)
決して使用されない private の ivar について警告します。
*EXPERIMENTAL* バッファオーバーフロー (CLANG_ANALYZER_SECURITY_BUFFER_OVERFLOW_EXPERIMENTAL)
潜在的なバッファオーバーフローをチェックします。
ループカウンタとして使用される浮動小数点値 (CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER)
浮動小数点値をループカウンターとして使用したときに警告します (CERT:FLP30-C,FLP30-CPP)。
'getpw'、'gets' (バッファオーバーフロー)の使用 (CLANG_ANALYZER_SECURITY_INSECUREAPI_GETPW_GETS)
getpw と gets の使用について警告します。関数は、バッファオーバーフローを引き起こす可能性があるため危険です。
'mktemp' または予測可能な'mktemps' の使用 (CLANG_ANALYZER_SECURITY_INSECUREAPI_MKSTEMP)
予測可能な一時ファイルを生成する mktemp の使用について警告します。mktemps によって廃止されました。mkstemp に渡される形式文字列の X の数が 6 未満の場合に警告します。
'rand' 関数の使用 (CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND)
予測可能な乱数列を生成する rand、random、および関連関数の使用について警告します。代わりに arc4random を使用してください。
'strcpy' と'strcat' の使用 (CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY)
strcpy 関数と strcat 関数の使用について警告します。これにより、バッファオーバーフローが発生する可能性があるからです。代わりに strlcpy または strlcat を使用して下さい。
未チェックの戻り値 (CLANG_ANALYZER_SECURITY_INSECUREAPI_UNCHECKEDRETURN)
戻り値を常にチェックしなければならない機密関数の使用について警告します。
'vfork'の使用 (CLANG_ANALYZER_SECURITY_INSECUREAPI_VFORK)
本質的に安全ではない vfork 関数の使用について警告します。代わりに、より安全な posix_spawn 関数を使用してください。
キーチェーンサービス API の誤用 (CLANG_ANALYZER_SECURITY_KEYCHAIN_API)
キーチェーンサービス API から返されたキーチェーン属性リストとデータバッファのリークをチェックします。
C++ での移動後の使用エラー (CLANG_ANALYZER_USE_AFTER_MOVE)
移動後の C++ オブジェクトの使用時に警告します。
C++ 言語の方言 (CLANG_CXX_LANGUAGE_STANDARD)
標準または標準でない C++ 言語の方言を選択します。オプションは以下のとおりです。
- C++ 98:ISO C++ 1998 に修正を加えて受け入れますが、GNU 拡張は受け入れません。-std= c++98
- GNU++ 98:修正と GNU 拡張を含む ISO C++ 1998 を受け入れます。-std=gnu++98
- C++ 11:ISO C++ 2011 標準に修正を加えて受け入れますが、GNU 拡張は受け入れません。-std=c++11
- GNU++ 11:修正と GNU 拡張を含む ISO C++ 2011 標準を受け入れます。-std=gnu++11
- C++ 14:ISO C++ 2014 標準に修正を加えて受け入れますが、GNU 拡張は受け入れません。-std=c++14
- GNU++ 14:修正と GNU 拡張を含む ISO C++ 2014 標準を受け入れます。-std=gnu++14
- C++ 17:ISO C++ 2017 標準に修正を加えて受け入れますが、GNU 拡張は受け入れません。-std=c++17
- GNU++ 17:修正と GNU 拡張を含む ISO C++ 2017 標準を受け入れます。-std=gnu++17
- コンパイラのデフォルト:デフォルトの C++ 言語の方言を使用するようにコンパイラに指示します。特定のニーズがない限り、これは通常最良の選択です。(現在 GNU++ 98 と同等です。)
C++ 標準ライブラリ (CLANG_CXX_LIBRARY)
使用する C++ 標準ライブラリのバージョンを選択します。
- libstdc++:GCC および Clang (デフォルト) で動作する従来の C++ 標準ライブラリ。
- libc++:Clang でのみ機能する高度に最適化された C++ 標準ライブラリであり、新しい C++ 11 機能をサポートするように設計されています。
デバッグ情報レベル (CLANG_DEBUG_INFORMATION_LEVEL)
デバッグシンボルが有効な場合に出力されるデバッグ情報の量を切り替えます。これは、生成されたデバッグ情報のサイズに影響を与え、LTO を使用する場合など、大規模なプロジェクトでは場合によっては問題になることがあります。
コードカバレッジサポートを有効にする (CLANG_ENABLE_CODE_COVERAGE)
コードカバレッジインストルメンテーションを使用したビルドを可能にします。これは、ビルドでコードカバレッジが有効になっている場合にのみ使用され、これは通常、Xcode スキーム設定を介して行われます。
静的オブジェクトを破棄 (CLANG_ENABLE_CPP_STATIC_DESTRUCTORS)
静的またはスレッドの保管期間を持つ変数が終了時間に破壊を実行するかどうかを制御します。
(C および Objective-C の) モジュールを有効にする (CLANG_ENABLE_MODULES)
システム API のモジュールの使用を有効にします。システムヘッダは、生のヘッダではなくセマンティックモジュールとしてインポートされます。これにより、ビルドとプロジェクトのインデックス作成が高速化されます。
Clang モジュールのデバッグを有効にする (CLANG_ENABLE_MODULE_DEBUGGING)
この設定を有効にすると、clang は clang モジュールおよびプリコンパイル済みヘッダで利用可能な共有デバッグ情報を使用します。これにより、ビルドアーティファクトが小さくなり、コンパイル時間が短縮され、より完全なデバッグ情報が得られます。この設定は、配布用のデバッグ情報を含む静的ライブラリをビルドする場合にのみ無効にする必要があります。
Objective-C 自動参照カウント (CLANG_ENABLE_OBJC_ARC)
参照カウントされた Objective-C コードをコンパイルして (ガベージコレクションが有効でない場合)、自動参照カウントを使用します。自動参照カウントを使用してコンパイルされたコードは、手動参照カウント (たとえば、従来の retain および release メッセージ) または自動参照カウントを使用してコンパイルされた他のコード (フレームワークなど) と互換性があります。現在、このモードの使用は、Objective-C ガベージコレクションを使用するコードのコンパイルと互換性がありません。
手動 Retain リリースの弱い参照 (CLANG_ENABLE_OBJC_WEAK)
Objective-C コードをコンパイルして、手動 retain リリース (MRR) セマンティクスでコンパイルされたコードの弱い参照を有効にします。
Objective-C 実行時サポートの暗黙的なリンク (CLANG_LINK_OBJC_RUNTIME)
Objective-C コードを使用してターゲットをリンクする場合、Foundation で暗黙的にリンクし (古い OS に展開する場合)、後方互換性ライブラリを使用して、実行時サポートがネイティブに利用できない OS で新しい言語機能を実行できるようにします。Objective-C を使用するほとんどのターゲットはこれを使用する必要がありますが、ターゲットがこの動作を選択しない必要があることはまれです。
属性注釈を追加 (CLANG_MIGRATOR_ANNOTATIONS)
プロパティとメソッドに属性注釈を追加します。
メソッドの結果型のインスタンス型を推測 (CLANG_MIGRATOR_INSTANCE_TYPE)
id の代わりに、メソッドの結果の型の instancetype を推測します。
NS_ENUM/NS_OPTIONS マクロを使用 (CLANG_MIGRATOR_NSENUM_MACROS)
列挙子に NS_ENUM/NS_OPTIONS マクロを使用します。
指定初期化メソッドを推測します (CLANG_MIGRATOR_OBJC_DESIGNATED_INIT)
指定初期化メソッドの NS_DESIGNATED_INITIALIZER を推測します。
ObjC リテラル (CLANG_MIGRATOR_OBJC_LITERALS)
最新の ObjC リテラル構文への移行を有効にします。
ObjC 添え字 (CLANG_MIGRATOR_OBJC_SUBSCRIPTING)
最新の ObjC 添え字構文への移行を有効にします。
推論されたプロパティの原子性 (CLANG_MIGRATOR_PROPERTY_ATOMICITY)
推定されたプロパティの原子性を選択します。
ObjC プロパティドット構文 (CLANG_MIGRATOR_PROPERTY_DOT_SYNTAX)
プロパティドット構文へのセッター/ゲッターメッセージの移行を有効にします。
プロトコル準拠を推測する (CLANG_MIGRATOR_PROTOCOL_CONFORMANCE)
インターフェイスメソッドからプロトコル適合を推測します。
public ヘッダーのみを変更 (CLANG_MIGRATOR_PUBLIC_HEADERS_ONLY)
ターゲットの public ヘッダのみを変更します。
読み取り専用プロパティを推測する (CLANG_MIGRATOR_READONLY_PROPERTY)
getter メソッドから読み取り専用プロパティを推測します。
読み書きプロパティを推測する (CLANG_MIGRATOR_READWRITE_PROPERTY)
getter および setter メソッドから readwrite プロパティを推測します。
フレームワークを自動的にリンクする (CLANG_MODULES_AUTOLINK)
#import または #include を使用して参照される SDK フレームワークを自動的にリンクします。この機能では、モジュールのサポートも有効にする必要があります。このビルド設定は、C ファミリ言語にのみ適用されます。
private モジュールの警告を無効にする (CLANG_MODULES_DISABLE_PRIVATE_WARNING)
プライベートモジュールの命名の推奨される使用に関する警告を無効にします。これは、モジュールのサポートが有効になっている場合にのみ意味があります。
最適化プロファイルファイル (CLANG_OPTIMIZATION_PROFILE_FILE)
最適化プロファイルの使用 (CLANG_USE_OPTIMIZATION_PROFILE) が有効な場合に使用するプロファイルデータファイルへのパス。
'ビルド' の分析モード (CLANG_STATIC_ANALYZER_MODE)
静的アナライザーがビルドアクション中に使用する深度。Deep を使用して、アナライザーの全機能を実行します。分析を高速化するには、Shallow を使用します。
'分析'の分析モード (CLANG_STATIC_ANALYZER_MODE_ON_ANALYZE_ACTION)
分析アクション中に静的アナライザーが使用する深度。Deep を使用して、アナライザーの全機能を実行します。分析を高速化するには、Shallow を使用します。
わずかな自動変数初期化 (CLANG_TRIVIAL_AUTO_VAR_INIT)
スタック変数を初期化しないかどうかを指定します。これにより、初期化されていないスタック変数が使用されたときに不注意で情報が開示される可能性があります。または、パターンを初期化する必要があるかどうかを指定します。
追加の整数チェックを有効にする (CLANG_UNDEFINED_BEHAVIOR_SANITIZER_INTEGER)
符号付き整数オーバーフローのチェックに加えて、符号なし整数オーバーフローをチェックします。
Nullability 注釈チェックを有効にする (CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY)
関数呼び出し、return 文、および割り当ての nullability 注釈の違反をチェックします。
最適化プロファイルを使用 (CLANG_USE_OPTIMIZATION_PROFILE)
この設定を有効にすると、clang はターゲットをビルドするときに、ターゲット用に収集された最適化プロファイルを使用します。
範囲外の列挙型割り当て (CLANG_WARN_ASSIGN_ENUM)
列挙型の範囲外の列挙値に整数定数を割り当てることについて警告します。
暗黙的に順次一貫したアトミックの使用 (CLANG_WARN_ATOMIC_IMPLICIT_SEQ_CST)
メモリ順序を明示的に指定する代わりに、暗黙的に順次一貫したメモリ順序でアトミックが使用されると警告します。
自動解放のブロックキャプチャ (CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING)
暗黙的な自動解放パラメータのブロックキャプチャについて警告します。
暗黙的なブール変換 (CLANG_WARN_BOOL_CONVERSION)
疑わしいブール値への暗黙の変換について警告します。たとえば、if (foo) と書くと、foo は名前であり、関数の場合は警告をトリガーします。
不審なカンマ (CLANG_WARN_COMMA)
コンマ演算子の不審な使用について警告します。
暗黙的な定数変換 (CLANG_WARN_CONSTANT_CONVERSION)
精度の低下または完全な意味での定数値の変更を引き起こす定数値の暗黙的な変換について警告します。
以前のバージョンの C++ でのC++ 11 拡張機能の使用 (CLANG_WARN_CXX0X_EXTENSIONS)
C++ 11 より古い言語標準を使用して C++ コードをコンパイルする場合、C++ 11 拡張機能の使用について警告します。
仮想デストラクタのないポリモーフィッククラスのインスタンスの削除 (CLANG_WARN_DELETE_NON_VIRTUAL_DTOR)
仮想関数はあるが仮想デストラクタはないポリモーフィッククラスのインスタンスを削除するときに警告します。
旧式の Objective-C メソッドのオーバーライド (CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS)
Objective-C クラスが旧式のクラスをサブクラス化するか、旧式または使用不可とマークされているメソッドをオーバーライドする場合に警告します。
'isa' の直接使用 (CLANG_WARN_DIRECT_OBJC_ISA_USAGE)
実行時の API を使用する代わりに Objective-C の isa ポインタへの直接アクセスについて警告します。
ドキュメントのコメント (CLANG_WARN_DOCUMENTATION_COMMENTS)
ドキュメントタグの欠落や不正など、ドキュメントのコメント (doxygen スタイル) の問題について警告します。
空のループ本体 (CLANG_WARN_EMPTY_BODY)
疑わしい空のループ本体について警告します。
暗黙的な列挙型変換 (CLANG_WARN_ENUM_CONVERSION)
異なる種類の列挙値間の暗黙的な変換について警告します。たとえば、これは関数またはメソッドへの引数として間違った列挙型フラグを使用するときに問題を catch できます。
暗黙的なフロート変換 (CLANG_WARN_FLOAT_CONVERSION)
浮動小数点数を整数に変換する暗黙の変換について警告します。
暗黙的な符号変換 (CLANG_WARN_IMPLICIT_SIGN_CONVERSION)
整数値の符号を変更する暗黙の整数変換について警告します。
無限再帰 (CLANG_WARN_INFINITE_RECURSION)
関数を経由するすべてのパスがそれ自体を呼び出した場合に警告します。
暗黙的な整数からポインターへの変換 (CLANG_WARN_INT_CONVERSION)
ポインタと整数の間の暗黙の変換について警告します。たとえば、これは NSNumber*'s と生の整数を使用して不正に混合した場合に問題を catch できます。
Noescape 注釈がない (CLANG_WARN_MISSING_NOESCAPE)
メソッドのシグニチャーで欠落している noescape 注釈について警告します。
暗黙的な非リテラル Null 変換 (CLANG_WARN_NON_LITERAL_NULL_CONVERSION)
ゼロに評価される非リテラル式が NULL ポインタとして扱われることについて警告します。
nullable 値の不正な使用 (CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION
_Nonnull パラメータとして渡された場合など、nullable 式が許可されていない場所で使用された場合に警告します。
出力パラメータの暗黙的な所有権型 (CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE)
Objective-C オブジェクト参照の暗黙の所有権型を出力パラメータとする事に警告します。たとえば、 NSObject** 型のパラメータを宣言すると、コンパイラは出力パラメータの所有権型が __autoreleasing であると想定するため、警告が生成されます。
暗黙的な Atomic Objective-C のプロパティ (CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES)
暗黙的にアトミックな @property 宣言について警告します。
ブロック内の 'self' の暗黙的な retain (CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF)
ブロック内の self の暗黙的な retain について警告します。これにより、retain サイクルが作成される可能性があります。
インスタンス変数のインターフェース宣言 (CLANG_WARN_OBJC_INTERFACE_IVARS)
@interface 内のインスタンス変数宣言について警告します。
暗黙の Objective-C リテラル変換 (CLANG_WARN_OBJC_LITERAL_CONVERSION)
Objective-C リテラルから互換性のない型の値への暗黙的な変換について警告します。
暗黙の合成プロパティ (CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS)
Xcode 4.4 以降、Apple Clang は、@synthesize を使用して明示的に合成されていないプロパティを暗黙的に合成します。この設定は、プロパティがまだ合成されている場合でも、そのような暗黙の動作について警告します。これは基本的に下位互換性の警告、または @synthesize を明示的に使用し続けたい人のためのものです。
__weak 参照を繰り返し使用 (CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK)
弱い参照を強い参照に割り当てずに、弱い参照を繰り返し使用することについて警告します。これは多くの場合、アクセスの間に弱い参照が nil になり、予期しない動作が発生する可能性がある競合状態の兆候です。一時的な強い参照に割り当てることで、関連するアクセス中にオブジェクトが存続することが保証されます。
意図しないルートクラス (CLANG_WARN_OBJC_ROOT_CLASS)
NSObject など、意図せずにルートクラスをサブクラス化しないクラスについて警告します。
不審なプラグマパック (CLANG_WARN_PRAGMA_PACK)
翻訳単位に終了 '#pragma pack(pop)' ディレクティブがない場合、または #include 直後の '#pragma pack' の宣告が直前の宣告と異なる場合に警告します。
古い Private モジュールマップ (CLANG_WARN_PRIVATE_MODULE)
推奨される private モジュールレイアウトを使用していない private モジュールについて警告します。
フレームワークヘッダに引用された Include (CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER)
フレームワークヘッダでフレームワークスタイルの include の代わりに引用された include が使用されたときに警告します。
範囲ベースの For ループ (CLANG_WARN_RANGE_LOOP_ANALYSIS)
範囲ベースの for ループについて警告します。
メソッドの body の前のセミコロン (CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY)
メソッドの実装のシグネチャと body の間のセミコロンが無視されていることについて警告します。
厳格なプロトタイプ (CLANG_WARN_STRICT_PROTOTYPES)
非プロトタイプ宣言について警告します。
疑わしい暗黙の変換 (CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION)
情報を失う可能性のある、または疑わしいさまざまな暗黙の変換について警告します。
不審な動き (CLANG_WARN_SUSPICIOUS_MOVE)
std::move の不審な使用について警告します。
保護されていない利用可能性 (CLANG_WARN_UNGUARDED_AVAILABILITY)
"if (@available(...))" guard なしで展開ターゲットよりも新しい API が使用されている場合に警告します。
到達できないコード (CLANG_WARN_UNREACHABLE_CODE)
到達できない可能性のあるコードについて警告します。
あいまいな C++ 解析状況 (CLANG_WARN_VEXING_PARSE)
変数宣言と関数スタイルのキャストの間の解析のあいまいさについて警告します。
ARC 外での __bridge キャストの使用 (CLANG_WARN__ARC_BRIDGE_CAST_NONARC)
ARC を使用していない場合に __bridge のキャストを使用すると、影響がない場合に警告します。
重複するメソッド定義 (CLANG_WARN__DUPLICATE_METHOD_MATCH)
同じ @interface 内で同じメソッドを一回以上宣言することについて警告します。
終了時の C++ デストラクタ (CLANG_WARN__EXIT_TIME_DESTRUCTORS)
アプリケーションの終了時に呼び出される C++ オブジェクトのデストラクタについて警告します。
追加のベクター拡張機能を有効にする (CLANG_X86_VECTOR_INSTRUCTIONS)
拡張ベクトル命令の使用を有効にします。Intel アーキテクチャをターゲットとする場合にのみ使用されます。
コード署名資格 (CODE_SIGN_ENTITLEMENTS)
コード署名資格を指定するファイルへのパス。
コード署名 ID (CODE_SIGN_IDENTITY)
キーチェーンパス内のキーチェーン内の有効なコード署名証明書の名前。一般名(common name) とも呼ばれます。証明書がないか無効な場合、ビルドエラーが発生します。
コード署名挿入ベース資格 (CODE_SIGN_INJECT_BASE_ENTITLEMENTS)
プラットフォームの BaseEntitlements.plist から実行可能ファイルのコード署名に資格を自動的に挿入します。
コード署名スタイル (CODE_SIGN_STYLE)
この設定は、署名アセットの取得と検索に使用されるメソッドを指定します。Xcode にプロファイル、アプリ ID、および証明書を自動的に作成および更新させるには、[自動(Automatic)] を選択します。[手動(Manual)] を選択して、開発者の Web サイトで自分で作成および更新できます。
COMBINE_HIDPI_IMAGES
macOS 10.7 以降で HiDPI に準拠する 1 つのマルチページ TIFF ファイルに、様々な解像度の画像ファイルを結合します。同じディレクトリにあり、同じベース名と拡張子を持つ画像ファイルのみが結合されます。ファイル名は、HiDPI で使用される命名規則に準拠していなければなりません。
ビルド中のインデックス機能を有効にする (COMPILER_INDEX_STORE_ENABLE)
ビルド中にコンパイラがインデックスデータを出力するかどうかを制御します。
PNG ファイルの圧縮 (COMPRESS_PNG_FILES)
有効にすると、PNG リソースファイルはコピーされるときに圧縮されます。
構成
ターゲットが製品を生成するために使用する Debug 構成や Release" などのビルド構成を識別します。
構成ごとのビルド製品パス (CONFIGURATION_BUILD_DIR)
与えられた構成のビルド中にビルド製品が配置される基本パス。デフォルトでは、これは $(PROJECT_DIR)/$(CONFIGURATION) に設定されています。
構成ごとの中間ビルドファイルパス (CONFIGURATION_TEMP_DIR)
与えられた構成のビルド中に中間産物が配置される基本パス。デフォルトでは、これは $(PROJECT_TEMP_DIR)/$(CONFIGURATION) に設定されています。
CONTENTS_FOLDER_PATH
製品のファイルを含む、生成されたバンドル内のディレクトリを指定します。
HFS データの保持 (COPYING_PRESERVES_HFS_DATA)
リソースをコピーして、リソースフォークと Finder 情報を保持します。
製品ヘッダで unifdef を実行 (COPY_HEADERS_RUN_UNIFDEF)
有効になっている場合、ヘッダは、製品にコピーされるときに unifdef(1) ツールを介して実行されます。
製品ヘッダの Unifdef フラグ (COPY_HEADERS_UNIFDEF_FLAGS)
ヘッダをコピーするためにそのツールを呼び出すときに unifdef(1) に渡すフラグを指定します。この設定は、製品ヘッダーで unifdef を実行 (COPY_HEADERS_RUN_UNIFDEF) が有効になっていない限り、効果がありません。
コピー中にデバッグシンボルを削除する (COPY_PHASE_STRIP)
バンドルリソースのコピーやファイルのコピーのビルドフェーズなど、ビルド中にコピーされるバイナリファイルからデバッグシンボルを削除するかどうかを指定します。ターゲットのリンクされた製品が削除されることはありません。そのためには、リンクされた製品の削除 (STRIP_INSTALLED_PRODUCT) を使用してください。
CoreML モデルクラス生成言語 (COREML_CODEGEN_LANGUAGE)
生成された CoreML モデルクラスに使用するソースコード言語。デフォルトでは、"自動(Automatic)" はプロジェクトを分析して正しい言語を判別します。この設定を調整して、"Swift" または "Objective-C" を明示的に選択するか、"なし(None)" を選択してモデルクラスの生成を無効にします。
CoreML で生成されたモデルは NSObject を継承する(COREML_CODEGEN_SWIFT_GLOBAL_MODULE)
Objective-C でアクセスおよび使用できるようにするために、@objc でマークされ、NSObject の子孫である Swift モデルクラスを生成します。"CoreML モデルクラス生成言語" が "Objective-C" に設定されている場合、この設定は効果がありません。
Cpp その他のプリプロセッサフラグ (CPP_OTHER_PREPROCESSOR_FLAGS)
スタンドアロンの C プリプロセッサ規則を使用するときに C プリプロセッサに渡す他のフラグ。
Cpp 接頭辞ファイル (CPP_PREFIX_HEADER)
スタンドアロンの C プリプロセッサ規則を使用して前処理するときに、与えられたファイルを暗黙的に含めます。与えられるパスは、プロジェクトの相対パスまたは絶対パスのいずれかである必要があります。
Cpp プリプロセッサ定義 (CPP_PREPROCESSOR_DEFINITIONS)
foo または foo=bar の形式のプリプロセッサマクロのスペース区切りリスト。これらのマクロは、スタンドアロンの C プリプロセッサ規則を使用して前処理するときに使用されます。
バイナリでの Info.plist セクションの作成 (CREATE_INFOPLIST_SECTION_IN_BINARY)
この設定を有効にすると、ターゲット用の処理された Info.plist ファイルを含む製品のリンクされたバイナリ内にセクションが作成されます。この設定は、コマンドラインツールターゲットにのみ適用されます。
CURRENT_ARCH
処理中のアクティブなアーキテクチャの名前。
現在のプロジェクトバージョン (CURRENT_PROJECT_VERSION)
この設定は、プロジェクトの現在のバージョンを定義します。値は、57 または 365.8 などの整数または浮動小数点数でなければなりません。
CURRENT_VARIANT
処理中のアクティブなバリアントの名前。
デッドコード除去 (DEAD_CODE_STRIPPING)
この設定を有効にすると、-dead_strip フラグが cc(1) を介して ld(1) に渡され、デッドコードの除去が有効になります。
デバッグ情報形式 (DEBUG_INFORMATION_FORMAT)
生成するデバッグ情報の型。
- DWARF:オブジェクトファイルとリンクされた製品は、デバッグ情報形式として DWARF を使用します。dwarf
- dSYM ファイルを含む DWARF:オブジェクトファイルとリンクされた製品は、デバッグ情報形式として DWARF を使用し、Xcode は、個々のオブジェクトファイルからのデバッグ情報を含む dSYM ファイルも生成します (ただし、dSYM ファイルは不要であり、静的ライブラリまたはオブジェクトファイル製品の場合、作成されません)。dwarf-with-dsym
モジュールの定義 (DEFINES_MODULE)
有効にすると、製品は独自のモジュールを定義するものとして扱われます。これにより、必要に応じて LLVM モジュールマップファイルの自動生成が可能になり、製品をモジュールとしてインポートできるようになります。
配置場所 (DEPLOYMENT_LOCATION)
有効にすると、ビルドされた製品は、ビルドされた製品フォルダに加えて、インストールされた場所に配置されます。
展開後処理 (DEPLOYMENT_POSTPROCESSING)
有効な場合、バイナリを削除し、ファイルモード、所有者、およびグループ情報を標準値に設定する必要があることを示します。
DERIVED_FILE_DIR
lex や yacc によって生成されたファイルなどの派生ソースファイルが配置されるディレクトリを識別します。
Mac Catalyst 製品バンドル ID の取得 (DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER)
有効にすると、Xcode は、Mac Catalyst 用にビルドするときに、元のバンドル ID からこのターゲット用のバンドル ID を自動的に取得します。
開発資産 (DEVELOPMENT_ASSET_PATHS)
開発専用のファイルとディレクトリ。ビルドをアーカイブしてインストールすると、このコンテンツが除外されます。
開発チーム (DEVELOPMENT_TEAM)
証明書の署名とプロビジョニングプロファイルに使用する開発チームのチーム ID。
出力ログレベル (DISTILL_LOGLEVEL)
このオプションは、distill ツールの出力を制御します。
Distill モード (DISTILL_MODE)
このオプションは、distill ツールを実行するモードを制御します。出力を完全に再生成することも、既存の出力を段階的に編集することもできます。
DOCUMENTATION_FOLDER_PATH
バンドルのドキュメントファイルを含むディレクトリを識別します。
Info.plist の生成を強制しない (DONT_GENERATE_INFOPLIST_FILE)
有効にした場合、Info.plist ファイル (INFOPLIST_FILE) ビルド設定が空の場合、包み込まれた製品の Info.plist ファイルを自動的に生成しません。
インストールビルド製品の場所 (DSTROOT)
インストールビルドを実行するときにすべての製品がルート化されるパス。たとえば、適切なシステムに製品をインストールするには、このパスを / に設定します。デフォルトの /tmp/$(PROJECT_NAME).dst は、テストインストールビルドが、最終的なインストールパスの有効で必要なデータを誤って上書きするのを防ぎます。
通常、このパスはターゲットごとに設定されていませんが、xcodebuild install を実行するときにコマンドラインでオプションとして提供されます。特別な状況では、ビルド構成で設定されることもあります。
その他の DTrace フラグ (DTRACE_OTHER_FLAGS)
dtrace コンパイラに渡す追加のフラグのスペース区切りリスト。スペースまたは特殊文字を含む引数は、スペースを含むパス名などは、バックスラッシュでエスケープしてください。Xcode が特定の dtrace フラグの UI をまだ提供していない場合は、この設定を使用します。
互換バージョン (DYLIB_COMPATIBILITY_VERSION)
結果のライブラリ、バンドル、またはフレームワークバイナリの互換バージョンを決定します。ダイナミックライブラリのバージョン番号の割り当ての詳細については、ダイナミックライブラリプログラミングトピックス の ダイナミックライブラリ設計ガイドライン を参照してください。
現在のライブラリのバージョン (DYLIB_CURRENT_VERSION)
この設定は、プロジェクトによってビルドされた任意のフレームワークの現在のバージョンを定義します。現在のプロジェクトバージョン (CURRENT_PROJECT_VERSION) と同様に、値は整数または浮動小数点数 (57 や 365.8 のように) でなければなりません。デフォルトでは、これは $(CURRENT_PROJECT_VERSION) に設定されています。ダイナミックライブラリのバージョン番号の割り当ての詳細については、ダイナミックライブラリプログラミングトピックス の ダイナミックライブラリ設計ガイドライン を参照してください。
ダイナミックライブラリインストール名ベース (DYLIB_INSTALL_NAME_BASE)
ダイナミックライブラリの内部 install path (LC_ID_DYLIB) のベース値を設定します。これは、EXECUTABLE_PATH と組み合わされて、完全なインストールパスを形成します。ダイナミックライブラリのインストール名 (LD_DYLIB_INSTALL_NAME) を直接設定すると、この設定を上書きします。この設定のデフォルトは、ターゲットの インストールディレクトリ (INSTALL_PATH) です。ダイナミックライブラリ以外の製品をビルドする場合はこれは無視されます。
製品バンドルにアセットパックを埋め込む (EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE)
ビルドされたすべてのアセットパックを製品バンドル内に埋め込みます。これは、オンデマンドリソース機能のパフォーマンス上の利点を打ち消すため、アセットパックサーバーを使用することが実用的でない場合のテスト目的にのみ役立ちます。
ビットコードを有効にする (ENABLE_BITCODE)
この設定を有効にすると、ターゲットまたはプロジェクトが、それをサポートするプラットフォームおよびアーキテクチャのコンパイル中にビットコードを生成する必要があることを示します。アーカイブビルドの場合、ビットコードはリンクされたバイナリで生成され、App Store に提出されます。他のビルドの場合、コンパイラとリンカは、コードがビットコード生成の要件に準拠しているかどうかをチェックしますが、実際のビットコードを生成しません。
強化された実行時環境を有効にする (ENABLE_HARDENED_RUNTIME)
強化された実行時環境制限を有効にします。
ENABLE_HEADER_DEPENDENCIES
インクルードされたヘッダーファイルへの依存関係を自動的に追跡するかどうかを指定します。
段階的抽出を有効にする (ENABLE_INCREMENTAL_DISTILL)
アセットカタログコンパイラの段階的 distill オプションを有効にしました。この機能は実験的なものであり、注意して有効にする必要があります。
Foundation アサーションを有効にする (ENABLE_NS_ASSERTIONS)
NSAssert によって提供されるアサーションロジックが前処理されたソースコードに含まれるか、前処理中に省略されるかを制御します。アサーションを無効にすると、コードのパフォーマンスが向上します。
アクティブなリソースのみをビルド (ENABLE_ONLY_ACTIVE_RESOURCES)
単一のデバイス用にビルドする場合は、該当しないリソースを省略します。たとえば、Retina ディスプレイを備えたデバイス用にビルドする場合、1x リソースを除外します。
オンデマンドリソースを有効にする (ENABLE_ON_DEMAND_RESOURCES)
有効にすると、タグ付きアセット (ファイルおよびアセットカタログエントリ) が、タグの組み合わせに基づいてアセットパックにビルドされます。タグなしリソースは通常どおり処理されます。
プレビューを有効にする (ENABLE_PREVIEWS)
有効にすると、プレビューのサポートに適したオプションを使用して製品がビルドされます。
objc_msgSend 呼び出しの厳密なチェックを有効にする (ENABLE_STRICT_OBJC_MSGSEND)
objc_msgSend を呼び出す前に、適切な関数ポインタ型にキャストしなければならないかどうかを制御します。
テスト可能性を有効にする (ENABLE_TESTABILITY)
この設定をアクティブにすると、private インターフェイスをテストにアクセスできるようにするなど、自動テストの実行に適したオプションを使用して製品がビルドされます。これにより、テストが有効になっていない場合よりもテストの実行速度が遅くなる可能性があります。
再帰検索から除外するサブディレクトリ (EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES)
これは、再帰検索を実行するときに除外するファイルまたはディレクトリ名の fnmatch() スタイルのパターンのリストです。デフォルトでは、これは *.nib *.lproj *.framework *.gch *.xcode (*) .DS_Store CVS .svn .git .hg. に設定されています。通常、この値をオーバーライドする場合は、$(inherited) マクロを介してデフォルト値を含める必要があります。
除外されたソースファイル名 (EXCLUDED_SOURCE_FILE_NAMES)
ターゲットのビルドフェーズでファイルを処理するときに明示的に 除外する ソースファイルの名前を指定するパターンのリスト (fnmatch(3) で定義されます) (含まれるソースファイル名 (INCLUDED_SOURCE_FILE_NAMES) も参照して下さい)。この設定を使用して、他のビルド設定に応じてフェーズのファイルをビルドすべき複雑なフィルターを定義できます。たとえば、*.$(CURRENT_ARCH).c という値は、ビルドされているアーキテクチャに基づいて特定のファイルを除外するのに役立ちます。
EXECUTABLES_FOLDER_PATH
追加のバイナリファイルを含むディレクトリを識別します。
実行可能拡張 (EXECUTABLE_EXTENSION)
これは、ターゲットによって生成された実行可能な製品に使用される拡張であり、製品型に基づいたデフォルト値があります。
EXECUTABLE_FOLDER_PATH
ターゲットがビルドするバイナリを含むディレクトリを識別します。
EXECUTABLE_NAME
ターゲットが生成するバイナリの名前を指定します。
EXECUTABLE_PATH
ターゲットがこのバンドル内で生成するバイナリへのパスを指定します。
実行可能接頭辞 (EXECUTABLE_PREFIX)
ターゲットによって生成された実行可能な製品に使用される接頭辞。製品型に基づくデフォルト値があります。
EXECUTABLE_SUFFIX
拡張子を残りのバンドル名から区切る文字を含む、バイナリファイル名の接尾辞を指定します。
エクスポートされたシンボルファイル (EXPORTED_SYMBOLS_FILE)
これは、エクスポートすべきシンボルをリストするファイルへのプロジェクト相対パスです。シンボルのエクスポートの詳細については、ld -exported_symbols_list を参照してください。
FRAMEWORKS_FOLDER_PATH
製品の埋め込みフレームワークを含むディレクトリを指定します。
フレームワーク検索パス (FRAMEWORK_SEARCH_PATHS)
これは、C、Objective-C、C++、または Objective-C++ のコンパイル時にインクルードされ、かつインポートされたヘッダーファイルについてコンパイラーによって検索されるフレームワークを含むフォルダへのパスのリストと、製品で使用されるフレームワークのリンカによってリストされます。パスは空白で区切られているため、スペースを含む任意のパスは適切に引用符で囲まなければなりません。
フレームワークのバージョン (FRAMEWORK_VERSION)
フレームワークバンドルは、現在のバージョンとそのコンテンツへのリンクを持つバージョンフォルダのサブフォルダにコンテンツを持つことでバージョン管理されます。
'char' 型は符号なし (GCC_CHAR_IS_UNSIGNED_CHAR)
この設定を有効にすると、char はデフォルトで符号なしになります。無効にすると、char はデフォルトで符号付きになります。
CodeWarrior/MS スタイルのインラインアセンブリ (GCC_CW_ASM_SYNTAX)
標準の GCC 構文に加えて、インラインアセンブリコードの CodeWarrior/Microsoft 構文を有効にします。
C 言語方言 (GCC_C_LANGUAGE_STANDARD)
標準または標準でない C 言語の方言を選択します。
- ANSI C:ISO C90 および ISO C++ を受け入れ、互換性のない GNU 拡張機能をオフにします。-ansi 互換でない GNU 拡張機能には、asm、inline、typeof キーワード (同等でない__asm __、__ inline__、および __typeof__ 形式は除く)、およびコメントの // 構文が含まれます。この設定ではまた、トリグラフも有効になります。
- C89:ISO C90 (1990) を受け入れますが、GNU 拡張は受け入れません。-std=c89
- GNU89:ISO C90 および GNU 拡張機能を受け入れます。-std=gnu89
- C99:ISO C99 (1999) を受け入れますが、GNU 拡張は受け入れません。-std=c99
- GNU99:ISO C99 および GNU 拡張機能を受け入れます。-std=gnu99
- C11:ISO C11 (2011) を受け入れますが、GNU 拡張は受け入れません。-std=c11
- GNU11:ISO C11 および GNU 拡張機能を受け入れます。-std=gnu11
- コンパイラのデフォルト:デフォルトの C 言語の方言を使用するようにコンパイラに指示します。特定のニーズがない限り、これは通常最良の選択です。(現在 GNU99 と同等です。)
位置依存コードを生成 (GCC_DYNAMIC_NO_PIC)
アプリケーションのより高速な関数呼び出し。位置に依存しない必要がある共有ライブラリには適していません。
'asm'、'inline'、'typeof' を許可 (GCC_ENABLE_ASM_KEYWORD)
asm、inline、typeof をキーワードとして処理するか、または識別子として使用できるかを制御します。
組み込み関数の認識 (GCC_ENABLE_BUILTIN_FUNCTIONS)
接頭辞として __builtin_ で始まらない組み込み関数を認識するかどうかを制御します。
GCC は通常、特定の組み込み関数をより効率的に処理するための特別なコードを生成します。たとえば、alloca への呼び出しは、スタックを直接調整する単一の命令になり、memcpy への呼び出しはインラインのコピーループになる場合があります。多くの場合、結果のコードは小さくて高速ですが、関数呼び出しはそのように表示されないため、それらの呼び出しにブレークポイントを設定したり、別のライブラリとリンクして関数の動作を変更したりすることはできません。さらに、関数が組み込み関数として認識されると、GCC はその関数に関する情報を使用して、その関数への呼び出しに関する問題について警告したり、結果のコードにまだその関数への呼び出しが含まれている場合でも、より効率的なコードを生成したりします。たとえば、printf が組み込まれている場合、printf への不正な呼び出しに対して -Wformat で警告が表示され、strlen はグローバルメモリを変更しないことがわかっています。
C++ 例外を有効にする (GCC_ENABLE_CPP_EXCEPTIONS)
C++ 例外処理を有効にします。例外の伝播に必要な追加のコードを生成します。一部のターゲットでは、これは GCC がすべての関数のフレームをワインドしない情報を生成することを意味し、実行には影響しませんが、かなりのデータサイズのオーバーヘッドを生成する可能性があります。このオプションを指定しない場合、GCC は、通常は例外処理を必要とする C++ などの言語に対してデフォルトで有効にし、通常はこれを必要としない C などの言語に対しては無効にします。ただし、C++ で記述された例外ハンドラと適切に相互運用する必要がある C コードをコンパイルする場合は、このオプションを有効にする必要がある場合があります。
C++ の実行時型を有効にする (GCC_ENABLE_CPP_RTTI)
C++ 実行時型識別機能 (dynamic_cast および typeid) で使用する仮想関数を含むすべてのクラスに関する情報の生成を有効にします。言語のこれらの部分を使用しない場合は、このフラグを使用してスペースを節約できます。例外処理は同じ情報を使用しますが、必要に応じてそれを生成することに注意してください。
例外を有効にする (GCC_ENABLE_EXCEPTIONS)
例外処理を有効にします。例外の伝播に必要な追加のコードを生成します。一部のターゲットでは、これは GCC がすべての関数のフレームをワインドしない情報を生成することを意味し、実行には影響しませんが、かなりのデータサイズのオーバーヘッドを生成する可能性があります。このオプションを指定しない場合、GCC は、通常は例外処理を必要とする C++ や Objective-C などの言語に対してデフォルトで有効にし、通常は必要としない C などの言語に対しては無効にします。ただし、他の言語で記述された例外ハンドラと適切に相互運用する必要がある C コードをコンパイルする場合は、このオプションを有効にする必要がある場合があります。例外処理を使用しない古いプログラムをコンパイルする場合は、このオプションを無効にすることもできます。
浮動小数点ライブラリ呼び出しの生成 (GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS)
浮動小数点のライブラリ呼び出しを含む出力を生成します。
カーネル開発モード (GCC_ENABLE_KERNEL_DEVELOPMENT)
この設定を有効にすると、カーネル開発モードが有効になります。
Objective-C の例外を有効にする (GCC_ENABLE_OBJC_EXCEPTIONS)
この設定により、Objective-C コードで例外を処理するための @try/@catch/@throw 構文が有効になります。Objective-C にのみ適用されます。
パスカル文字列を認識 (GCC_ENABLE_PASCAL_STRINGS)
Pascal スタイルの文字列リテラルを認識して構築します。新しいコードでのこれの使用はお勧めしません。
Pascal 文字列リテラルは "\pstring" の形式を取ります。特別なエスケープシーケンス \p は、文字列のパスカル長バイトを示し、コンパイル時に後続の文字数に置き換えられます。\p は、文字列リテラルの先頭にのみ表示され、ワイド文字列リテラルまたは整数定数としては表示されません。
SSE3 拡張機能を有効にする (GCC_ENABLE_SSE3_EXTENSIONS)
バイナリが、IA-32 アーキテクチャへの SSE3 拡張機能へのアクセスを提供する組み込み関数を使用するかどうかを指定します。
SSE4.1 拡張機能を有効にする (GCC_ENABLE_SSE41_EXTENSIONS)
バイナリが、IA-32 アーキテクチャへの SSE4.1 拡張機能へのアクセスを提供する組み込み関数を使用するかどうかを指定します。
SSE4.2 拡張機能を有効にする (GCC_ENABLE_SSE42_EXTENSIONS)
バイナリが、IA-32 アーキテクチャへの SSE4.2 拡張機能へのアクセスを提供する組み込み関数を使用するかどうかを指定します。
Trigraphs(3 文字表記) を有効にする (GCC_ENABLE_TRIGRAPHS)
ソースコードで 3 文字表記を許可するかどうかを制御します。
IEEE コンプライアンスの緩和 (GCC_FAST_MATH)
IEEE754 に準拠していないが通常は機能する、いくつかの浮動小数点最適化を有効にします。厳密な IEEE 準拠を必要とするプログラムは、このオプションでは動作しない場合があります。
デバッグシンボルを生成 (GCC_GENERATE_DEBUGGING_SYMBOLS)
デバッグシンボルの生成を有効または無効にします。デバッグシンボルが有効な場合、詳細レベルは デバッグ情報形式 (DEBUG_INFORMATION_FORMAT) 設定で制御できます。
レガシーテストカバレッジファイルの生成 (GCC_GENERATE_TEST_COVERAGE_FILES)
この設定を有効にすると、gcov コードカバレッジユーティリティがプログラムカバレッジを表示するために使用できる notes ファイルが生成されます。
プリコンパイル済みヘッダの共有を増やす (GCC_INCREASE_PRECOMPILED_HEADER_SHARING)
このオプションを有効にすると、同じ接頭辞ヘッダとプリコンパイル済みヘッダディレクトリを共有するターゲット間で、プリコンパイル済みヘッダの共有を増やすことができます。
Xcode は、プリコンパイル済みヘッダ (PCH) の作成に使用されるコンパイラへのコマンドラインオプションに基づいてハッシュ値を生成することにより、PCH ファイルの間を区別します。このオプションを有効にすると、特定のコンパイラオプションがそのハッシュから除外されます。現在、このオプションはハッシュから検索パスオプション (-I, -iquote, -isystem, -F, -L) を除外します。
PCH ファイルの共有を増やす事を有効にすると、いくつかのリスクが生じます。2 つのターゲットが同じ接頭辞ヘッダを使用するが、プリコンパイル時に接頭辞ヘッダに異なるファイルが含まれるようにするインクルードパスが異なる場合、1 つのターゲットが他のターゲットに含まれるファイルを使用してビルドされた PCH を使用するため、微妙な問題が発生する可能性があります。この場合、正確性を確保するために、このオプションをオフにしなければなりません。
隠されたインラインメソッド (GCC_INLINES_ARE_PRIVATE_EXTERN)
有効にすると、インラインメソッドの行の外のコピーが private extern として宣言されます。
ソースを以下のようにコンパイル
ファイル型に従って各ソースファイルをコンパイルするか、またはターゲット内のすべてのソースファイルを特定の言語であるかのように扱うかどうかを指定します。
インストルメントプログラムフロー (GCC_INSTRUMENT_PROGRAM_FLOW_ARCS)
この設定をアクティブにすると、プログラムフロー arcs がインストルメントされるようにコードを追加する必要があることを示します。
共有ライブラリとのリンクを有効にする (GCC_LINK_WITH_DYNAMIC_LIBRARIES)
このオプションを有効にすると、共有ライブラリとのリンクが可能になります。これは、ほとんどの製品型のデフォルトです。
共通ブロックなし (GCC_NO_COMMON_BLOCKS)
C では、初期化されていないグローバル変数でさえも、共通ブロックとして生成するのではなく、オブジェクトファイルのデータセクションに割り当てます。これは、2 つの異なるコンパイルで同じ変数が (extern なしで) 宣言されている場合、それらをリンクするとエラーが発生するという効果があります。
最適化レベル (GCC_OPTIMIZATION_LEVEL)
生成されたコードが速度とバイナリサイズに対して最適化される度合いを指定します。
- なし(None):最適化しません。-O0 この設定では、コンパイラの目標は、コンパイルのコストを削減し、デバッグで期待どおりの結果が生成されるようにすることです。文は独立しています。文の間のブレークポイントでプログラムを停止すると、新しい値を変数に割り当てたり、プログラムカウンタを関数内の他の文に変更したりして、ソースコードから完全に期待どおりの結果を得ることができます。
- 高速(Fast):コンパイルの最適化には多少時間がかかり、大きな関数の場合はメモリが多くなります。
-O1 この設定では、コンパイラは、コンパイル時間のかかる最適化を実行せずに、コードサイズと実行時間を削減しようとします。Apple のコンパイラでは、最適化時に、厳密なエイリアシング、ブロックの並べ替え、およびブロック間のスケジューリングがデフォルトで無効になっています。 - より高速(Faster):コンパイラは、スペースと速度の交換を伴わない、サポートされているほぼすべての最適化を実行します。-O2 この設定では、コンパイラはループのアンロール、関数のインライン化、またはレジスタの名前変更を実行しません。高速 (Fast) 設定と比較して、この設定はコンパイル時間と生成されたコードのパフォーマンスの両方を向上させます。
- 最も高速(Fastest):より高速 (Faster) 設定で指定されたすべての最適化をオンにし、関数のインライン化とレジスタ名変更オプションもオンにします。この設定により、バイナリが大きくなる場合があります。-O3
- 最も高速、最小(Fastest, Smallest):サイズを最適化します。この設定により、通常はコードサイズが増加しないすべてのより高速の (Faster) 最適化が有効になります。また、コードサイズを削減するために設計されたさらなる最適化を実行します。-Os
- 最も高速、積極的な最適化(Fastest, Aggressive Optimizations):この設定は最も高速 (Fastest) を有効にしますが、厳密な標準への準拠を破る可能性があるが、適切に動作するコードでうまく機能する積極的な最適化も有効にします。-Ofast
- 最小、積極的なサイズ最適化(Smallest, Aggressive Size Optimizations):この設定により、反復的なコードパターンをコンパイラ生成関数に分離することにより、サイズをさらに節約できます。-Oz
プリコンパイル接頭辞ヘッダ (GCC_PRECOMPILE_PREFIX_HEADER)
接頭辞ヘッダのプリコンパイル済みヘッダを生成します。これにより、全体的なビルド時間が短縮されます。
接頭辞ヘッダまたはそれに含まれるファイルの内容がめったに変更されない場合は、接頭辞ヘッダのプリコンパイルが最も効果的です。接頭辞ヘッダまたはそれに含まれるファイルの内容が頻繁に変更される場合は、全体のビルド時間に悪影響を及ぼす可能性があります。
接頭辞ヘッダ (GCC_PREFIX_HEADER)
名前の付いたヘッダを暗黙的に含めます。与えられたパスは、プロジェクトの相対パスまたは絶対パスのいずれかである必要があります。
プリプロセッサマクロ (GCC_PREPROCESSOR_DEFINITIONS)
foo または foo=bar の形式のプリプロセッサマクロのスペース区切りリスト。
プリコンパイル済みヘッダで使用されないプリプロセッサマクロ (GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)
foo または foo=bar の形式のプリプロセッサマクロのスペース区切りリスト。これらのマクロは、プ接頭辞ヘッダーファイルをプリコンパイルするときには使用されません。
文字列を読み取り専用にする (GCC_REUSE_STRINGS)
文字列リテラルを再利用します。
短い列挙定数 (GCC_SHORT_ENUMS)
列挙型は、可能な値の範囲に必要なだけ大きくします。
この設定は、この設定なしで生成されたコードまたは macOS フレームワークとバイナリ互換性がない可能性があるコードを生成します。
厳密な Aliasing を適用 (GCC_STRICT_ALIASING)
ポインタが他のポインタと同じオブジェクトを指すことができるかどうかについてより積極的な仮定を行うことにより、コードを最適化します。ポインタを多く使用するプログラムはこれから恩恵を受ける可能性がありますが、オブジェクトにアクセスする可能性のある型に関する ISO C 規則に厳密に従っていないプログラムは、予期しない動作をする可能性があります。
デフォルトで隠されたいる記号 (GCC_SYMBOLS_PRIVATE_EXTERN)
有効にすると、コードで __attribute__((visibility("default"))) を使用してエクスポートするように明示的にマークされていない限り、すべてのシンボルが private extern として宣言されます。有効にしない場合、明示的に private extern としてマークされていない限り、すべてのシンボルがエクスポートされます。C++ 実行時環境プログラミングガイド の シンボルの可視性の制御 を参照してください。
統計はスレッドセーフです (GCC_THREADSAFE_STATICS)
ローカルで静的のスレッドセーフな初期化のために C++ ABI で指定されたルーチンを使用するための追加コードを発行します。このオプションを無効にすると、スレッドセーフである必要がないコードでコードサイズをわずかに減らすことができます。
欠落している関数プロトタイプをエラーとして扱う (GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS)
欠落している関数プロトタイプに関する警告をエラーとして扱います。C および Objective-C にのみ適用されます。
互換性のないポインタ型の警告をエラーとして扱う (GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS)
このオプションを有効にすると、互換性のないポインタ型に関する警告がエラーとして扱われます。
警告をエラーとして扱う (GCC_TREAT_WARNINGS_AS_ERRORS)
このオプションを有効にすると、すべての警告がエラーとして扱われます。
ループの展開 (GCC_UNROLL_LOOPS)
ループを展開します。展開するとコードが大きくなりますが、実行される分岐の数を減らすことでコードが速くなる場合があります。
標準のシステムヘッダディレクトリ検索を使用 (GCC_USE_STANDARD_INCLUDE_SEARCHING)
標準のシステムディレクトリでヘッダファイルを検索するかどうかを制御します。無効にすると、-I オプションで指定したディレクトリ (および必要に応じて現在のファイルのディレクトリ) のみが検索されます。
C/C++/Objective-C 用コンパイラ (GCC_VERSION)
C、C++、および Objective-Cで 使用するコンパイラ。
32 ビット型への暗黙的な変換 (GCC_WARN_64_TO_32_BIT_CONVERSION)
値が 64 ビット型から 32 ビット型に暗黙的に変換される場合に警告します。これは、-Wconversion によって提供される警告のサブセットです。
旧式の関数 (GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS)
旧式の関数、変数、および型 (旧式の属性で示される) の使用について警告します。
未定義の offsetof マクロの使用 (GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO)
この設定をオフにすると、警告が offsetof マクロを非 POD 型に適用することを抑制します。1998 ISO C++ 標準によれば、offsetof を非 POD 型に適用することは定義されていません。ただし、既存の C++ 実装では、offsetof は通常、特定の種類の非 POD 型 (コンストラクターがあるためにのみ POD 型にならない単純な構造体など) に適用された場合でも、意味のある結果を提供します。このフラグは、移植性のないコードを記述していることを認識しており、意図的にそれに関する警告を無視することを選択したユーザを対象としています。
offsetof の制限は、C++ 標準の将来のバージョンで緩和される可能性があります。
構造体イニシャライザのフィールドがありません (GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS)
構造体のイニシャライザにいくつかのフィールドがない場合に警告します。たとえば、以下のコードでは、x.h が暗黙的にゼロであるため、このような警告が表示されます。
struct s { int f, g, h; };
struct s x = { 3, 4 };
このオプションは指定イニシャライザについては警告しないので、以下の変更は警告を引き起こしません。
struct s { int f, g, h; };
struct s x = { .f = 3, .g = 4 };
ファイルの終わりに改行がありません (GCC_WARN_ABOUT_MISSING_NEWLINE)
ソースファイルが改行で終わっていないときに警告します。
関数プロトタイプがありません (GCC_WARN_ABOUT_MISSING_PROTOTYPES)
欠落しているプロトタイプについて警告を発します。
ポインタ符号の比較 (GCC_WARN_ABOUT_POINTER_SIGNEDNESS)
引数を介して渡された、または変数に割り当てられたポインタの符号が異なる場合に警告します。
一致しない戻り値の型 (GCC_WARN_ABOUT_RETURN_TYPE)
戻り値の型が (void ではない) 定義された関数に戻り値のない return 文が含まれている場合、または return 文が含まれていない場合に、警告が発行されます。void の戻り値の型を持つ関数が値を返そうとしたときにも警告を発します。
不完全な Objective-C プロトコル (GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL)
プロトコルに必要なメソッドが、それを採用するクラスに実装されていない場合に警告します。Objective-C にのみ適用されます。
Switch 文のチェック (GCC_WARN_CHECK_SWITCH_STATEMENTS)
switch 文に列挙型のインデックスがあり、その列挙の 1 つ以上の名前付きコードの case が欠けている場合は常に警告します。default のラベルが存在すると、この警告は回避されます。このオプションを使用すると、列挙範囲外の case ラベルでも警告が表示されます。
4 文字のリテラル (GCC_WARN_FOUR_CHARACTER_CONSTANTS)
4 文字のリテラル (たとえば、macOS スタイルの OSType: 'APPL') について警告します。
オーバーロードされた仮想関数 (GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS)
関数宣言が仮想関数を基本クラスから隠すときに警告します。
たとえば、以下の例では、A クラスバージョンの f() が B に隠されています。
struct A {
virtual void f();
};
struct B: public A {
void f(int);
};
その結果、以下のコードはコンパイルに失敗します。
B* b;
b-&gt;f();
この設定は、C++ および Objective-C++ ソースにのみ適用されます。
すべての警告を妨げる (GCC_WARN_INHIBIT_ALL_WARNINGS)
すべての警告メッセージを妨げます。
完全に括弧を付加されていないイニシャライザ (GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED)
集約または共用体のイニシャライザが完全に括弧を付加されていない場合に警告します。以下の例では、a のイニシャライザは完全に括弧を付加されていませんが、b のイニシャライザは完全に括弧を付加されています。
int a`2``2` = { 0, 1, 2, 3 };
int b`2``2` = { { 0, 1 }, { 2, 3 } };
中括弧と括弧がありません (GCC_WARN_MISSING_PARENTHESES)
真理値が期待される文脈に代入がある場合や、優先順位が混乱する演算子が入れ子にされている場合など、特定の文脈で括弧が省略されている場合に警告します。また、else 分岐がどの if 文に属するかについて混乱が生じる可能性がある構文についても警告します。例えば:
{
    if (a)
      if (b)
        foo ();
    else
        bar ();
}
C では、else 分岐はすべて可能な限り最も内側の if 文に属します。上記の例では if (b) です。上記の例で使用されているインデントで示されているように、これは多くの場合、プログラマが期待するものではありません。このビルド設定により、この混乱の可能性がある場合に GCC が警告を発行します。警告を排除するには、最も内側の if 文を明示的に中括弧で囲み、else が囲む if に属することができないようにします。例えば:
{
    if (a)
      {
          if (b)
            foo ();
          else
            bar ();
      }
}
非仮想デストラクタ (GCC_WARN_NON_VIRTUAL_DESTRUCTOR)
クラスが多態的に使用されるように見えるため、クラスがおそらく仮想であるべき非仮想デストラクタを宣言すると警告します。これは、C++ または Objective-C++ ソースに対してのみアクティブです。
つまらない警告 (GCC_WARN_PEDANTIC)
厳密な ISO C および ISO C++ が要求するすべての警告を発行します。禁止されている拡張機能を使用するすべてのプログラム、および ISO C および ISO C++ に準拠していない他のいくつかのプログラムを拒否します。ISO C の場合、使用される -std オプションで指定された ISO C 標準のバージョンに従います。
隠されたローカル変数 (GCC_WARN_SHADOW)
ローカル変数が別のローカル変数、パラメータ、またはグローバル変数に影を及ぼすとき、または組み込み関数が影を及ぼすときに警告します。
符号の比較 (GCC_WARN_SIGN_COMPARE)
符号付きの値を符号なしに変換すると、符号付きの値と符号なしの値を比較すると誤った結果が生成される場合に警告します。
厳密なセレクタの一致 (GCC_WARN_STRICT_SELECTOR_MATCH)
id または Class 型の受信者にこのセレクタを使用してメッセージを送信しようとしたときに、与えられたセレクタに対して引数や戻り値の型が異なる複数のメソッドが見つかった場合に警告します。この設定を無効にすると、見つかった違いが同じサイズと配置を共有する型に限定される場合、コンパイラはそのような警告を省略します。
printf/scanf への型チェック呼び出し (GCC_WARN_TYPECHECK_CALLS_TO_PRINTF)
printf および scanf への呼び出しをチェックして、指定された引数が指定された文字列形式に適切な型であること、および文字列形式で指定された変換が意味があることを確認してください。
宣言されていないセレクタ (GCC_WARN_UNDECLARED_SELECTOR)
宣言されていないセレクタを参照する @selector(...) 式が見つかった場合に警告します。@selector(...) 式の前に、@interface または @protocol 宣言で明示的に、または @implementation セクションで暗黙的に、その名前のメソッドが宣言されていない場合、セレクタは宣言されていないと見なされます。このオプションは常に @selector(...) 式が見つかるとすぐにチェックを実行しますが、-Wselector はコンパイルの最終段階でのみチェックを実行します。これにより、メソッドとセレクタを使用する前に宣言しなければならないというコーディングスタイルの規則も適用されます。
初期化されていない変数 (GCC_WARN_UNINITIALIZED_AUTOS)
変数が setjmp 呼び出しによって破壊される可能性がある場合、または自動変数が事前の初期化なしで使用されている場合に警告します。
コンパイラは、自動変数が初期化されるすべてのケース、または初期化前の使用につながる可能性があるすべての使用パターンを検出しない場合があります。通常の初期化されていない値のチェックと、より積極的な (保守的な) チェックを切り替えることができ、これにより、より多くの問題が検出されますが、チェックはより厳密になります。
不明なプラグマ (GCC_WARN_UNKNOWN_PRAGMAS)
GCC が理解していない #pragma ディレクティブに遭遇したときに警告します。このコマンドラインオプションを使用すると、システムヘッダファイル内の不明なプラグマに対しても警告が発行されます。これは、警告が -Wall コマンドラインオプションによってのみ有効にされた場合には当てはまりません。
未使用の関数 (GCC_WARN_UNUSED_FUNCTION)
静的関数が宣言されているが定義されていない場合、または非インライン静的関数が使用されていない場合は常に警告します。
未使用のラベル (GCC_WARN_UNUSED_LABEL)
ラベルが宣言されているが使用されていない場合は常に警告します。
未使用のパラメータ (GCC_WARN_UNUSED_PARAMETER)
関数パラメーターが宣言とは別に使用されていない場合は常に警告します。
未使用の値 (GCC_WARN_UNUSED_VALUE)
文が明示的に使用されていない結果を計算するときは常に警告します。
未使用の変数 (GCC_WARN_UNUSED_VARIABLE)
ローカル変数または非定数の静的変数が宣言とは別に使用されていない場合は常に警告します。
単一オブジェクトの事前リンクを実行 (GENERATE_MASTER_OBJECT_FILE)
この設定を有効にすると、ターゲットによってビルドされたオブジェクトファイルが ld -r を使用して単一のオブジェクトファイルに事前リンクされ、そのオブジェクトファイルが最終製品にリンクされるようにします。これは、静的ライブラリをビルドする前に、リンカにシンボルを解決させ、オブジェクトファイルを単一のモジュールにリンクさせるのに役立ちます。また、リンクフラグの個別のセットをプリリンクに適用して、エクスポートされたシンボルなどをさらに制御できます。
パッケージ情報の生成を強制する (GENERATE_PKGINFO_FILE)
PkgInfo のファイルが予期されていない場合でも、このファイルを一包化された製品に強制的に書き込みます。
プロファイリングコードの生成 (GENERATE_PROFILING_CODE)
この設定を有効にすると、コンパイラとリンカがプロファイリングコードを生成するようにします。たとえば、GCC は gprof(1) での使用に適したコードを生成します。
テキストベースのスタブ生成を有効にする (GENERATE_TEXT_BASED_STUBS)
動的ライブラリおよびフレームワーク用のテキストベースのスタブの生成を有効にします。
HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT
ビルドされるターゲットのすべてのヘッダの [名前/パス(name/path)] エントリをヘッダーマップに含めるかどうかを指定します。
HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES
ヘッダマップに、フレームワークをビルドしないターゲットを含み、ビルドされるターゲット内のすべてのヘッダの [フレームワーク名/パス(framework-name/path)] エントリが含まれるかどうかを指定します。
HEADERMAP_INCLUDES_PROJECT_HEADERS
ヘッダのターゲットメンバーシップに関係なく、ヘッダマップにプロジェクト内のすべてのヘッダーの [名前/パス(name/path)] エントリを含めるかどうかを指定します。
ヘッダー検索パス (HEADER_SEARCH_PATHS)
これは、C、Objective-C、C++、または Objective-C++ のコンパイル時に、含まれた、またはインポートされたヘッダファイルをコンパイラが検索するフォルダへのパスのリストです。パスは空白で区切られているため、スペースを含むパスはすべて適切に引用符で囲む必要があります。
カスタムフォントの自動アクティブ化 (IBC_COMPILER_AUTO_ACTIVATE_CUSTOM_FONTS)
アプリケーションの Info.plist にカスタムフォントを追加するように XIB コンパイラに指示します。これにより、アプリケーションの起動時にフォントがアクティブになります。
エラーを表示 (IBC_ERRORS)
XIB ファイルのコンパイル中に発生したエラーを表示します。
コンパイルされた XIB ファイルのフラット化 (IBC_FLATTEN_NIBS)
有効になっている場合、XIB ファイルをフラット化された (一包化されていない) NIB ファイルにコンパイルします。ふらっと化後、結果の NIB はよりコンパクトになりますが、Interface Builder で編集できなくなります。このオプションを無効にすると、結果の NIB ファイルは Interface Builder で編集可能なままになります。
デフォルトモジュール (IBC_MODULE)
特定のモジュール名なしで参照される Swift クラスのモジュール名を定義します。
通知を表示 (IBC_NOTICES)
XIB ファイルのコンパイル中に発生した通知を表示します。
その他の Interface Builder コンパイラフラグ (IBC_OTHER_FLAGS)
Interface Builder Compiler に渡すべき追加のフラグのリスト。Xcode が特定の Interface Builder Compiler フラグの UI をまだ提供していない場合は、この設定を使用して下さい。
プラグインとフレームワークディレクトリのオーバーライド (IBC_OVERRIDING_PLUGINS_AND_FRAMEWORKS_DIR)
指定されたディレクトリからフレームワークと Interface Builder プラグインをロードするように Interface Builder に指示します。この値を $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) に設定すると、Interface Builder はフレームワークとプラグインを現在のビルド構成のビルドされた製品ディレクトリから確実にロードします。
プラグイン (IBC_PLUGINS)
XIB ファイルのコンパイル時にロードすべき Interface Builder プラグインへのパスのリスト。
プラグイン検索パス (IBC_PLUGIN_SEARCH_PATHS)
XIB ファイルのコンパイル時にロードすべき Interface Builder プラグインを検索されるパスのリスト。
NIB ファイルを取り除く (IBC_STRIP_NIBS)
インターフェースビルダー の NIB を取り除いて、展開用のサイズを縮小します。その結果、NIB はよりコンパクトになりますが、Interface Builder で編集できなくなります。このオプションを無効にすると、結果の NIB ファイルは Interface Builder で編集可能なままになります。
警告を表示 (IBC_WARNINGS)
XIB ファイルのコンパイル中に発生した警告を表示します。
カスタムフォントの自動アクティブ化 (IBSC_COMPILER_AUTO_ACTIVATE_CUSTOM_FONTS)
アプリケーションの Info.plist にカスタムフォントを追加するように Storyboard コンパイラに指示します。これにより、アプリケーションの起動時にフォントがアクティブになります。
エラーを表示 (IBSC_ERRORS)
Storyboard ファイルのコンパイル中に発生したエラーを表示します。
コンパイルされた Storyboard ファイルのフラット化 (IBSC_FLATTEN_NIBS)
Storyboard ファイルをフラット化された (一包化されていない) Storyboard ファイルにコンパイルします。フラット化後、結果の Storyboard はよりコンパクトになりますが、Interface Builder で編集できなくなります。このオプションを無効にすると、結果の Storyboard ファイルは Interface Builder で編集可能なままになります。
デフォルトモジュール (IBSC_MODULE)
特定のモジュール名なしで参照される Swift クラスのモジュール名を定義します。
通知を表示 (IBSC_NOTICES)
Storyboard ファイルのコンパイル中に発生した通知を表示します。
その他の Storyboard コンパイラフラグ (IBSC_OTHER_FLAGS)
Interface Builder Compiler に渡すべき追加のフラグのリスト。Xcode が特定の Interface Builder Compiler フラグの UI をまだ提供していない場合は、この設定を使用して下さい。
Storyboardc ファイルの削除 (IBSC_STRIP_NIBS)
編集可能な Interface Builder の Storyboardc ファイルを削除して、展開用のサイズを縮小します。結果の Storyboardc はよりコンパクトになりますが、Interface Builder で編集できなくなります。このオプションを無効にすると、結果の Storyboardc ファイルは Interface Builder で編集可能なままになります。
警告を表示 (IBSC_WARNINGS)
Storyboard ファイルのコンパイル中に発生した警告を表示します。
再帰検索に含めるべきサブディレクトリ (INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES)
これは、再帰検索を実行するときに含めるべきファイルまたはディレクトリ名の fnmatch() スタイルのパターンのリストです。デフォルトでは、これは空であり、再帰検索から除外するサブディレクトリ (EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES) で提供されるファイル名パターンのリストに例外を提供する場合にのみカスタマイズされます。
含まれるソースファイル名 (INCLUDED_SOURCE_FILE_NAMES)
ターゲットのビルドフェーズでファイルを処理するときに明示的に 含める ソースファイルの名前を指定するパターンのリスト (fnmatch(3) で定義されているように)。この設定は、除外されたソースファイル名 (EXCLUDED_SOURCE_FILE_NAMES) と組み合わせる場合にのみ役立ち、他のビルド設定に応じてフェーズからのファイルをビルドするための複雑なフィルターを定義するために使用できます。
Info.plist ファイルのビルド設定を展開します (INFOPLIST_EXPAND_BUILD_SETTINGS)
Info.plist ファイルのビルド設定を展開します。
Info.plist ファイル (INFOPLIST_FILE)
バンドルで使用される Info.plist 情報を含むプロパティリストファイルへのプロジェクト相対パス。情報プロパティリストファイルの詳細については、実行時構成ガイドライン の 情報プロパティリストファイル を参照してください。
Info.plist 他のプリプロセッサフラグ (INFOPLIST_OTHER_PREPROCESSOR_FLAGS)
Info.plist ファイルを前処理するときに C プリプロセッサに渡すべき他のフラグ。
Info.plist 出力エンコーディング (INFOPLIST_OUTPUT_FORMAT)
出力用 Info.plist の出力エンコーディングを指定します。出力エンコーディングは、binary または XML にすることができます。デフォルトでは、出力エンコーディングは入力から変更されません。
INFOPLIST_PATH
バンドルの情報プロパティリストファイルへのパスを指定します。
Info.plist プリプロセッサ接頭辞ファイル (INFOPLIST_PREFIX_HEADER)
Info.plist ファイルを前処理するときに、与えられたファイルを暗黙的に含めます。与えられたパスは、プロジェクトの相対パスまたは絶対パスのいずれかである必要があります。
Info.plist ファイルの前処理 (INFOPLIST_PREPROCESS)
C プリプロセッサを使用して Info.plist ファイルを前処理します。
Info.plist プリプロセッサ定義 (INFOPLIST_PREPROCESSOR_DEFINITIONS)
foo または foo=bar の形式のプリプロセッサマクロのスペース区切りリスト。これらのマクロは、Info.plist ファイルを前処理するときに使用されます。
INFOSTRINGS_PATH
バンドルのローカライズされた文字列ファイルを含むファイルを指定します。
初期化ルーチン (INIT_ROUTINE)
これは、初期化に使用するルーチンの名前です。
テキストベースのスタブのインライン化を有効にする (INLINE_PRIVATE_FRAMEWORKS)
テキストベースのスタブをインライン化する private フレームワークを有効にします。
'installhdrs' 中にファイルのコピーフェーズを実行する (INSTALLHDRS_COPY_PHASE)
ターゲットのファイルコピービルドフェーズが installhdr ビルドで実行されるかどうかを指定します。
'installhdrs' 中にシェルスクリプトフェーズを実行する (INSTALLHDRS_SCRIPT_PHASE)
ターゲットのスクリプト実行ビルドフェーズが installhdr ビルドで実行されるかどうかを指定します。installhdr ビルドの詳細については、アクティブビルドアクション (ACTION) を参照してください。
INSTALL_DIR
インストールされた 製品が配置されるデベロッパのファイルシステム内のディレクトリを識別します。
インストールグループ (INSTALL_GROUP)
インストールされた製品のグループ名または gid。
インストール許可 (INSTALL_MODE_FLAG)
インストールされた製品ファイルに使用される許可。
インストール所有者 (INSTALL_OWNER)
インストールされた製品の所有者名または uid。
インストールディレクトリ (INSTALL_PATH)
ビルド製品をインストールすべきディレクトリ。このパスは、インストールビルド製品の場所 (DSTROOT) によって先頭に追加されます。
インテントクラス生成言語 (INTENTS_CODEGEN_LANGUAGE)
生成された Intent クラスに使用するソースコード言語。デフォルトでは、"自動(Automatic" はプロジェクトを分析して正しい言語を判別します。この設定を調整して、"Swift" または "Objective-C" を明示的に選択します。
Mac Catalyst 用のビルド (IS_MACCATALYST)
ターゲットが Mac Catalyst 用にビルドしているかどうかを示します。このビルド設定は、シェルスクリプトおよびビルド設定構成での使用を目的としており、読み取り専用と見なされます。
Private 外部シンボルを保持 (KEEP_PRIVATE_EXTERNS)
この設定を有効にすると、private 外部シンボルが静的シンボルに変換されるのではなく、保持されます。この設定は、単一オブジェクトのプレリンクを実行するときにも考慮されます。
リンカ依存情報ファイルへのパス (LD_DEPENDENCY_INFO_FILE)
この設定は、リンカが入力として使用して生成したファイルに関する情報を出力すべきパスを定義します。Xcode は、その依存関係の追跡にこの情報を使用します。この設定の値を空に設定すると、このオプションがリンカに渡されなくなります。
動的ライブラリ許可クライアント (LD_DYLIB_ALLOWABLE_CLIENTS)
この設定は、指定された各値のリンカに -allowable_client を渡すことにより、dylib をリンクできるクライアントを制限します。
動的ライブラリインストール名 (LD_DYLIB_INSTALL_NAME)
動的ライブラリに内部 install path (LC_ID_DYLIB) を設定します。ライブラリに対しリンクされているクライアントは、dyld がこのライブラリを見つける方法としてそのパスを記録します。このオプションが指定されていない場合、-o パスが使用されます。動的ライブラリ以外の製品をビルドする場合、この設定は無視されます。動的ライブラリプログラミングのトピックス を参照してください。
リンクマップファイルの書き込み (LD_GENERATE_MAP_FILE)
この設定を有効にすると、リンカがマップファイルをディスクに書き込みます。マップファイルには、出力イメージ内のすべてのシンボルとそのアドレスの詳細が含まれています。マップファイルへのパスは、リンクマップファイルへのパス (LD_MAP_FILE_PATH) 設定で定義されます。
リンクマップファイルへのパス (LD_MAP_FILE_PATH)
この設定は、リンクマップファイルの書き込み (LD_GENERATE_MAP_FILE) 設定がアクティブになっているときにリンカによって書き込まれるマップファイルへのパスを定義します。デフォルトでは、アーキテクチャとビルドバリアントごとに個別のファイルが書き込まれ、これらは、製品がリンクされているターゲットの中間ディレクトリに生成されます。
位置依存の実行可能ファイルを生成 (LD_NO_PIE)
この設定を有効にすると、Xcode は位置に依存しない (PIE) メイン実行ファイルをビルドできなくなります。macOS 10.7 以降をターゲットとする場合、PIE はメインの実行可能ファイルのデフォルトであるため、この設定を有効にするとその動作が変わります。OS X 10.6 以前をターゲットにする場合、または i386 用にビルドする場合、PIE はデフォルトではないため、この設定をアクティブにしても何も起こりません。
-mdynamic-no-pic でコンパイルされた .o ファイルから PIE を作成することはできません。PIE を使用すると、codegen の最適性は低下しますが、アドレスのランダム化によってセキュリティがある程度向上します。
引用リンカの引数 (LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER)
この設定は、リンカへの引数を -Xlinker を使用して引用するかどうかを制御します。デフォルトでは、Xcode は、ターゲットでソースファイルをビルドするために使用されるコンパイラのドライバを呼び出してリンカを呼び出し、引用符引数に -Xlinker を渡し、コンパイラドライバがそれらをリンカに渡します (ドライバー内で評価するのではなく)。デフォルトでは、この設定は有効になっています。これを無効にすると、Xcode は、 -Xlinker を使用して引数をリンカに渡さなくなります。この設定を無効にすると、ターゲットが Xcode に代替リンカを使用するように指示し (たとえば、LD 設定を別のリンカへのパスに設定することにより)、その代替リンカは -Xlinker を認識しません。
ランパス検索パス (LD_RUNPATH_SEARCH_PATHS)
これは、作成されるイメージの実行パス (runpath) 検索パスリストに追加されるパスのリストです。実行時に、dyld は、ロードパスが @rpath/ で始まる dylib を検索するときに実行パスを使用します。動的ライブラリプログラミングのトピックス を参照してください。
その他の Lex フラグ (LEXFLAGS)
lex に渡すべき追加のフラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が lex フラグの UI をまだ提供していない場合は、この設定を使用します。
大文字と小文字を区別しないスキャナーを生成 (LEX_CASE_INSENSITIVE_SCANNER)
このオプションを有効にすると、lex は大文字と小文字を区別しないスキャナーを生成します。lex 入力パターンで与えられた文字の大文字と小文字は無視され、入力内のトークンは大文字と小文字に関係なく照合されます。yytext で与えられた、一致したテキストでは大文字と小文字が保持されます (たとえば、折りたたまれません)。
#line ディレクティブの挿入 (LEX_INSERT_LINE_DIRECTIVES)
このオプションを有効にすると、#line ディレクティブを挿入するように lex に指示され、アクションのエラーメッセージが元の lex 入力ファイル (エラーが入力ファイル内のコードによるものである場合) または lex.yy.c (エラーが lex の障害である場合)。このオプションはデフォルトで有効になっています。無効にすると、#line ディレクティブを挿入しないようにフラグが lex に渡されます。
デフォルトの規則を抑制 (LEX_SUPPRESS_DEFAULT_RULE)
このオプションを有効にすると、デフォルトの規則 (一致しないスキャナ入力が stdout にエコーされるもの) が抑制されます。スキャナがその規則のいずれにも一致しない入力を検出すると、スキャナはエラーを出して異常終了します。このオプションは、スキャナの規則セット内の穴を検索するのに役立ちます。
警告メッセージの抑制 (LEX_SUPPRESS_WARNINGS)
このオプションを有効にすると、lex は警告メッセージを抑制します。
ライブラリ検索パス (LIBRARY_SEARCH_PATHS)
これは、製品が使用するライブラリのリンカが検索するフォルダへのパスのリストです。パスは空白で区切られているため、空白を含むパスはすべて適切に引用符で囲む必要があります。
マングルされた名前の表示 (LINKER_DISPLAYS_MANGLED_NAMES)
この設定をアクティブにすると、リンカは C++ シンボルのマングルされた名前を表示します。通常、これは推奨されませんが、これをオンにすると、C++ リンクエラーの診断と解決に役立ちます。
標準ライブラリとのリンク (LINK_WITH_STANDARD_LIBRARIES)
この設定を有効にすると、コンパイラドライバは自動的にその標準ライブラリをリンカに渡して、リンク時に使用します。必要に応じて、このフラグを使用して標準ライブラリとのリンクを無効にし、個々のライブラリを 他のリンカフラグ OTHER_LDFLAGS) として渡すことができます。
リンク時最適化 (LLVM_LTO)
この設定を有効にすると、リンク時にファイルの境界を越えて最適化できます。
- なし(No):無効。リンク時最適化を使用しません。
- モノリシックリンク時最適化(Monolithic Link-Time Optimization):このモードは、バイナリのモノリシックリンク時最適化を実行し、すべての実行可能コードを 1 つのユニットに結合し、積極的なコンパイラ最適化を実行します。
- 段階的リンク時最適化(Incremental Link-Time Optimization:):このモードは、バイナリのパーティション化されたリンク時最適化を実行し、コンパイルユニット間をインライン化し、各ユニットで積極的ななコンパイラ最適化を並列に実行します。これにより、高速な段階的ビルドが可能になり、モノリシック LTO よりも少ないメモリを使用します。
ローカライズされた文字列マクロ名 (LOCALIZED_STRING_MACRO_NAMES)
ソースコード内でローカライズされた文字列を生成するために使用される NSLocalizedString のようなマクロまたは関数のベース名。この設定が空の場合でも、NSLocalizedString と CFCopyLocalizedString のデフォルトのベース名は常に考慮されます。
ローカライズされた文字列 Swift UI のサポート (LOCALIZED_STRING_SWIFTUI_SUPPORT)
有効にすると、Swift UI から Text() イニシャライザに渡されたリテラル文字列がローカリゼーションエクスポート中に抽出されます。
Mach-O 型 (MACH_O_TYPE)
この設定は、生成されるバイナリの形式と、他のバイナリをビルドするときにリンクする方法を決定します。バイナリ型の詳細については、Mach-O プログラミングトピックス の Mach-O ファイルのビルド を参照してください。
- 実行可能ファイル(Executable):実行可能ファイルとスタンドアロンバイナリであり、リンクできません。mh_execute
- 動的ライブラリ(Dynamic Library):動的ライブラリはビルド時にリンクされ、必要に応じて自動的にロードされます。mh_dylib
- バンドル(Bundle):バンドルライブラリは実行時に明示的にロードされます。mh_bundle
- 静的ライブラリ(Static Library):静的ライブラリはビルド時にリンクされ、実行時にロードされます。staticlib
- 再配置可能オブジェクトファイル(Relocatable Object File):オブジェクトファイルは、ビルド時にリンクされる単一モジュールファイルです。mh_object
すべての mapc 警告を抑制 (MAPC_NO_WARNINGS)
警告を報告せずに .xcmappingmodel ファイルを .cdm にコンパイルします。
マーケティングバージョン (MARKETING_VERSION)
この設定は、ユーザに表示されるバージョンのプロジェクトを定義します。この値は、アプリの Info.plist の CFBundleShortVersionString キーに対応しています。
モジュールマップファイル (MODULEMAP_FILE)
これは、コンパイラのモジュール構造を定義する LLVM モジュールマップファイルへのプロジェクト相対パスです。空の場合、モジュールの定義 (DEFINES_MODULE) が有効になっていると、適切な製品に対してそれが自動的に生成されます。
Private モジュールマップファイル (MODULEMAP_PRIVATE_FILE)
これは、private ヘッダのモジュール構造を定義する LLVM モジュールマップファイルへのプロジェクト相対パスです。
MODULES_FOLDER_PATH
製品の Clang モジュールマップと Swift モジュールコンテンツを含むディレクトリを指定します。
MODULE_CACHE_DIR
コンパイラがそのキャッシュされたモジュールを格納するフォルダの絶対パス—このキャッシュはパフォーマンスを向上します。
モジュール ID (MODULE_NAME)
これは、生成されたスタブ (stub) にリストされているカーネルモジュールの ID です。これは、カーネル拡張をビルドするときにのみ使用されます。
モジュール開始ルーチン (MODULE_START)
これは、カーネルモジュール開始ルーチンの名前を定義します。これは、カーネル拡張をビルドするときにのみ使用されます。
モジュール停止ルーチン (MODULE_STOP)
これは、カーネルモジュール停止ルーチンの名前を定義します。これは、カーネル拡張をビルドするときにのみ使用されます。
モジュールのバージョン (MODULE_VERSION)
これは、生成されたスタブ (stub) にリストされているカーネルモジュールのバージョンです。これは、カーネル拡張をビルドするときにのみ使用されます。
削除規則の momc 警告を抑制する (MOMC_NO_DELETE_RULE_WARNINGS)
.xcdatamodel(d) ファイルのコンパイル中の削除規則に対する管理されたオブジェクトモデルコンパイラ (momc) 警告を抑制します。
逆の関係がない momc 警告を抑制 (MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS)
.xcdatamodel(d) ファイルのコンパイル中に、逆関係のない出力からの管理オブジェクトモデルコンパイラ (momc) 警告を抑制します。
100 以上のプロパティを持つ実体の momc 警告を抑制 (MOMC_NO_MAX_PROPERTY_COUNT_WARNINGS)
.xcdatamodel(d) ファイルのコンパイル中に 100 以上のプロパティを持つ実体の出力からの管理オブジェクトモデルコンパイラ (momc) 警告を抑制します。
すべての momc 警告を抑制 (MOMC_NO_WARNINGS)
.xcdatamodel(d) ファイルのコンパイル中に出力から管理オブジェクトモデルコンパイラ (momc) の警告を抑制します。
一時的逆関係の momc エラーを抑制 (MOMC_SUPPRESS_INVERSE_TRANSIENT_ERROR)
.xcdatamodel(d) ファイルのコンパイル中に、一時的逆関係の出力からの管理オブジェクトモデルコンパイラ (momc) 警告を抑制します。これは、10.5 でエラーが発生する前に 10.4.x で適切にコンパイルされた 10.4.x で作成されたモデルでのみ使用することを目的としています。
その他の Metal リンカフラグ (MTLLINKER_FLAGS)
metal リンカフラグのスペース区切りリスト。
その他の Metal コンパイラフラグ (MTL_COMPILER_FLAGS)
コンパイラフラグのスペース区切りリスト。
デバッグ情報の生成 (MTL_ENABLE_DEBUG_INFO)
シェーダーのデバッグとプロファイリングには、デバッグ情報が必要です。
ビルド中のインデックス機能を有効にする(Metal) (MTL_ENABLE_INDEX_STORE)
ビルド中にコンパイラがインデックスデータを出力するかどうかを制御します。
モジュール(Metal)を有効にする (MTL_ENABLE_MODULES)
モジュールの使用を有効にします。システムヘッダは、生のヘッダではなくセマンティックモジュールとしてインポートされます。これにより、ビルドとプロジェクトのインデックス作成が高速化されます。
高速演算を有効にする (MTL_FAST_MATH)
IEEE 754 標準に違反する可能性のある浮動小数点演算の最適化を有効にし、単精度および半精度浮動小数点の数学関数の高精度バリアントを無効にします。
ヘッダ検索パス (MTL_HEADER_SEARCH_PATHS)
これは、Metal のコンパイル時にインクルードされまたはインポートされたヘッダファイルについてコンパイラが検索するフォルダへのパスのリストです。パスは空白で区切られているため、空白を含むパスはすべて適切に引用符で囲む必要があります。MTL_HEADER_SEARCH_PATHS, -I
警告を無視 (MTL_IGNORE_WARNINGS)
このオプションを有効にすると、すべての警告が無視されます。MTL_IGNORE_WARNINGS, -W
Metal 言語リビジョン (MTL_LANGUAGE_REVISION)
使用する言語リビジョンを決定します。このオプションの値を指定しなければなりません。
プリプロセッサ定義 (MTL_PREPROCESSOR_DEFINITIONS)
'foo' または 'foo=bar' の形式のプリプロセッサマクロのスペース区切りリスト。
警告をエラーとして扱う (MTL_TREAT_WARNINGS_AS_ERRORS)
このオプションを有効にすると、すべての警告がエラーとして扱われます。 MTL_TREAT_WARNINGS_AS_ERRORS, -Werror
その他の Nasm フラグ (NASM_OTHER_FLAGS)
nasm アセンブラに渡すべき追加のフラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定の nasm フラグの UI をまだ提供していない場合は、この設定を使用して下さい。
Nasm プレインクルードファイル (NASM_PREINCLUDE_FILE)
メインソースファイルの処理を開始する前に、事前にインクルードするファイルを指定します。
NATIVE_ARCH
ビルドが実行されているアーキテクチャを識別します。
OBJECT_FILE_DIR
バリアントオブジェクトファイルが配置されるディレクトリを部分的に識別します。完全な仕様は、このビルド設定のバリアントを使用して計算されます。
中間ビルドファイルパス (OBJROOT)
ビルド中に中間ファイルが配置されるパス。中間ファイルには、生成されたソース、オブジェクトファイルなどが含まれます。シェルスクリプトのビルドフェーズでは、ここにファイルを配置してアクセスすることもできます。通常、このパスはターゲットごとではなく、プロジェクトごとまたはユーザごとに設定されます。デフォルトでは、これは $(PROJECT_DIR)/build に設定されています。
アクティブなアーキテクチャのみをビルド (ONLY_ACTIVE_ARCH)
有効にすると、アクティブなアーキテクチャのみがビルドされます。'Generic Device' 実行宛先など、特定のアーキテクチャーを定義していない実行宛先でビルドする場合、この設定は無視されます。
オンデマンドリソースの初期インストールタグ (ON_DEMAND_RESOURCES_INITIAL_INSTALL_TAGS)
アプリケーションとともにダウンロードおよびインストールされる一連の初期オンデマンドリソースタグを定義されています。
オンデマンドリソースのプリフェッチ順序 (ON_DEMAND_RESOURCES_PREFETCH_ORDER)
アプリがインストールされると、この定義された一連のオンデマンドリソースタグがダウンロードされます。これらのタグは、アプリケーションの初期インストール後にダウンロードされ、リストに提供されているタグの最初から最後の順にダウンロードされます。
OpenCL アーキテクチャ (OPENCL_ARCHS)
製品がビルドされるアーキテクチャのリスト。これは通常、プラットフォームによって提供される事前定義されたビルド設定に設定されます。
自動ベクトライザー (OPENCL_AUTO_VECTORIZE_ENABLE)
CPU の OpenCL カーネルを自動ベクトル化します。この設定は CPU に対してのみ有効です。これにより、CPU と GPU 間で移植可能でパフォーマンスの高い単一のカーネルを記述することができます。
OpenCL コンパイラのバージョン (OPENCL_COMPILER_VERSION)
プラットフォームでサポートされている OpenCL C コンパイラのバージョン。
デノルム(非正規)をゼロにフラッシュする (OPENCL_DENORMS_ARE_ZERO)
このオプションは、単精度および倍精度の非正規化数の処理方法を制御します。ビルドオプションとして指定した場合、単精度の非正規化数はゼロにフラッシュされる可能性があります。倍精度のオプションの拡張がサポートされている場合、倍精度の非正規化数もゼロにフラッシュされる可能性があります。これはパフォーマンスのヒントであり、OpenCL コンパイラは、デバイスが単精度 (または倍精度) の非正規化数をサポートしている場合、非正規をゼロにフラッシュしないことを選択できます。
CL_FP_DENORM ビットが CL_DEVICE_SINGLE_FP_CONFIG で設定されていないなど、デバイスが単精度の非正規化数をサポートしていない場合、このオプションは単精度の数値では無視されます。
デバイスが倍精度をサポートしていない場合、または倍精度をサポートしているが倍精度の非正規化数をサポートしていない場合、たとえば CL_FP_DENORM ビットが CL_DEVICE_DOUBLE_FP_CONFIG に設定されていない場合、このオプションは倍精度数に対して無視されます。
このフラグは、スカラーおよびベクトルの単精度浮動小数点変数と、プログラム内のこれらの浮動小数点変数の計算にのみ適用されます。画像オブジェクトの読み取りまたは書き込みには適用されません。
単精度として倍精度 (OPENCL_DOUBLE_AS_SINGLE)
倍精度浮動小数点式を単精度浮動小数点式として扱います。このオプションは GPU でのみ使用できます。
IEEE 遵守の緩和 (OPENCL_FAST_RELAXED_MATH)
これにより、IEEE 754 標準と、単精度浮動小数点についてはセクション 7.4、倍精度浮動小数点についてはセクション 9.3.9、OpenCL 1.1 仕様のセクション 7.5 の境界例の動作で定義されている OpenCL 数値遵守要件に違反する可能性がある浮動小数点演算の最適化が可能になります。
これは、パフォーマンスの最適化を目的としています。
このオプションにより、プリプロセッサマクロ __FAST_RELAXED_MATH__ が OpenCL プログラムで定義されます。
MAD を使用 (OPENCL_MAD_ENABLE)
a * b + c を mad 命令で置き換えることができます。mad は精度を落として a * b + c を計算します。たとえば、一部の OpenCL デバイスは、c に追加する前に a * b の結果を切り捨てる mad を実装しています。
これは、パフォーマンスの最適化を目的としています。
最適化レベル (OPENCL_OPTIMIZATION_LEVEL)
- なし(None):最適化しません。-O0 この設定では、コンパイラの目標は、コンパイルのコストを削減し、デバッグで期待どおりの結果が生成されるようにすることです。文は独立しています:文の間のブレークポイントでプログラムを停止すると、新しい値を変数に代入したり、プログラムカウンターを関数内の他の文に変更したりして、ソースコードから期待どおりの結果を得ることができます。
- 高速(Fast):コンパイルの最適化には多少時間がかかり、大きな関数の場合はメモリを多く消費します。 -O,-O1 この設定を使用すると、コンパイラは、コンパイル時間のたくさんかかる最適化を実行せずに、コードサイズと実行時間を削減しようとします。Apple のコンパイラでは、最適化時に、厳密なエイリアシング、ブロックの並べ替え、およびブロック間のスケジューリングがデフォルトで無効になっています。
- より高速(Faster:コンパイラは、スペースと速度のトレードオフを含まない、サポートされているほぼすべての最適化を実行します。-O2 この設定では、コンパイラはループの展開、関数のインライン化、またはレジスターの名前変更を実行しません。高速 (Fast) 設定と比較して、この設定はコンパイル時間と生成されたコードのパフォーマンスの両方を増加させます。
- 最高速(Fastest):Faster 設定で指定されたすべての最適化をオンにし、また関数のインライン化とレジスタ名変更オプションもオンにします。この設定により、バイナリが大きくなる場合があります。-O3
- 最高速、最小(Fastest, smallest):サイズを最適化します。この設定により、通常はコードサイズが増加しないすべての高速 (Faster) 最適化が有効になります。また、コードサイズを削減するために設計されたさらなる最適化も実行します。-Os
OpenCL その他のフラグ (OPENCL_OTHER_BC_FLAGS)
コンパイラに渡すべき追加のフラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定のコンパイラフラグの UI をまだ提供していない場合は、この設定を使用します。
OpenCL プリプロセッサマクロ (OPENCL_PREPROCESSOR_DEFINITIONS)
foo または foo=bar の形式のプリプロセッサマクロのスペース区切りリスト。
順序ファイル (ORDER_FILE)
関数とデータがレイアウトされる順序を変更するファイルへのパス。
出力ファイルのセクションごとに、順序ファイルで指定されているそのセクションのシンボルは、そのセクションの先頭に移動され、順序ファイルと同じ順序でレイアウトされます。順序ファイルは、1 行に 1 つのシンボル名を持つテキストファイルです。#で始まる行はコメントです。オプションでシンボル名の前にオブジェクトファイルのリーフ名とコロンを付けることができます (たとえば、foo.o:_foo)。これは、複数のファイルで発生する静的関数/データに役立ちます。シンボル名の前にアーキテクチャーをオプションで付けることもできます (例えば、ppc:_foo または ppc:foo.o:_foo)。これにより、複数のアーキテクチャで機能する 1 つの順序ファイルを作成できます。リテラル C 文字列は、順序ファイル内の文字列を引用することで順序付けできます (たとえば、 "Hello, world\n")。
リンクされたバイナリがデバッガでは読みにくくなるため、通常、デバッグまたは開発構成では順序ファイルを指定しないでください。これらは、リリース構成または展開構成でのみ使用してください。
実行専用として保存 (OSACOMPILE_EXECUTE_ONLY)
出力スクリプトを実行専用形式で保存します。スクリプトは実行できますが、スクリプトエディタまたは Xcode で開くことはできません。このオプションをオフにすると、ユーザはスクリプトを開いて元のスクリプトソースを表示できます。
その他の C フラグ (OTHER_CFLAGS)
C および Objective-C ファイルのコンパイラに渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定の C または Objective-C コンパイラフラグの UI をまだ提供していない場合は、この設定を使用して下さい。
その他のコード署名フラグ (OTHER_CODE_SIGN_FLAGS)
codesign(1) に渡すべき追加オプションのリスト。
その他の C++ フラグ (OTHER_CPLUSPLUSFLAGS)
C++ および Objective-C++ ファイルのコンパイラに渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode がまだ C++ または Objective-C++ コンパイラフラグの UI を提供していない場合は、この設定を使用して下さい。
その他の IIG Cフラグ (OTHER_IIG_CFLAGS)
clang の iig 呼び出しに渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定の iig フラグの UI をまだ提供していない場合は、この設定を使用して下さい。
その他の IIG フラグ (OTHER_IIG_FLAGS)
iig コンパイラに渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定の iig フラグの UI をまだ提供していない場合は、この設定を使用して下さい。
その他のリンカフラグ (OTHER_LDFLAGS)
この設定で定義されたオプションは、リンカの呼び出しに渡されます。
その他のライブラリアンフラグ (OTHER_LIBTOOLFLAGS)
この設定で定義されたオプションは、静的ライブラリの生成に使用されるアーカイブライブラリアンのすべての呼び出しに渡されます。
その他の MiG フラグ (OTHER_MIGFLAGS)
mig に渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode がまだ mig フラグの UI を提供していない場合は、この設定を使用して下さい。
その他の OSACompile フラグ (OTHER_OSACOMPILEFLAGS)
osacompile に渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定の osacompile フラグの UI をまだ提供していない場合は、この設定を使用して下さい。
その他の Rez フラグ (OTHER_REZFLAGS)
Rez コンパイラに渡すべき追加フラグのスペース区切りリスト。スペースまたは特殊文字が含まれている引数 (スペースが含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode が特定の Rez フラグの UI をまだ提供していない場合は、この設定を使用しまて下さい。
その他の Swift フラグ (OTHER_SWIFT_FLAGS)
Swift コンパイラに渡すべき追加フラグのリスト。
その他のテキストベースの InstallAPI フラグ (OTHER_TAPI_FLAGS)
この設定で定義されたオプションは、テキストベースの InstallAPI ツールの呼び出しに渡されます。
パッケージ型
ユニフォーム型識別子。ターゲットがビルドする製品の型を識別します。一部の製品は、単一のバイナリまたはアーカイブで構成されている場合があります。その他のファイルは、単一のディレクトリにグループ化された複数のファイルで構成される場合があります。これらのコンテナディレクトリは、バンドル (bundles と呼ばれます。
プロパティリスト出力エンコーディング (PLIST_FILE_OUTPUT_FORMAT)
プロパティリストファイル (.plist) の出力エンコーディングを指定します。出力エンコーディングは、バイナリまたは XML にすることができます。デフォルトでは、出力エンコーディングは入力から変更されません。
PLUGINS_FOLDER_PATH
製品のプラグインを含むディレクトリを指定します。
プレコンパイルヘッダはビルドディレクトリのファイルを使用 (PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR)
この設定により、プレコンパイルされた接頭辞ヘッダーファイルをプロジェクト間で共有する際により良く制御できます。デフォルトでは、ビルドディレクトリがプロジェクトディレクトリの外にある場合、Xcode は、接頭辞ヘッダファイルにビルドディレクトリのヘッダファイルが含まれる可能性があると想定します。情報が必要なときに他のプロジェクトが共有ビルドディレクトリにビルドされていない可能性があるため、Xcode はこれを事前に判断できません。
接頭辞ファイルにビルドディレクトリのファイルが全く含まれない場合は、これを NO に設定して、プリコンパイルヘッダの共有を改善できます。接頭辞がプロジェクトディレクトリ内のビルドディレクトリのファイルを使用する場合は、これを YES に設定して、ビルドの失敗につながる可能性のある意図しない共有を回避できます。
単一オブジェクトプレリンクフラグ (PRELINK_FLAGS)
単一オブジェクトのプレリンクを実行するときに渡すべき追加フラグ。
プレリンクライブラリ (PRELINK_LIBS)
単一オブジェクトのプレリンクを実行するときに渡す追加のライブラリ。
Init と Term とをデッドストリップしないでください (PRESERVE_DEAD_CODE_INITS_AND_TERMS)
この設定をアクティブにすると、デッドコードストリッピング (DEAD_CODE_STRIPPING) (-dead_strip) オプションと組み合わせて、-no_dead_strip_inits_and_terms フラグが cc(1) を介して ld(1) に渡され、初期化ルーチンと終了ルーチンのデッドコードストリッピングが無効になります。このオプションは、前述の デッドコードストリッピング (DEAD_CODE_STRIPPING) オプションなしで使用しないでください。
Private ヘッダフォルダのパス (PRIVATE_HEADERS_FOLDER_PATH)
ビルドされた製品フォルダを基準にした、ビルド中に private ヘッダをコピーすべき場所。
製品バンドル ID (PRODUCT_BUNDLE_IDENTIFIER)
バンドルを一意に識別する文字列。文字列は、英数字 (A〜Z、a〜z、0〜9)、ドット (.)、およびハイフン (-) のみを使用した逆 DNS 形式である必要があります。この値は、ビルドされたバンドルの Info.plist で CFBundleIdentifier として使用されます。
PRODUCT_DEFINITION_PLIST
製品アーカイブの追加要件を指定するファイルへのパス。
製品モジュール名 (PRODUCT_MODULE_NAME)
このターゲット用に構築されたソースコードモジュールに使用すべき名前で、モジュールを実装ソースファイルにインポートするために使用されます。有効な識別子でなければなりません。
製品名 (PRODUCT_NAME)
これは、ターゲットによって生成された製品のベース名です。
プロジェクト名 (PROJECT_NAME)
現在のプロジェクトの名前。
PROJECT_TEMP_DIR
プロジェクトの中間ビルドファイルが配置されるディレクトリを識別します。このディレクトリは、プロジェクトで定義されたすべてのターゲット間で共有されます。スクリプトの実行ビルドフェーズでは、このビルド設定で指定されている場所ではなく、DERIVED_FILE_DIR で識別されたディレクトリに中間ビルドファイルを生成する必要があります。
プロビジョニングプロファイル (PROVISIONING_PROFILE_SPECIFIER)
プロファイル名 (または UUID) を含めなければなりません。プロファイルがないか無効な場合、ビルドエラーが発生します。開発チーム (DEVELOPMENT_TEAM) と組み合わせて使用して、プロビジョニングプロファイルを完全に指定します。
Public ヘッダフォルダのパス (PUBLIC_HEADERS_FOLDER_PATH)
ビルドされた製品フォルダーを基準にした、ビルド中に public ヘッダをコピーすべき場所。
RC 生成言語 (RCPROJECT_CODEGEN_LANGUAGE)
生成された RC オブジェクトに使用すべきソースコード言語。デフォルトでは、Xcode はシーン内のオブジェクトを表す Swift 型を生成します。この設定を調整して "Swift" を明示的に選択するか、"None" を選択して RC オブジェクトの生成を無効にします。
再度エクスポートされたフレームワーク名 (REEXPORTED_FRAMEWORK_NAMES)
シンボルが必要なフレームワーク名のリストは、ビルドされたライブラリから再度エクスポートされます。
再度エクスポートされたライブラリ名 (REEXPORTED_LIBRARY_NAMES)
シンボルが必要なライブラリ名のリストは、ビルドされたライブラリから再度エクスポートされます。
再度エクスポートされたライブラリパス (REEXPORTED_LIBRARY_PATHS)
シンボルが必要なライブラリパスのリストは、ビルドされたライブラリから再度エクスポートされます。
REMOVE_CVS_FROM_RESOURCES
CVS ディレクトリがコピーされたときにバンドルリソースからそれを削除するかどうかを指定します。
REMOVE_GIT_FROM_RESOURCES
.git ディレクトリがコピーされたときにバンドルリソースからそれを削除するかどうかを指定します。
REMOVE_HG_FROM_RESOURCES
.hg ディレクトリがコピーされたときにバンドルリソースからそれを削除するかどうかを指定します。
REMOVE_SVN_FROM_RESOURCES
SVN ディレクトリがコピーされたときにバンドルリソースからそれを削除するかどうかを指定します。
バイナリソースのファイルフォーク (RESMERGER_SOURCES_FORK)
ResMerger がバイナリ入力ファイルをデータフォークホストとして処理するか、リソースフォークホストとして処理するか、または各入力ファイルを自動的に検査するかを決定します。
リソースターゲットデバイスファミリ (RESOURCES_TARGETED_DEVICE_FAMILY)
リソースのコピーをデフォルトのターゲットデバイスと異なるものにする必要がある場合は、ターゲットデバイスファミリ (TARGETED_DEVICE_FAMILY) をオーバーライドします。
RETAIN_RAW_BINARIES
ストリップされていないバイナリのコピーを利用できるままにするかどうかを指定します。
REZ_COLLECTOR_DIR
ResMerger によって生成された、収集された Resource Manager リソースが、製品に追加される前に格納されるディレクトリを指定します。
REZ_OBJECTS_DIR
Rez によって生成されたコンパイル済み Resource Manager リソースが、ResMerger を使用して収集される前に格納されるディレクトリを指定します。
Rez 接頭辞ファイル (REZ_PREFIX_FILE)
コンパイルされた各 Rez ファイルのコマンドラインに名前付きファイルを暗黙的に含めます。与えられるパスは、プロジェクトの相対パスまたは絶対パスのいずれかである必要があります。
プリプロセッサ定義 (REZ_PREPROCESSOR_DEFINITIONS)
これらの文字列は、リソースマネージャリソースをコンパイルするときに定義されます。
プリプロセッサの未定義 (REZ_PREPROCESSOR_UNDEFINITIONS)
これらの文字列は、リソースマネージャリソースをコンパイルするときに未定義になります。
エイリアスの解決 (REZ_RESOLVE_ALIASES)
エイリアスを未解決または条件付きで解決できるようにします。デフォルトでは、常にエイリアスを解決します。
読み取り専用リソースマップ (REZ_RESOURCE_MAP_READ_ONLY)
このオプションを有効にすると、リソースマップの出力が読み取り専用になります。
Rez スクリプト型 (REZ_SCRIPT_TYPE)
リソースマネージャーリソースをコンパイルするときに使用すべき特定の 2 バイト文字スクリプト ID の認識を有効にします。これにより、文字列内の 2 バイト文字を分割できない実体として処理できます。デフォルトの言語はローマ字で、1 バイト文字セットを指定します。
Rez 検索パス (REZ_SEARCH_PATHS)
これは、リソースマネージャリソースを含むファイルを検索するためのパスのリストです。パスは空白で区切られているため、空白を含むパスはすべて適切に引用符で囲む必要があります。
診断出力を表示 (REZ_SHOW_DEBUG_OUTPUT)
このオプションを有効にすると、リソースマネージャーリソースをコンパイルするときにバージョンと進行状況の情報が書き込まれます。
型の再宣言の警告を抑制 (REZ_SUPPRESS_REDECLARED_RESOURCE_TYPE_WARNINGS)
このオプションを有効にすると、再宣言されたリソース型に関する警告が抑制されます。
'ビルド' 中の分析 (RUN_CLANG_STATIC_ANALYZER)
この設定を有効にすると、Xcode はすべてのビルド中に適格なソースファイルに対して Clang 静的分析ツールを実行します。
インクルードに対しすべてのソースファイルをスキャン (SCAN_ALL_SOURCE_FILES_FOR_INCLUDES)
この設定を有効にすると、依存関係グラフを計算するときにすべてのソースファイルがインクルード (たとえば、ヘッダーファイル) に対してスキャンされます。この場合、インクルードファイルが変更されると、インクルードファイルは、それを含むターゲットが次に変更されたときに再度ビルドされます。通常、C 言語のソースファイルなど、特定の型のファイルのみがスキャンされます。
この設定は、カスタムのビルド規則を使用してコンパイルされる異常な型のファイルがプロジェクトに含まれている場合に役立ちます。
SCRIPTS_FOLDER_PATH
製品のスクリプトを含むディレクトリを指定します。
ベースの SDK (SDKROOT)
ビルド中に使用されているベーの SDK の名前またはパス。製品は、指定された SDK 内にあるヘッダとライブラリに対してビルドされます。このパスはすべての検索パスの前に付加され、環境を介してコンパイラとリンカに渡されます。追加のSDKは、追加の SDK (ADDITIONAL_SDKS) 設定で指定できます。
シンボル順序付けフラグ (SECTORDER_FLAGS)
これらのフラグは、通常、セグメント内のシンボルの順序付けオプションを指定するために使用されます。たとえば、ld への -sectorder オプションです。
一般に、デバッグ構成または開発構成ではシンボルの順序付けオプションを指定しないでください。これにより、リンクされたバイナリがデバッガで読みにくくなります。これらは、リリース構成または展開構成でのみ使用してください。
シンボルを個別に編集 (SEPARATE_SYMBOL_EDIT)
リンクされた製品のシンボルを編集するときにこの設定を有効にすると、nmedit(1) を個別に呼び出して編集が行われます。それ以外の場合、可能であればリンク中に編集が行われます。
SHARED_FRAMEWORKS_FOLDER_PATH
製品の共有フレームワークを含むディレクトリを指定します。
プリコンパイル済みヘッダーキャッシュパス (SHARED_PRECOMPS_DIR)
ビルド中にプリコンパイルされた接頭辞ヘッダファイルが配置されるパス。デフォルトは $(OBJROOT)/SharedPrecompiledHeaders です。共通の場所を使用すると、プリコンパイル済みヘッダを複数のプロジェクト間で共有できます。
インストールをスキップ (SKIP_INSTALL)
有効になっている場合、展開場所がアクティブであっても、ビルドされた製品をインストールしません。
SRCROOT
ターゲットのソースファイルを含むディレクトリを識別します。
文字列ファイル出力エンコーディング (STRINGS_FILE_OUTPUT_ENCODING)
文字列 (Strings) ファイルに使用すべきエンコーディングを指定します (デフォルトでは、出力エンコーディングは 16 ビット Unicode になります)。値は、NSString で認識される数値の 1 つなどの NSStringEncoding か、CFString で認識される IANA 文字セット名のいずれかです。ファイルを指定されたエンコーディングに変換できない場合、操作は失敗します。
追加のストリップフラグ (STRIPFLAGS)
ビルドのリンクされた製品を削除するときに渡される追加フラグ。
リンクされた製品を削除 (STRIP_INSTALLED_PRODUCT)
有効にすると、展開後処理を実行するときに、ビルドのリンクされた製品からシンボルが削除されます。
PNG ファイルからテキストメタデータを削除 (STRIP_PNG_TEXT)
PNG ファイル内のテキストチャンク形式のメタデータは、ディスク上のフットプリントを削減するために削除されます。
ストリップスタイル (STRIP_STYLE)
ビルドのリンクされた製品で実行されるシンボル削除のレベル。デフォルト値は、ターゲットの製品型によって定義されます。
- すべてのシンボル(All Symbols):バイナリを完全に削除し、シンボルテーブルと再配置情報を削除します。 all, -s
- 非グローバルシンボル(Non-Global Symbols):非グローバルシンボルを削除しますが、外部シンボルは保存します。non-global, -x
- デバッグシンボル(Debugging Symbols):デバッグシンボルを削除しますが、ローカルシンボルとグローバルシンボルを保存します。debugging, -S
Swift シンボルの削除 (STRIP_SWIFT_SYMBOLS)
STRIP_STYLE 設定で指定されたシンボルストリッピングのレベルを調整して、ビルドのリンクされた製品が削除されると、すべての Swift シンボルが削除されます。
サポートされるプラットフォーム (SUPPORTED_PLATFORMS)
ベースの SDK を使用できるサポートされるプラットフォームのリスト。この設定は、異なる SDK を使用して複数のプラットフォーム用に製品をビルドできる場合に使用されます。
Mac Catalyst をサポート (SUPPORTS_MACCATALYST)
Mac Catalyst 用のこのターゲットのビルドをサポートします。
テキストベースの InstallAPI をサポート (SUPPORTS_TEXT_BASED_API)
有効にすると、ターゲットがテキストベースの InstallAPI をサポートすることを示します。これにより、インストールビルド中その生成が有効になります。
アクティブなコンパイル条件 (SWIFT_ACTIVE_COMPILATION_CONDITIONS)
条件付きコンパイル式を有効にするコンパイル条件のリスト。
コンパイルモード (SWIFT_COMPILATION_MODE)
この設定は、モジュール内の Swift ファイルを再度ビルドする方法を制御します。
- インクリメンタル(Incremental):必要に応じて複数のコンパイラプロセスを実行し、モジュール内の古い Swift ソースファイルのみを再度ビルドします。
- モジュール全体(Whole Module):単一のコンパイラプロセスで、モジュール内のすべての Swift ソースファイルを常に再度ビルドします。
安全性チェックを無効にする (SWIFT_DISABLE_SAFETY_CHECKS)
最適化時に実行時の安全性チェックを無効にします。
メモリへの排他的アクセス (SWIFT_ENFORCE_EXCLUSIVE_ACCESS)
実行時に排他アクセスを強制します。
パスのインポート (SWIFT_INCLUDE_PATHS)
追加の Swift モジュール用に Swift コンパイラによって検索されるパスのリスト。
Objective-C 互換ヘッダのインストール (SWIFT_INSTALL_OBJC_HEADER)
フレームワークの場合、ブリッジされた Swift クラスを記述する Objective-C 互換ヘッダーを Public ヘッダフォルダのパス (PUBLIC_HEADERS_FOLDER_PATH) にインストールして、フレームワークを使用して Objective-C コードからアクセスできるようにします。デフォルトは YES です。
Objective-C ブリッジヘッダ (SWIFT_OBJC_BRIDGING_HEADER)
Swift で公開されるべき Objective-C インターフェースを定義するヘッダへのパス。
Objective-C で生成されたインターフェイスヘッダ名 (SWIFT_OBJC_INTERFACE_HEADER_NAME)
Objective-C の #import 文で使用するために Swift コンパイラによって生成されるヘッダに使用する名前。
最適化レベル (SWIFT_OPTIMIZATION_LEVEL)
- なし(None):全く最適化せずにコンパイルします。-Onone
- 速度の最適化(Optimize for Speed):-O
- サイズの最適化(Optimize for Size):-Osize
- モジュール全体の最適化(Whole Module Optimization):-O -whole-module-optimization
ブリッジヘッダのプレコンパイル (SWIFT_PRECOMPILE_BRIDGING_HEADER)
全体的なビルド時間を短縮するために、Objective-C ブリッジヘッダを使用する場合、そのプレコンパイル済みヘッダを生成します。
リフレクションメタデータレベル (SWIFT_REFLECTION_METADATA_LEVEL)
この設定は、Swift コンパイラが出力するリフレクションメタデータのレベルを制御します。
- すべて(All):Swift の構造体とクラスの格納されたプロパティ、Swift 列挙型のケース、およびそれらの名前に関する型情報は、メモリグラフデバッガでの反射と分析のためにバイナリに出力されます。
- 名前なし(Without Names):格納されたプロパティとケースに関する型情報のみがバイナリに出力され、それらの名前は省略されます。-disable-reflection-names
- なし(None):リフレクションメタデータはバイナリに全く出力されません。メモリグラフデバッガで Swift 型を含むメモリの問題を検出する精度が低下し、Swift コードでの反映が、プロパティや列挙型のケースなどの型の子を発見できない場合があります。-disable-reflection-metadata
警告を抑制する (SWIFT_SUPPRESS_WARNINGS)
警告を出しません。
Swift 3 @objc 推論 (SWIFT_SWIFT3_OBJC_INFERENCE)
Swift コンパイラが宣言のために @objc を推論する方法を制御します。
警告をエラーとして扱う (SWIFT_TREAT_WARNINGS_AS_ERRORS)
すべての警告をエラーとして扱います。
ビルド製品パス (SYMROOT)
ビルドの実行時にすべての製品が配置されるパス。通常、このパスはターゲットごとではなく、プロジェクトごとまたはユーザごとに設定されます。デフォルトでは、これは $(PROJECT_DIR)/build に設定されています。
システムフレームワーク検索パス (SYSTEM_FRAMEWORK_SEARCH_PATHS)
これは、C、Objective-C、C++、または Objective-C++ のコンパイル時にインクルードまたはインポートされたヘッダファイルの両方についてコンパイラによって検索されるべきシステムフレームワークを含むフォルダへのパスのリストと、製品で使用されるフレームワークのリンカによって検索されます。順序は、最高から最低の優先順位です。パスは空白で区切られているため、空白を含むパスはすべて適切に引用符で囲む必要があります。この設定は、"フレームワーク検索パス" と非常に似ていますが、システム検索パスで見つかったヘッダのほとんどの警告を抑制する方法で検索パスがコンパイラに渡される点が異なります。コンパイラがシステムフレームワークの検索パスの概念をサポートしていない場合、検索パスは、"フレームワーク検索パス" で定義された既存のフレームワーク検索パスに追加されます。
システムヘッダ検索パス (SYSTEM_HEADER_SEARCH_PATHS)
これは、C、Objective-C、C++、または Objective-C++ のコンパイル時にインクルードまたはインポートされたシステムヘッダーファイルをコンパイラーが検索するフォルダへのパスのリストです。順序は、最高から最低の優先順位です。パスは空白で区切られているため、空白を含むパスはすべて適切に引用符で囲む必要があります。この設定は "ヘッダー検索パス" と非常に似ていますが、システム検索パスで見つかったヘッダのほとんどの警告を抑制する方法でヘッダがコンパイラに渡される点が異なります。コンパイラがシステムヘッダ検索パスの概念をサポートしていない場合、検索パスは、"ヘッダー検索パス" で定義された既存のヘッダ検索パスに追加されます。
テキストベースの InstallAPI 検証モード (TAPI_VERIFY_MODE)
テキストベースの InstallAPI をビルドするときに報告すべき警告とエラーのレベルを選択します。
ターゲットとするデバイスファミリ (TARGETED_DEVICE_FAMILY)
ビルドシステムは、選択したデバイスを使用して、ターゲットの Info.plist ファイルに追加する UIDeviceFamily キーに正しい値を設定します。これにより、-target-device フラグも actool に駆動されます。actool は、iOS プラットフォームのカタログのコンパイル中に選択される熟語を決定します。
TARGET_BUILD_DIR
製品のファイル (中間ビルドファイルではない) を含むディレクトリ階層のルートを識別します。ターゲットの製品ファイルを操作するスクリプトの実行ビルドフェーズでは、ファイルを定義するターゲットはこのビルド設定の値を使用する必要がありますが、他のターゲットの製品ファイルを操作するスクリプトの実行ビルドフェーズでは、代わりに BUILT_PRODUCTS_DIR を使用する必要があります。
ターゲット名 (TARGET_NAME)
現在のターゲットの名前。
TARGET_TEMP_DIR
ターゲットの中間ビルドファイルを含むディレクトリを識別します。スクリプトの実行ビルドフェーズでは、このビルド設定で識別されるディレクトリではなく、DERIVED_FILE_DIR で示される場所に中間ファイルを配置する必要があります。
テストホスト (TEST_HOST)
テストのバンドルが導入されるべき実行可能ファイルへのパス。この設定は、アプリケーションまたはその他の実行可能ファイルをテストする場合にのみ指定してください。
欠落しているベースラインをテスト失敗として扱う (TREAT_MISSING_BASELINES_AS_TEST_FAILURES)
XCTestCase を介してパフォーマンスを測定するテストを実行する場合、欠落しているベースラインをテストの失敗として報告します。
エクスポートしないシンボルファイル (UNEXPORTED_SYMBOLS_FILE)
エクスポートしないシンボルをリストするファイルへのプロジェクト相対パス。シンボルのエクスポートの詳細については、 ld -exported_symbols_list を参照してください。
UNLOCALIZED_RESOURCES_FOLDER_PATH
製品のローカライズされていないリソースを含むディレクトリを指定します。
ユーザヘッダ検索パス (USER_HEADER_SEARCH_PATHS)
これは、C、Objective-C、C++、またはO bjective-C++ のコンパイル時に、インクルードまたはインポートされたユーザヘッダファイル (これらのヘッダは引用符で囲まれています) をコンパイラが検索すべきフォルダへのパスのリストです。パスは空白で区切られているため、空白を含むパスはすべて適切に引用符で囲む必要があります。この設定の使用方法の詳細については、常にユーザーパスを検索する (旧式) (ALWAYS_SEARCH_USER_PATHS) を参照してください。コンパイラがユーザヘッダの概念をサポートしていない場合、検索パスは、ヘッダ検索パス (HEADER_SEARCH_PATHS) で定義されている既存のヘッダ検索パスの前に追加されます。
ヘッダマップの使用 (USE_HEADERMAP)
ヘッダマップ の使用を有効にします。これにより、通常のコンパイラヘッダ検索パスメカニズムをバイパスして、テキストヘッダ名からその場所へのマッピングをコンパイラに提供します。これにより、ヘッダ検索パスのビルド設定を更新する必要なく、ソースコードにファイルシステムのさまざまな場所のヘッダを含めることができます。
ビルドされた製品の検証 (VALIDATE_PRODUCT)
有効になっている場合、ビルドプロセスの一部として製品の検証チェックを実行します。
ワークスペースの検証 (VALIDATE_WORKSPACE)
有効になっている場合は、ビルドプロセスの一部としてワークスペース構成の検証チェックを実行します。
ワークスペースの検証-無視されたフレームワーク (VALIDATE_WORKSPACE_SKIPPED_SDK_FRAMEWORKS)
ワークスペース検証作業で旧式の警告とフレームワークの欠落エラーを抑制するフレームワーク名のリスト。
有効なアーキテクチャ (VALID_ARCHS)
ターゲットを実際にビルドする必要があるアーキテクチャの、スペースで区切られたリスト。ターゲットごとに、これは アーキテクチャー (ARCHS) で指定されたリストと交差し、結果のセットがビルドされます。これにより、個々のターゲットが特定のアーキテクチャのビルドを選択外にできるようになります。結果のアーキテクチャのセットが空の場合、実行可能ファイルは生成されません。
VERBOSE_PBXCP
ターゲットのファイルコピービルドフェーズがファイルをコピーするときに追加情報を生成するかどうかを指定します。
バージョン管理システム (VERSIONING_SYSTEM)
生成されたファイルにバージョンスタンプを付けるために使用するプロセスを選択します。
- なし(None):バージョン管理システムを使用しません。
- Apple Generic:現在のプロジェクトバージョン設定を使用します。apple-generic
ユーザ名のバージョン管理 (VERSION_INFO_BUILDER)
これは、生成された Apple Generic Versioning スタブに含まれるビルドを実行するユーザへの参照を定義します。デフォルトは USER 環境変数の値です。
生成されたバージョン管理変数 (VERSION_INFO_EXPORT_DECL)
これは、生成された Apple Generic Versioning スタブ内の Info シンボル宣言の接頭辞文字列を定義します。これは、たとえば、オプションの export キーワードをバージョンシンボル宣言に追加するために使用できます。これはめったに変更されるべきではありません。
生成されたバージョン管理ソースファイル名 (VERSION_INFO_FILE)
Apple Generic Versioning によって生成され、製品にコンパイルされるソースファイルの名前を指定するために使用されます。デフォルトでは、これは $(PRODUCT_NAME)_vers.c に設定されています。
バージョン名の接頭辞 (VERSION_INFO_PREFIX)
生成されたバージョン管理ソースファイル内のバージョン情報シンボルの名前の接頭辞として使用されます。エクスポートされたシンボルに接頭辞を付ける場合は、おそらくこれを同じ接頭辞に設定する必要があります。
バージョン名の接尾辞 (VERSION_INFO_SUFFIX)
生成されたバージョン管理ソースファイル内のバージョン情報シンボルの名前の接尾辞として使用されます。これはめったに使用されません。
その他の警告フラグ (WARNING_CFLAGS)
コンパイラーに渡すべき追加の警告フラグのスペース区切りリスト。Xcode が特定のコンパイラ警告フラグの UI をまだ提供していない場合は、この設定を使用します。
警告リンカフラグ (WARNING_LDFLAGS)
これらのフラグはリンカの呼び出しで渡され、デフォルトでは -no_arch_warnings フラグをリンカーに与えて、マルチアーキテクチャーのビルド中に多くの警告が生成されないようにします。
ラッパー拡張 (WRAPPER_EXTENSION)
製品ラッパーに使用される拡張。製品型に基づいたデフォルト値があります。
WRAPPER_NAME
製品バンドルの適切な拡張子を含むファイル名を指定します。
WRAPPER_SUFFIX
製品バンドル名の接尾辞を指定します。拡張子と残りのバンドル名を区切る文字を含みます。
プラグインデータを追加 (XCODE_PLUGINCOMPILER_APPEND)
コンパイルしたプラグインデータを上書きせずに、既存のプラグインデータに追加します。
元のプラグインデータをコピー (XCODE_PLUGINCOMPILER_COPY_ORIGINAL)
元の (コンパイルされていない) プラグインデータをコピーして、コンパイルされたプラグインデータと共に出力します。
拡張 XML を含める (XCODE_PLUGINCOMPILER_INCLUDE_EXTENSION_XML)
結果の xcplugindata ファイルに拡張 XML データを含めます。
プラグインデータ形式 (XCODE_PLUGINCOMPILER_OUTPUT_FORMAT)
結果の xcplugindata ファイルに使用するプロパティリスト形式 (バイナリまたは XML)。
プラグイン最大開発者ツールバージョン (XCODE_PLUGINCOMPILER_TOOLS_VERSION_MAX)
このプラグインが使用される開発者ツールの最新バージョン。
プラグインの最小開発者ツールバージョン (XCODE_PLUGINCOMPILER_TOOLS_VERSION_MIN)
このプラグインが使用される開発ツールの最も古いバージョン。
その他の Yacc フラグ (YACCFLAGS)
yacc に渡す追加のフラグのスペース区切りリスト。空白または特殊文字が含まれている引数 (空白が含まれている可能性のあるパス名など) は、必ずバックスラッシュでエスケープしてください。Xcode がまだ yacc フラグの UI を提供していない場合は、この設定を使用します。
生成されたファイルステム (YACC_GENERATED_FILE_STEM)
yacc によって生成されたファイルに使用するファイルステム。ファイルには、この設定の値に基づいて、<stem>.tab.c および <stem>.tab.h という名前が付けられます。標準 (y) オプションを使用すると、同じターゲット内のすべての yacc ソースファイルが同じ出力ファイルを生成するため、複数の yacc ソースファイルを含むターゲットには推奨されません。
デバッグディレクティブの生成 (YACC_GENERATE_DEBUGGING_DIRECTIVES)
このオプションを有効にすると、yacc によって生成されたプリプロセッサディレクティブが変更され、デバッグ文がコンパイル済みコードに組み込まれます。
#line ディレクティブの挿入 (YACC_INSERT_LINE_DIRECTIVES)
このオプションを有効にすると、yacc は生成されたコードに #line ディレクティブを挿入します。#line ディレクティブを使用すると、C コンパイラは、生成されたコードのエラーをユーザの元のコードに関連付けることができます。このオプションを無効にしても、ユーザがソースファイルで指定した #line ディレクティブは保持されます。
以下も見よ