iOS の家計簿アプリをつくる(環境切替編)

advent_calendar アドベントカレンダー

はじめに

こちらは個人開発アプリができるまで by am10 Advent Calendar 2024の 16 日目の記事です。

16 日目は xcconfig を使った環境切替についてです。アプリアイコン作成と言いましたがあれは嘘だ!
xcconfig を使って以下 3 つの環境を切替とわかりやすくするために Bundle Identifier と Bundle Display Name も変更します。

xcconfig は他にもいろいろできるので詳しく知りたい方は以下をご参考ください。

Adding a build configuration file to your project | Apple Developer Documentation
Specify your project’s build settings in plain-text files, and supply different settings for debug and release builds.

xcconfig の追加

Add File from Template... から Configuration Settings File を追加します。

1

追加するのはそれぞれの環境用に下記 3 つです。

  • ExpenseLog.release.xcconfig
  • ExpenseLog.debug.xcconfig
  • ExpenseLog.dummy.xcconfig

それぞれ下記のように値を追加します。

PROJECT > Info > Configurations の Debug と Release にそれぞれ設定します。

2

値の参照

次に xcconfig の値を参照できるようにします。

TARGETS > Build Settings > Product Budle Identifier の値を削除して $(PRODUCT_BUNDLE_IDENTIFIER) を設定します。

3

TARGETS > Info の Bundle display name の value を $(APP_NAME)に修正します。
TARGETS > Info に key を APP_ENVIRONMENT, value を $(APP_ENVIRONMENT)で追加します。

4

これで Bundle Identifier と Bundle Display Name は環境ごとに変わるようになりました。
Bundle Display Name が変わるのは英語表示のみです(日本語表示は InfoPlist.xcstrings の設定値になります)。

続いて APP_ENVIRONMENT の値をアプリで読み込めるようにします。直接 Environment を指定していたところを下記のように修正します。

これで xcconfig で環境切替ができるようになりました!
Dummy で動かしたい場合はちょっとめんどくさいですが PROJECT > Info > Configurations で ExpenseLog.dummy.xcconfig を指定すれば可能です(頻繁に使うものでもないしいいかなと)。

おわりに

以前は環境ごとにスキーム追加したりしてたんですがスキームごとに設定変えてしまってたりとか気づきにくいので xcconfig を使うようにしてみました。

iOS開発(Swift)のおすすめ構成〜実践編〜
はじめにライブラリ編の続きです。おすすめ構成を実践してみました。今回アーキテクチャに関しては特に触れないですがプレゼンテーションロジックをどっかに置きたいと思い PresentationModel というよくわからないものを置いています...

xcconfig 使ったことなかったんですが少なくとも 11 年前にはあったみたいですね。

明日こそアプリアイコン作成をします。

Amazon.co.jp

コメント

タイトルとURLをコピーしました