14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xcodeのこつ - edit shemeのPre-actionsを使え

Last updated at Posted at 2014-04-28

2014/04/28にtwitterにて指摘をいただいたので修正します。
簡単にいうと以下の記事は、半分間違っています。

間違っている点
・Run Scriptは、罠ではない。(Build Phasesは、順番をかえることで、処理の順番をかえることができます。)
・Schemeは、共同プロジェクトに向いていない(Schemeはプロジェクトファイルに含まれないため、共有するためには別で出力する必要があります)

本来なら
・Run Scriptにシェルスクリプトを書きます。
・Run Scriptの順番を上位にします。

よろしくお願いします。

以下、間違い記事
~~こんにちは、

Xcodeでシェルスクリプトを使うときに壁に打ち当たったので、公開です。自分めもである。

よくSetting.bundleを使うと思います。これは、設定アプリ内で設定をできるようにするものです。そこで、デバッグとリリース版を分ける際にシェルスクリプトで、上書きすることがあります。

しかし、よくある解説サイトには、罠があります。
スクリーンショット 2014-04-28 22.30.55.png

スクリーンショットのように、プロジェクトの設定のRun Scriptに書けってあります。
しかし、これではうまくいかないときがあります。それは、ここに書くとコンパイル後に処理されるためです。

Run開始→コンパイル開始→コンパイル終了→シェルスクリプト実行→アプリ実行

これでは、上書きされないです。2回コンパイルする必要がでてきてしまいます。

これを
Run開始→シェルスクリプト実行→コンパイル開始→コンパイル終了→アプリ実行
としたいわけです

そのためには
edit schemeを使います。スクリーンショット 2014-04-28 22.36.33.png

edit schemeで下記写真のを編集してくださいスクリーンショット 2014-04-28 22.37.46.png

Pre-actionsに設定することで、コンパイル前にシェルスクリプトを実行できます。
なお、Run以外をする場合は、それぞれArchiveなどのPre-actionsに書いてください
補足ですが、Pre-actionsのシェルスクリプト内でSRCROOTなどプロジェクトに依存するものを使う場合は、シェルスクリプトを書くところの上の「Provide build settings from」の部分を適宜選んでください
~~

それでは、よいシェルスクリプトライフを!

14
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?