2014/04/28にtwitterにて指摘をいただいたので修正します。
簡単にいうと以下の記事は、半分間違っています。
間違っている点
・Run Scriptは、罠ではない。(Build Phasesは、順番をかえることで、処理の順番をかえることができます。)
・Schemeは、共同プロジェクトに向いていない(Schemeはプロジェクトファイルに含まれないため、共有するためには別で出力する必要があります)
本来なら
・Run Scriptにシェルスクリプトを書きます。
・Run Scriptの順番を上位にします。
よろしくお願いします。
以下、間違い記事
~~こんにちは、
Xcodeでシェルスクリプトを使うときに壁に打ち当たったので、公開です。自分めもである。
よくSetting.bundleを使うと思います。これは、設定アプリ内で設定をできるようにするものです。そこで、デバッグとリリース版を分ける際にシェルスクリプトで、上書きすることがあります。
スクリーンショットのように、プロジェクトの設定のRun Scriptに書けってあります。
しかし、これではうまくいかないときがあります。それは、ここに書くとコンパイル後に処理されるためです。
Run開始→コンパイル開始→コンパイル終了→シェルスクリプト実行→アプリ実行
これでは、上書きされないです。2回コンパイルする必要がでてきてしまいます。
これを
Run開始→シェルスクリプト実行→コンパイル開始→コンパイル終了→アプリ実行
としたいわけです
Pre-actionsに設定することで、コンパイル前にシェルスクリプトを実行できます。
なお、Run以外をする場合は、それぞれArchiveなどのPre-actionsに書いてください
補足ですが、Pre-actionsのシェルスクリプト内でSRCROOTなどプロジェクトに依存するものを使う場合は、シェルスクリプトを書くところの上の「Provide build settings from」の部分を適宜選んでください
~~
それでは、よいシェルスクリプトライフを!