XCodeのRun Scriptを試しに触ってみる
iOS用アプリケーション、ライブラリのビルド前後にちょっと作業がしたい場合、XCodeの Run Script
でシェル(やシェル経由で起動できる各種言語のプログラム)を起動させることができます。
今日はちょっと試してみました。
簡単なスクリプトの実行
# hello.sh echo "hello"
こういう超簡単なスクリプトを用意して、
上図のように、実行したいスクリプト hello.sh
のパスを設定すると、ビルド時のログに hello
と出力されます。
スクリプトのパスを指定する代わりにそのまま書く
以下のようにそのまま実行したいスクリプトをベタがきすることも可能です。
上記を実行すると
ちょっとビルド自動化の際など環境変数を調べたいときに便利そうです。
指定したファイルのパスを変数に与えて実行
下の方の欄にある input files
にファイルのパスを与えると、スクリプト中にて $SCRIPT_INPUT_FILE_N
(Nは数字) という変数名で取得可能です。ちょっとやってみましょう。
// Test.xcodeproj/project.pbxprojの冒頭 // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 48; objects = {
出力結果の2行目はビルド時に書き加えられたものです。 Run Script
の中に書いたスクリプトや実行ファイルのパスは XCode
のプロジェクト設定ファイルの中に記録され、管理されます。
スキームごとに接続先などを変更したいけど、コードの中に残したくない、という場合*1などに置換処理を行ったりできるのではないでしょうか。
現場からは、以上です。
参考
- http://jpmartha.hatenablog.jp/entry/2016/02/18/141028
- https://qiita.com/kakignu/items/352aa1d11eb46bc202c2
- http://geme.github.io/xcode/2016/10/27/BuildPhaseLoopOverInput.html
*1:書いてみたけどコードの中に残した方が人間が読む上で素直な気がする