Xcodeの設定ファイルの作成方法

Xcodeで設定するビルド設定はプロジェクトファイル(*.xcodeproj)に保存されます。通常のアプリ開発ではこれだけで十分なのですが、中規模以上の開発を行っているときや特殊なプログラムを作っているときなどは、もう少し柔軟に制御したいことがあります。

たとえば、次のようなときです。

  • 複数のプロジェクト間で共通のマクロ定義を使用したい。
  • ビルドマシンによってヘッダーファイルやライブラリの参照パスを変更したい。
  • コードサイニングに関する設定をプロジェクトファイルに保存したくない。
  • Xcodeを使わずに、ビルド設定を変更したい。

Xcodeでは設定値を設定ファイルに書き、設定ファイルから設定値を読み込ませてビルドできます。この記事ではXcodeのビルド設定ファイルの作成方法について解説します。

目次

ビルド設定ファイルの作成方法

ビルド設定ファイルはテキストファイルです。テキストエディターでも作成できますが、プロジェクトに設定する必要があるのでXcode上で作成します。次のように操作します。

STEP
「File」メニューの「New」から「New…」を選択します。
STEP
テンプレートから「Configuration Settings File」を選択し、「Next」ボタンをクリックします。
テンプレートからConfiguration Settings Fileを選択する
テンプレートからConfiguration Settings Fileを選択する
STEP
「Targets」内のチェックをすべてオフにして、ファイル名と保存先を選択し、「Create」ボタンをクリックします。

ビルド設定ファイルは特定のターゲット用の設定であっても、ターゲットの対象にはしません。

ファイル名と保存先を設定する
ファイル名と保存先を設定する

ビルド設定ファイルの構文

ビルド設定ファイルの構文はとてもシンプルです。行単位で設定を列挙していくだけです。

設定 = 設定値

たとえば、ONLY_ACTIVE_ARCHという設定をYESにするには、次のように書きます。

ONLY_ACTIVE_ARCH = YES

コメント

Swiftのコードと同じように//以降は行末までがコメントとして扱われます。

設定値の種類

設定によって値のタイプが異なります。Xcode上でビルド設定を見ても、文字列だったり、数値だったりします。それに対応し、次のようなタイプが定義されています。

  • Boolean (YESまたはNO)
  • 文字列
  • 列挙(定義済みのテキスト)
  • スペース区切りの文字列リスト。文字列内にスペースがあるときは'で囲む
  • パス。POSIX形式のファイルパス・ディレクトリパス
  • スペース区切りのパスリスト。スペースが含まれるときは'で囲む

値の参照

他の設定値を参照するときは次のように書きます。

$(他の設定)

値の継承

ターゲット単位の設定は指定しなければ、プロジェクト単位の設定が使われます。プロジェクト単位の設定も定義されていなければ、デフォルト値が使われるというように、継承された値が使われる場合があります。設定値に以下のように書くと継承された値が使われます。

$(inherited)

文字列リストやパスリストなど、複数の値を使用可能な設定に対しては、$(inherited)を使って継承された値に追加することもできます。

FLAGS = $(inherited) --no-timestamp

プラットフォーム別の設定

プラットフォーム別の設定を定義するときは、設定名に[プラットフォームの指定=値]の形式で指定します。定義されているのは次の2つです。

  • sdk: macos10.12iphoneos10.2などの、クロスプラットフォームSDKを指定する。バージョン番号は*を使って任意の値にヒットさせることも可能である。
  • arch : x86_64またはarm64

両方とも指定したいときは、設定名[sdk=macos10.12][arch=x86_64] = 値のように、2つとも書きます。

他の設定ファイルを読み込む

他の設定ファイルに書かれている設定を読み込みたいときは、次のように書きます。

#include "Common.xcconfig"

この場合はCommon.xcconfigファイルが読み込まれる。読み込むファイルがないときは警告が表示されます。しかし、#include?を使うと表示されません。

#include? "Option.xcconfig"

ビルド設定ファイルとターゲットの関連付け

ビルド設定ファイルを使用するには、どのファイルを使用するのかをXcodeで設定します。次のように操作します。

STEP
プロジェクトの設定を表示する。
STEP
「Configurations」内のビルド設定の、ディスクロージャーボタン(△アイコン)を開く。
プロジェクトの設定を表示する
プロジェクトの設定を表示する
STEP
「None」と書かれているところをクリックすると、設定ファイルを選択できるので、使用する設定ファイルを選択する。

たとえば、Debug時のプロジェクトの設定にDebug.xcconfigファイルを割り当てる場合は、Debug内のプロジェクトの行のNoneをクリックし、Debugを選択する。

プロジェクトの設定に設定ファイルを割り当てる
プロジェクトの設定に設定ファイルを割り当てる

設定可能な値

設定可能な値の一覧は、Apple デベロッパーサイトのドキュメントで公開されています。

著書紹介

Authored Books

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次