はじめに
Firebaseでステージング環境を作成し、 Xcodeでターゲットを分ける作業をしたので、
手順をまとめてみました。
前提条件
- Firebase上にStaging環境を既に作っている
- Firebase CLIを既にインストールしている
環境
- Xcode15
- Firebase CLI 13.0.2
Cloud Functionsをステージングにデプロイする。
どのプロジェクトか選択する
firebase use --add
Which project do you want to add? (Use arrow keys)
> sampleProject
エイリアス名をつける
What alias do you want to use for this project?
staging
これで環境ができるのでステージングを選択
firebase use staging
ow using alias staging (プロジェクト名)
デプロイ
firebase deploy --only functions
ローカルでエミュレート
firebase emulators:start
GoogleServiceInfo.plistの取り込み
下記のフォルダ構成でGoogleServiceInfo.plistを取り込みます。
AppdelegateでFirebaseApp初期化
import FirebaseCore
...
FirebaseApp.configure()
↓Firebaseはここまでで問題ないので以下はその他の目的でTargetを分けたい人向け
Xcodeでターゲットを分ける
ターゲット複製
ターゲットを複製してターゲット名をStaging SampleTarget変更
不要なinfo.plist削除
今回は同じinfo.plistを使いたい為複製で出来た不要なSampleTarget copy-info.plistを削除
同じinfo.plistを読むようにステージングターゲットのGeneral->Packaging->info.plist FileをSampleTarget/Info.plistに変更
スキームの設定変更
manage SchemesをクリックしてSampleTarget-Stagingにターゲットと一緒に名前を合わせる
Preprocessor Macrosの設定
今回GoogleInfo.plistはファイル名同じなので必要ありませんが、その他で必要であればPreprocessor Macrosの設定をします。
Preprocessor Macrosの設定でStagingからRELEASEを削除してステージングを追加
Preprocessor Macrosの確認
下記のコードで確認
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
#if STAGING
print("STAGINGです")
#else
print("それ以外です")
#endif
}
}
終わり!!
参考:
https://zenn.dev/oimo_revolution/articles/17ab026cbef464