20
21

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.

[iOS] アプリを環境毎(開発・ステージング・本番)にインストールしておきたい

Posted at

iOSアプリを開発していると、一つのアプリを環境毎にインストールしておきたい場合がありました。

最初の対応方法としては、環境毎に以下キャプチャの赤枠の設定をいちいち変更してインストールしていました。

スクリーンショット 2017-03-21 18.24.02.png

しかしこれだと、

  • ビルドする度に環境に合わせて設定を変更するのでとっても面倒
  • 頻繁に手動で変更していると設定を間違えるリスクがある

があってストレスが溜まり、精神衛生上、良くありませんでした。
私は基本的に保守的な人間(エンジニアとしては推奨されません)なので、一度、方法を確立するとあまり変えたりしないのですが、これはさすがに変えないとやってられねぇと。

そこで調べた結果、半自動で環境に合わせてビルドする方法がありました。
そこで今回は自分もやった方法をここに残そうと思います。

  • 各環境(開発、ステージング、本番)を設定しよう
    1. 開発と本番はdebugとReleaseがあるので、とりあえずステージングのを作ります
    2. プロジェクトファイル > PROJECT > ConfigurationsにあるプラスボタンからDebugの複製を作成
    スクリーンショット 2017-03-23 13.18.00.png 2. 複製したら、名前を わかりやすいのに変更する(自分の場合は、Stagingとした)

 

  • スキーマを環境毎に用意しよう
    1. 開発と本番はあるので、とりあえずステージングのを作ります
    2. スキーマ(図の左上赤枠)部分から「New scheme...」から作成
    3. 「Debug executable」はデバック実行するかどうか
    スクリーンショット 2017-03-23 13.18.02.png

 

  • アプリ表示名とバンドルIDを環境毎に変わるように独自設定を定義しよう

    1. サンプルではアプリ表示名とバンドルIDは以下のようにします。
      • 開発: Dev各環境 / com.labo.eachEnvironment.dev
      • ステージング: Stg各環境 / com.labo.eachEnvironment.stg
      • 本番: 各環境 / com.labo.eachEnvironment
    2. プロジェクトファイル > TARGET > Build Settingsにあるプラスボタンから「Add User-Defined Setting」を選択する
    3. そして以下の図の赤枠部分を定義する(名前は任意)
    スクリーンショット 2017-03-23 15.07.42.png

 

  • 定義した値を設定しよう

    1. アプリ名表示は、「Bundle display name」
      • ${DISPLAY_NAME_PREFIX}各環境
    2. Bundle Identifierは、「Bundle identifier」
      • $(PRODUCT_BUNDLE_IDENTIFIER)${BUNDLE_IDENTIFIER_SUFFIX}
    スクリーンショット 2017-03-23 15.14.38.png

以上、こうすることで以下のように環境毎にアプリを共存させることができます。

IMG_0156.PNG
20
21
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
20
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?