はじめに
こんにちは! iOSエンジニアのやまたつ です☺️
Oshidoriというアプリを個人で開発し、リリースしています!
Oshidoriを開発する時に、Firebaseをバックエンドとして利用しています。
今までは本番環境のみで利用してきましたが、ユーザーが少しずつ増え(本当にちょっとだけ)、本番環境で開発していると誤ってユーザーの情報を消してしまう恐れが出てきたり、下手にテストができなくなってきました。
そのため、本番環境と開発環境を作成し、開発するときは開発環境のFirebaseプロジェクト、リリースするときは本番環境のFirebaseプロジェクトに分けました!
その備忘録と、私のように環境を分けたい方向けの資料になります!
内容が良かったら「いいね」をお願いいたします🙇♂️(励みになります)
対象者
- Scheme の切替でFirebaseのプロジェクトつなげ先を変えたい人
- できるだけ簡単に済ませたい人
Firebaseでプロジェクトを2つ作成
以下の方法で2つのプロジェクトを作成し、GoogleService-info.plist を入手しましょう。
Firebaseはドキュメントが充実していて嬉しい。
Firebase公式ドキュメント:Firebase を iOS プロジェクトに追加する
TARGET の作成
TARGET の切替で本番環境と開発環境を分けたいので、TARGETを作成します。
複製したいTARGETの上で右クリックすると、Duplicate
と出てくるのでクリックすると、複製できます!(Schemeも追加される)
以下を参考にするとできるかと!
Info.plist も1つで管理した方が良いと思うので、記事を参考に進めてみてください。
iOSアプリのビルドTARGETを複数作る @alt_yamamoto さん
GoogleService-Info.plist の設定
アプリにディレクトリ分けて入れておく。
そうすると名前を変更せずに入れることができます。
あとは使うものにチェックを入れるだけ!どちらかにしないとダメですよ!
本番環境 | 開発環境 |
---|---|
どうでしたか?スムーズにできていたら嬉しいです!
+α
余裕がある方はもう少し設定を加えてみましょう☺️
TARGET の設定
Bundle Identifier
を変更しましょう!
アプリを起動したときに、2つのアプリとして認識されます。
アイコンを変更する
上記の写真ではアイコンが分かれていますがその設定方法です!
- 開発環境用のAppIconを追加
- 開発環境用を Build Setting > Asset Catalog App Set Name を 1で追加したときの名前にする
↓↓↓アイコン作成に便利なサイト↓↓↓
makeappicon ここでアイコン作成すると全サイズ作成してくれるので便利
懸念したこと
単一のターゲットにGoogleService-Info.plistの名前を変更して環境を分けると、アナリティクスの収集に影響する可能性があるらしいです。
今回は GoogleService-Info.plist の名前を変更せずにディレクトリを分けています。
plist の名前を Run Scripts
で変更する方法もあるみたいですが、名前は変更しない方が無難だと思います。
参考:Firebase 公式ドキュメント:複数のプロジェクトを構成する > iOSアプリケーションで複数の環境をサポートする
参考にさせていただいた記事🙇♂️
iOSアプリのビルドTARGETを複数作る
iOS開発で環境ごとにアイコンやアプリ名、コード等を切り分けるオレオレプラクティス
FirebaseのProjectをstaging, productionで分けるときの指針