環境毎のアプリをインストールしたい!
前回で各環境毎に設定を変更できるようになりました。今回は環境毎に別アプリとして動作させられるようにしていきます。
これで本番環境用アプリと検証・開発のアプリをいちいち削除したりしなくても済むようになります。実稼働後、本番用アプリを削除して開発用をインストールしたり、本番用のデータを消したくない場合等に役立ちます。
1. 環境毎のアプリを用意する
Bundle Identifierを決める
Budle Identifierはアプリを認識するための値です。BundleIDと呼ばれることも多いです。
この値はユニークである必要があります。つまり、1文字でも異なると別のアプリとして認識されます。そのため、環境毎に違うIDとすることで開発用アプリと本番用アプリを同時にインストールすることが可能です。
Bundle Identifierを設定する
- 任意のTARGETを選択し、Generalを選択します
- IdentityにBundle Identityの欄があるので変更します
- developには、jp.co.opst.sample.ios3.developとしました
- stagingには、jp.co.opst.sample.ios3.stagingなどといったように、別の文字列に変えていきます。
- 個人的にはリリース用のBundle Identifierは変更せず、その他のTARGETを変更するのが良いと思います。
図1. Bundle Identityの変更
2. 表示アプリ名を設定する
Bundle Identifierを分けることで環境毎のアプリをインストール出来ますが、名前が同じだとわかりづらいので変えておきましょう。
1. User-Definedにアプリ名の定義を追加
User-Definedにアプリ名の定義を追加してターゲット毎にアプリ名を変えられるようにします
- Use-Definedに追加します
- 今回はdevelop向けの定義名にAPP_NAME、値にOPST-Devと入力しました
図2. アプリ名定義の追加
- ターゲット毎にUse-Definedを追加していきます
- 別ターゲットに追加する定義名を統一する必要があります
- Staging向けに追加する場合、定義名をAPP_NAMEと develop向けと同じ名前にし、値をOPST-Staと別の環境だとわかるようにします
- Use-Definedの追加に関しては前回の記事を参考にしてください
2. アプリケーション名の設定を追加
アプリ名の指定は、Custom iOS Target Propertiesで指定することが出来ます
- ターゲットを指定し、Infoのタブを選択します
- Custom iOS Target PropertiesのKey欄にポインターを合わせると表示される+ボタンをクリックします
図3. Custom iOS Target Propertiesの追加 - Keyの一覧が表示されるので、Bundle display nameを選択します
図4. Bundle display nameを選択 - Valueに追加したUse-Definedの定義を$(定義名)で指定します
- 今回は $(APP_NAME) と入力します
図5. Use-Definedの定義を指定
- これでアプリ名が変更されるようになります
3. アプリのアイコンを追加する
アプリが環境毎にインストール出来るようになっても、同じアイコンだと紛らわしいですよね。
アプリ名で判別は出来ますが、アイコンも環境毎に変えられるようにしておきましょう。
1. アイコンの画像を用意する
1024×1024、透過なしのPNG形式でアイコンを作成します
- 環境毎に違いがわかるようにそれぞれ変更をしましょう
2. アイコン画像をセットする
- Project navigatorを選択し、プロジェクトフォルダ内のAssets.xcassetsを選択します
- AppIconを選択するとアイコン設定の画面が表示されます
- Xcodeのバージョンで登録するアイコンの数が変わってきます
- Xcode13以前の場合は、作成した1024×1024のアイコンを縮小するなどして必要なアイコンを作成していきましょう
- Xcode13以前の場合
図6. Xcode13以前のアイコン設定画面 - Xcode14の場合
図7. Xcode14のアイコン設定画面
- AppIconの枠の中に作成した画像をドラッグ&ドロップすることで登録出来ます
図8. アイコンの登録
- Xcode14の場合は1つだけですが、他サイズのアイコンに自動的に変換してくれるようです
- Xcode13以前に作成されたプロジェクトをXcode14で開いた場合、Attributes inspectorから切り替えることが可能です
図9. アイコン登録の切り替え
3. ターゲット毎のアイコンを追加する
環境毎のアイコンセットを追加していきます
- +ボタン→iOS→iOS App Iconを選択します
図10. アイコンセットの追加 - 新しいアイコンセットが追加されるので名前を入力します
図11. アイコンセット名の入力 - 環境毎のセットを追加しました
図12. 環境毎のセットを追加
4. 環境毎のアイコンを登録
追加したアイコンセットに対してアイコンの画像をドラッグ&ドロップしていきます
5. アイコンセットの指定
ターゲット毎に使用するアイコンセットを指定します
- プロジェクトを選択、変更したいターゲットを選択、Generalを選択します
- App Icons and Launch Screenの項目のApp Iconを追加したアイコンセットの名前に変更します
図13. 環境毎にアイコンセットを指定 - ターゲット毎に変更していきます
これで環境毎にアイコンが追加されました。
4. アプリをインストールしてみる
実際にアプリをインストールしてみましょう。
- Xcodeでターゲットをdevelopに切り替えて実行(▶︎のボタン)することでdevelop向けのアプリがインストールされます
- 次にターゲットをstagingに切り替えて実行するとstaging向けのアプリがインストールされます
- 端末のホーム画面にアプリがそれぞれインストールされているのが確認出来ます
図14. ホーム画面に表示される各アイコン
これで環境毎にアプリをインストール出来るようになりました。