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

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 で追加する。

head.png

Library Search Path の追加

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

lib.png

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

lib-path.png

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

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

test.png

これで完了。