【Xcode】xcconfig(ビルド構成ファイル)の使い方!Build Settings

この記事からわかること
- XcodeのBuild Settingsを管理する方法
- xcconfig(ビルド構成ファイル)の使い方
- Cocoa Podsでの競合の対処法
index
[open]
\ アプリをリリースしました /
環境
- Xcode:16.0
- iOS:18.0
- Swift:5.9
- macOS:Sonoma 14.6.1
xcconfig(ビルド構成ファイル)とは?
公式リファレンス:Adding a build configuration file to your project
「xcconfig(ビルド構成ファイル)」はXcodeのBuild Settings(ビルド設定)の項目を外部ファイルに分離して管理するための形式です。「Build Settings」はプロジェクトのビルド設定を管理するためのセクションでプロビジョニングプロファイルの設定やInfo.plistの指定、Swift Compiler(Swiftバージョン)などを設定することが可能になっています。

「Build Settings」の項目はGUI操作で変更することができますが、環境で分岐する設定が見にくかったり、「⌘ + Z
」でundoできなかったりと少し管理上煩わしい部分があります。これを「xcconfig(ビルド構成ファイル)」を使用することでテキストファイルベースで変更が可能になったり、環境ごとにファイルを切り分けて作成しておくことで管理がしやすくなります。
xcconfig(ビルド構成ファイル)のメリット
- ビルド設定を外部ファイルとして管理できる
- テキストファイルとして管理できるので扱いやすい
- Gitでも差分が確認しやすい
- 環境(Debug / Staging /Release)ごとにファイルを切り分けられる
記述方法
「xcconfigファイル」には以下のような形式で設定名と値を記述していきます。行単位で設定項目を羅列していき、重複した設定項目がある場合は最後に記述されている方が反映されます。
<SettingName> = <SettingValue>
ENABLE_PREVIEWS = YES
PRODUCT_NAME = $(TARGET_NAME)
MARKETING_VERSION = 1.0
指定できる値はBoolean
やString
だけでなく$(変数)
などを使用することが可能です。
既存の設定項目のSettingName
は以下を参考にしてください。ちなみに「Build Settings」タブで「⌘ + a
」で全選択して「⌘ + c
」でコピー、「xcconfigファイル」で「⌘ + v
」すると内容をペーストできます。
公式リファレンス:Build settings reference
他の構成ファイルを含める
「xcconfigファイル」では他に定義している「xcconfigファイル」の内容をinclude
することができます。これにより例えばDebugとReleaseで共通するものを「BaseSettings.xcconfig」に定義しておき、それぞれでinclude
して適応させるといったことが可能になります。
#include "BaseSettings.xcconfig"
指定した「xcconfigファイル」が見つからない場合は警告が表示されますが警告を表示したくない場合は#include?
を使用することで警告の発生を抑制することが可能です。
#include? "BaseSettings.xcconfig"
また同階層に存在しない場合は相対パス/絶対パスでの指定も可能です。
#include "../BaseSettings.xcconfig"
#include "/Users/MyUserName/Desktop/BaseSettings.xcconfig"
xcconfigの使い方
「xcconfigファイル」を追加するにはXcode上部メニューの「File」>「new」>「File from Template..」から「Configuration Settings File」を選択し作成することができます。

「xcconfigファイル」はベースとなるものと環境ごとに作成しておくと使いやすいです。

設定を反映させるには?
実際に作成した「xcconfigファイル」を適応させるには「PROJECT」>「Info」>「Configurations」から設定します。それぞれの環境に対して適切なファイルを指定すればOKです。

ただ「xcconfigファイル」に値を指定しているのに設定が反映されていない場合は「Build Settings」タブの方を確認してみてください。こちらで同様の設定項目にすでに値が入っている場合はそちらが優先されてしまうので対象の項目にカーソルを合わせてdelete
キーで削除すれば「xcconfigファイル」の設定が適応されるようになります。
Cocoa Pods使用の場合の注意点
ライブラリ管理にCocoa Podsを使用している場合はCocoa Podsのxcconfigファイルと競合するので適切にincludeしておく必要があります。
#include "Pods/Pods/Target Support Files/Pods-xxx/Pods-xxx.debug.xcconfig"
#include "Pods/Pods/Target Support Files/Pods-xxx/Pods-xxx.release.xcconfig"
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。