LoginSignup
11

More than 5 years have passed since last update.

React Native Xcode プロジェクトに staging/production ビルド用設定を追加する

Last updated at Posted at 2017-12-07

Xcode に staging/production ビルド用の設定を追加する

staging/production 用のビルド設定を追加したい、ということがあるはず。
ここでは production ビルドをユーザーが実際に使うもの、 staging ビルドを production ビルドと同一だけど限られた範囲で使うもの、という前提で書いていく。

元ネタはこちら。
https://github.com/facebook/react-native/issues/11813

production ビルド用設定を追加する

簡単な production 用ビルドから。

Scheme の追加

Scheme 選択欄から Manage Schemes... を選ぶ。

スクリーンショット 2017-12-07 10.51.24.png

Xcode メニューの Product -> Scheme -> Manage Schemes... からでもアクセスできる。

対象の Scheme を選択して、ギアアイコンから Duplicate を選択する。

duplicate.png

次にやることは 3 つ。

  1. 名前を適当なものに変更する、ここでは最後に -production をつけた
  2. Build ConfigurationRelease にする
  3. Shared にチェックをいれる

prod.png

これで完了。

staging ビルド用設定を追加する

Configuration の追加

プロジェクトルートを選択すると出てくる設定画面で、 PROJECT 欄にある項目を選択、 Info タブの Configurations という設定項目の + を押す。

add-config.png

するとベースの設定をどうするか聞いてくるので、 Duplicate "Release" Configuration を選択する。

スクリーンショット 2017-12-07 11.18.05.png

Staging と名前をつける。

スクリーンショット 2017-12-07 11.19.19.png

Scheme の追加

production と同様、 Manage Schemes... を選択。
今度は production ビルドを選択して Duplicate する。

dup.png

やることは 3 つ。

  1. 名前を適当なものに変更する、ここでは最後に -staging をつけている
  2. Build ConfigurationStaging にする
  3. Shared にチェックをいれる

Header Search Path の追加

プロジェクトルートを選択すると出てくる設定画面で、 TARGETS 欄の設定変更したいターゲットを選択、 Build Settings タブの Header Search Paths 内、 Staging の項目を変更する。

header.png

$(BUILD_DIR)/Release-$(PLATFORM_NAME)/includenon-recursive で追加する。

なぜこの設定が必要かというと、依存しているパッケージのビルド設定は普通 Development / Release しか存在しないため。 そのままだと依存パッケージの Staging ビルドを探しにいって、存在しないので怒られるというコンボが発生する。これを回避するために Release のビルド結果を参照できるようにしている。

head.png

Library Search Path の追加

Header Search Paths のすぐ下にある Library Search PathsStaging の項目を変更する。

lib.png

$(BUILD_DIR)/Release-$(PLATFORM_NAME)recursive で追加する。

この設定が必要な理由は Header Search Path と同様。

lib-path.png

テストターゲットの設定変更

テストターゲットの方も Header Search PathsLibrary Search Paths を同様に設定してやる。

test.png

これで完了。

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
11