さまざまな構成に対していくつかのビルド設定を行いました。
例えば
次のように、さまざまなファイル(info.plistなど)でそれらにアクセスできます。
${MYTESTSETTING}
ただし、コマンドライン環境で値を取得することは可能ですか?たとえば、Jenkinsからのxcodebuildの後
私が試してみました
echo ${MYTESTSETTING}
と
echo $MYTESTSETTING
xcodebuild -showBuildSettings
ユーザー定義設定を含むすべてのビルド設定を表示します。例:
$ xcodebuild -configuration Debug -showBuildSettings | grep MYTESTSETTING
MYTESTSETTING = DebugValue
$ xcodebuild -configuration Release -showBuildSettings | grep MYTESTSETTING
MYTESTSETTING = ReleaseValue
これらの変数を現在のシェルの環境に取り込むには、この出力を解析する必要があります。これは、たとえば、Perlスクリプト(または他の多くのスクリプト言語)を使用して実行できます。
次の内容でPerlスクリプト「exportsettings.pl」を作成します。
#!/usr/bin/perl
open(FH, "xcodebuild -configuration Release -showBuildSettings|");
while(<FH>) {
if (/\s*(\w+)\s*=\s*(.*)$/) { # Search for <key> = <value>
$key = $1; $value = $2;
print "export $key='$value'\n";
}
}
close(FH);
これで、コマンドを実行できます
$ eval `perl exportsettings.pl`
コマンドラインから、そして(ほとんど)すべてのビルド設定が環境にあります。(「UID:読み取り専用変数」などのエラーメッセージが表示されます)。
環境で使用済みの定義済み設定のみが必要な場合は、一意のプレフィックス( "MY"など)を使用して行を変更できます
if (/\s*(\w+)\s*=\s*(.*)$/) { # Search for <key> = <value>
に
if (/\s*(MY\w+)\s*=\s*(.*)$/) { # Search for MY<key> = <value>