Xcode に staging/production ビルド用の設定を追加する
staging/production 用のビルド設定を追加したい、ということがあるはず。
ここでは production ビルドをユーザーが実際に使うもの、 staging ビルドを production ビルドと同一だけど限られた範囲で使うもの、という前提で書いていく。
元ネタはこちら。
https://github.com/facebook/react-native/issues/11813
production ビルド用設定を追加する
簡単な production 用ビルドから。
Scheme の追加
Scheme 選択欄から Manage Schemes...
を選ぶ。
Xcode メニューの Product
-> Scheme
-> Manage Schemes...
からでもアクセスできる。
対象の Scheme を選択して、ギアアイコンから Duplicate
を選択する。
次にやることは 3 つ。
- 名前を適当なものに変更する、ここでは最後に
-production
をつけた -
Build Configuration
をRelease
にする -
Shared
にチェックをいれる
これで完了。
staging ビルド用設定を追加する
Configuration の追加
プロジェクトルートを選択すると出てくる設定画面で、 PROJECT 欄にある項目を選択、 Info
タブの Configurations
という設定項目の +
を押す。
するとベースの設定をどうするか聞いてくるので、 Duplicate "Release" Configuration
を選択する。
Staging
と名前をつける。
Scheme の追加
production と同様、 Manage Schemes...
を選択。
今度は production ビルドを選択して Duplicate
する。
やることは 3 つ。
- 名前を適当なものに変更する、ここでは最後に
-staging
をつけている -
Build Configuration
をStaging
にする -
Shared
にチェックをいれる
Header Search Path の追加
プロジェクトルートを選択すると出てくる設定画面で、 TARGETS 欄の設定変更したいターゲットを選択、 Build Settings
タブの Header Search Paths
内、 Staging
の項目を変更する。
$(BUILD_DIR)/Release-$(PLATFORM_NAME)/include
を non-recursive
で追加する。
なぜこの設定が必要かというと、依存しているパッケージのビルド設定は普通 Development / Release しか存在しないため。 そのままだと依存パッケージの Staging ビルドを探しにいって、存在しないので怒られるというコンボが発生する。これを回避するために Release のビルド結果を参照できるようにしている。
Library Search Path の追加
Header Search Paths
のすぐ下にある Library Search Paths
の Staging
の項目を変更する。
$(BUILD_DIR)/Release-$(PLATFORM_NAME)
を recursive
で追加する。
この設定が必要な理由は Header Search Path と同様。
テストターゲットの設定変更
テストターゲットの方も Header Search Paths
と Library Search Paths
を同様に設定してやる。
これで完了。