FlutterプロジェクトとFirebaseを紐づけるために、「flutterfire configure」を実行したところ、以下の質問とエラーが出ました。
❏質問:
Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'?
❏エラー:
ERROR: Failed to create Android app for project ######. See firebase-debug.log for more info.
Web上を調べたところ、対処法に複数の候補が見つかり、対応にやや迷いました。
結論としては、
「dart pub global activate flutterfire_cli 1.0.1-dev.2」を実行する
という方法で対処しました。
2025年1月現在、Web上では日本語でこの対処法を報告する記事が見つからなかったので、ご参考に対処の過程を共有します。
前提とする環境
- PC:MacBook Pro(Intel Core i5)
- OS:macOS Sonoma 14.5
- Flutter:3.27.1
- Android Studio:Koala 2024.1.1 Patch 1
- Xcode:15.4
- flutterfire_cli: 1.0.0 ※
※一度、「flutterfire configure」を実行した時に、CLIのバージョンが古いとのエラーが出たので、「dart pub global activate flutterfire_cli」を実行して最新版にしました。
flutterfire configureでエラーが発生した状況
CLIを最新(1.0.0)にした後で、「flutterfire configure」を実行し、対応プラットフォーム(Android、iOSなど)を選択した後で、従来は見なかった下記質問文が表示されました。
Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'?
そこで、Flutterプロジェクト作成時に設定したpackage name(ここでは「com.####.XXXX」とします)を入力したところ、以下のエラーが出て、進めませんでした。
Which Android application id (or package name) do you want to use for this configuration, e.g. 'com.example.app'? 'com.####.XXXX' (←質問に回答)
(↓回答した結果の表示)
i Firebase android app 'com.####.XXXX' is not registered on Firebase project ######.
:. Registering new Firebase android app on Firebase project ######.
FirebaseCommandException: An error occured on the Firebase CLI when attempting to run a command.
COMMAND: firebase apps: create android ###### (android) --package-name='com.####.XXXX' --json --project-######
ERROR: Failed to create Android app for project ######. See firebase-debug.log for more info.
調査した結果①:AndroidManifest.xmlにpackage名を追記する方法
ネット上を調査すると、日本語では以下2つの記事が見つかりました。
対処法は、「AndroidManifest.xml」の「manifest」タグ内に、パッケージ名
package="com.####.XXXX"
を追記するという方法です。
以前、Fluttet SDKをFlutter3.19.6にアップグレードした時にも直面しましたが、Gradleのバージョンが「7.#」系から「8.#」系に上がった時に、これまで「AndroidManifest.xml」に記載されていたパッケージ名が無くなったようで(その代わりに、「build.gradle」の「namespace」の方に書かれる)、それが影響していると理解しました(参考)。
ただ、意図があって(詳しくは理解できていませんが、、、)、新しいバージョンのAndroidでは「AndroidManifest.xml」にパッケージ名を記載しなくなった訳なので、その状態をFirebaseのために戻してしまって良いものか、悩みました。
調査した結果②:flutterfire_cliのプレリリース(Prerelease)バージョンをインストールする方法
引き続き調査すると、GitHubに以下のイシューが上がっていました。
自分が直面したのと全く同じ状況で、「Which Android application id (or package name) …」の質問に対し、パッケージ名を回答したら、エラーになったようです。
イシューの流れをみると、どうやら最新の「flutterfire_cli」のバグらしく、
dart pub global activate flutterfire_cli 1.0.1-dev.2
を実行して、プレリリース(Prerelease)版の「1.0.1-dev.2」をPCにインストールし直せば解消するとう事で、このイシューはクローズされていました。
悩んだ結果、プレリリース(Prerelease)版のインストールで解決
2025年1月時点の下記「pubdev」
を見ると、
となっており、正式リリース版はあくまで「1.0.0」のままでした。
また、プレリリース版は最新では「1.0.1-dev.4」まで公開されていました。
プレリリース版をインストールするのも何か不安だな、、、と思い、やはり「AndroidManifest.xml」に追記する方法にしようか、、、と悩みましたが、
一応、公式のイシューページで、問題なく解決したとの対処法が公開されている訳なので、プレリリース版のインストールを採用する事にしました。
また、プレリリース版のバージョンも、最新版だと新たな不具合があると怖いので、イシューで「問題なく動いた」と報告されている「1.0.1-dev.2」を使う事にしました(pubdevのChangelogを見た感じでも、dev.3とdev.4でさほど大きな修正は無かったようなので...)。
結果、
dart pub global activate flutterfire_cli 1.0.1-dev.2
を実行し、その上で改めて「flutterfire configure」を実行したところ、前述のような質問文は表示されず、問題なく処理が進んで、FlutterとFirebaseの紐づけを無事完了できました。
今回のflutterfire configureのエラー:最後に
今回のエラーは、今後恐らく、flutterfire_cliのバージョン「1.0.1」が正式リリースされて、解消されるものと思います。
ただ、前述のGitHubのイシューがクローズしてから半年ほど経っても、まだ正式リリースされていなかったので、同じ状況に直面した方のご参考になればと思い、記録させていただきました。
最後までお読みいただき、ありがとうございました。
リリースしたアプリ(全てFlutterで開発)
個人アプリ開発で役立ったもの
おすすめの学習教材
\超初心者向けでオススメな元Udemyの講座/
\キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/
\Gitの基礎について無料で学べる/
おすすめの学習書籍
\実用的。image_pickerに関してかなり助けられた/
\Dartの基礎文法を素早くインプットできる/
コメント