Open2
flutterfire_cli@0.3.0-dev.18で"flutterfire configure"をするときのメモ

こんな感じでコマンド自動化だけした
#!/bin/sh
app_id_dev=$(cat flavors/dev.json | jq -r .appId)
project_id_dev=$(cat flavors/dev.json | jq -r .projectId)
app_id_prd=$(cat flavors/prd.json | jq -r .appId)
project_id_prd=$(cat flavors/prd.json | jq -r .projectId)
dart pub global activate flutterfire_cli 0.3.0-dev.18
rm ./firebase.json
flutterfire configure --project=${project_id_dev} -a ${app_id_dev} -i ${app_id_dev} --out=lib/firebase/dev/firebase_options.dart --android-out=android/app/flavors/dev/google-services.json --ios-out=ios/flavors/dev --ios-build-config=Debug --platforms=android,ios,web -y
flutterfire configure --project=${project_id_prd} -a ${app_id_prd} -i ${app_id_prd} --out=lib/firebase/prd/firebase_options.dart --android-out=android/app/flavors/prd/google-services.json --ios-out=ios/flavors/prd --ios-build-config=Release --platforms=android,ios,web -y

flavor分けしてるとflutterfire configure
でiosのBuildPhasesに自動生成されるFlutterFire: "flutterfire bundle-service-file"
でなぜかflavorが切り替わらない不具合が生じたらこれかも
FlutterFire: "flutterfire bundle-service-file"
ここではCrashlyticsとかの関連ファイルをアップロードする処理でfirebaseのGoogleService-Info.plist
をアプリビルド後のファイルにコピぺする。みたいな処理を行っている
GoogleService-Info.plist
をコピーするにあたってファイル位置を把握するためにflutterfire configure
で生成されるfirebase.json
にアクセスする
firebase.json
"ios": {
"buildConfigurations": {
"Debug": {
多分こんな感じで書いてあると思う
このbuildConfigurations
にあるDebug
はFlutterでのreleaseモードとかとかである
なのでデフォルトに書いてあるスクリプトだとdebug,profile,releaseモードでそれぞれfirebaseのプロジェクトも変わってしまう 嬉しくない
FlutterFire "flutterfire bundle-service-file"
#!/bin/bash
PATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin
flutterfire bundle-service-file --plist-destination=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app --build-configuration=${CONFIGURATION} --platform=ios --apple-project-path=${SRCROOT}
flavorに合わせたfirebaseプロジェクトの選択をしたい場合はこんな記述が正しい
#!/bin/bash
PATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin
if [ ${flavor} = "prd" ]
then
FLAVOR_CONFIGURATION="Release"
elif [ ${flavor} = "dev" ]
then
FLAVOR_CONFIGURATION="Debug"
else
echo "`FlutterFire: flutterfire bundle-service-file` Flavor is not defined"
exit 1
fi
flutterfire bundle-service-file --plist-destination=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app --build-configuration=${FLAVOR_CONFIGURATION} --platform=ios --apple-project-path=${SRCROOT}