LoginSignup
84
61

More than 3 years have passed since last update.

Firebase で開発環境と本番環境を切り替える方法 (iOS)

Last updated at Posted at 2019-10-22

はじめに

こんにちは! iOSエンジニアのやまたつ です☺️
Oshidoriというアプリを個人で開発し、リリースしています!

Oshidoriを開発する時に、Firebaseをバックエンドとして利用しています。
今までは本番環境のみで利用してきましたが、ユーザーが少しずつ増え(本当にちょっとだけ)、本番環境で開発していると誤ってユーザーの情報を消してしまう恐れが出てきたり、下手にテストができなくなってきました。
そのため、本番環境と開発環境を作成し、開発するときは開発環境のFirebaseプロジェクト、リリースするときは本番環境のFirebaseプロジェクトに分けました!

その備忘録と、私のように環境を分けたい方向けの資料になります!
内容が良かったら「いいね」をお願いいたします🙇‍♂️(励みになります)

対象者

  • Scheme の切替でFirebaseのプロジェクトつなげ先を変えたい人
  • できるだけ簡単に済ませたい人

Firebaseでプロジェクトを2つ作成

以下の方法で2つのプロジェクトを作成し、GoogleService-info.plist を入手しましょう。
Firebaseはドキュメントが充実していて嬉しい。

Firebase公式ドキュメント:Firebase を iOS プロジェクトに追加する

スクリーンショット 2019-10-22 午後3.01.00.png

TARGET の作成

TARGET の切替で本番環境と開発環境を分けたいので、TARGETを作成します。
複製したいTARGETの上で右クリックすると、Duplicate と出てくるのでクリックすると、複製できます!(Schemeも追加される)
以下を参考にするとできるかと!
Info.plist も1つで管理した方が良いと思うので、記事を参考に進めてみてください。

iOSアプリのビルドTARGETを複数作る @alt_yamamoto さん

GoogleService-Info.plist の設定

アプリにディレクトリ分けて入れておく。
そうすると名前を変更せずに入れることができます。

スクリーンショット 2019-10-22 午後5.09.26.png

あとは使うものにチェックを入れるだけ!どちらかにしないとダメですよ!

本番環境 開発環境
スクリーンショット 2019-10-22 午後5.11.41.png スクリーンショット 2019-10-22 午後5.11.57.png

どうでしたか?スムーズにできていたら嬉しいです!

余裕がある方はもう少し設定を加えてみましょう☺️

TARGET の設定

Bundle Identifier を変更しましょう!
アプリを起動したときに、2つのアプリとして認識されます。

スクリーンショット 2019-10-22 午後3.11.04.png
スクリーンショット 2019-10-22 午後3.10.49.png

こんな感じ↓↓↓↓↓
スクリーンショット 2019-10-22 午後4.37.41.png

アイコンを変更する

上記の写真ではアイコンが分かれていますがその設定方法です!

  1. 開発環境用のAppIconを追加
  2. 開発環境用を Build Setting > Asset Catalog App Set Name を 1で追加したときの名前にする

本番用
スクリーンショット 2019-10-22 午後5.16.58.png
スクリーンショット 2019-10-22 午後5.17.41.png
開発用
スクリーンショット 2019-10-22 午後5.17.08.png
スクリーンショット 2019-10-22 午後5.17.29.png

↓↓↓アイコン作成に便利なサイト↓↓↓
makeappicon ここでアイコン作成すると全サイズ作成してくれるので便利

懸念したこと

単一のターゲットにGoogleService-Info.plistの名前を変更して環境を分けると、アナリティクスの収集に影響する可能性があるらしいです。

今回は GoogleService-Info.plist の名前を変更せずにディレクトリを分けています。
plist の名前を Run Scripts で変更する方法もあるみたいですが、名前は変更しない方が無難だと思います。

参考:Firebase 公式ドキュメント:複数のプロジェクトを構成する > iOSアプリケーションで複数の環境をサポートする

参考にさせていただいた記事🙇‍♂️

iOSアプリのビルドTARGETを複数作る
iOS開発で環境ごとにアイコンやアプリ名、コード等を切り分けるオレオレプラクティス
FirebaseのProjectをstaging, productionで分けるときの指針

TARGETを追加してハマったら読んでほしい記事

TARGET を追加したら Pod が読み込まれなくて死ぬほどハマったので備忘録

84
61
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
84
61