Expo bareExpo RouterFirebase/app

Task :app:processDebugGoogleServices FAILED エラーを修正する方法

android-package-name-02 Expo bare
スポンサーリンク

開発環境

  • Expo-bare:
try🐶everything myproject$ npx expo-env-info

  expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 14.0
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 20.7.0 - ~/.anyenv/envs/nodenv/versions/20.7.0/bin/node
      Yarn: 1.22.19 - ~/.anyenv/envs/nodenv/versions/20.7.0/bin/yarn
      npm: 10.1.0 - ~/.anyenv/envs/nodenv/versions/20.7.0/bin/npm
      Watchman: 2023.09.04.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.12.1 - /Users/xxxxx/.anyenv/envs/rbenv/shims/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0
      Android SDK:
        API Levels: 29, 30, 31, 32, 33
        Build Tools: 29.0.2, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 33.0.0
        System Images: android-29 | Google APIs ARM 64 v8a, android-29 | Google APIs Intel x86 Atom, android-30 | Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom, android-31 | Google APIs ARM 64 v8a, android-32 | Google APIs ARM 64 v8a, android-33 | Google APIs ARM 64 v8a
    IDEs:
      Android Studio: 2022.3 AI-223.8836.35.2231.10671973
      Xcode: 15.0/15A240d - /usr/bin/xcodebuild
    npmPackages:
      expo: ~49.0.13 => 49.0.13 
      react: 18.2.0 => 18.2.0 
      react-native: 0.72.5 => 0.72.5 
    Expo Workflow: bare

try🐶everything myproject$ 
  • @react-native-firebase/app: 18.5.0
  • この記事 の開発環境をベースにしています。

@react-native-firebase/app を追加する

このリンク 通りに設定して行けば良いのですが、

Firebaseコンソールで作成した Android アプリのパッケージ名ReactNative プロジェクトのAndroid アプリのパッケージ名を一致させる方法が変わっているようです。

/android/app/src/main/AndroidManifest.xml ファイル内のマニフェスト タグ内にあるローカル プロジェクトのパッケージ名と一致させる⁉️

expo@47.0.8 では pakage="com.myapp" 項目があり、修正するだけだったが

android-package-name-01

expo@49.0.13 では pakage="com.myapp" 項目がない

android-package-name-02

手動で、pakage="com.myapp" 項目を追加してビルトすると、ビルドは失敗する

> Task :app:processDebugGoogleServices FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.myapp'

違う方法を試します。

スポンサーリンク

com.myappで検索した結果ファイルの設定を Firebase コンソールのパッケージ名に変更する ( VSCode )

android-package-name-03

※ 検索条件に ./android だけに制限し、./android/app/build/ 以下のファイルを除外することで得られた結果です。(⬆︎)

※ 対象ファイル:com.myapp ➡︎ your.firebase.console.package.name

  • android/app/build.gradlenamespace:"com.myapp"applicationId:"com.myapp"
  • android/app/src/debug/java/com/myapp/ReactNativeFlipper.java:package:com.myapp
  • android/app/src/main/java/com/myapp/MainActivity.java:package:com.myapp
  • android/app/src/main/java/com/myapp/MainApplication.java:package:com.myapp
  • android/app/src/release/java/com/myapp/ReactNativeFlipper.java:package:com.myapp

⬆︎ 変更後、再度ビルドすると問題なく成功できると思います。

※もし、全てのファイルを変更せず、android/app/build.gradle のみ、若しくは *.java だけ変更しビルトすると下記のようにビルドは成功するがエミュレーターが起動出来ないことがあるのでご注意ください!

CommandError: Couldn't open Android app with activity "com.mycompany.myapp/.MainActivity" on device "Pixel_XL_API_32".

try🐶everything myprojecct$ yarn android
...
› Opening com.mycompany.myapp/.MainActivity on Pixel_XL_API_32
CommandError: Couldn't open Android app with activity "com.mycompany.myapp/.MainActivity" on device "Pixel_XL_API_32".
The app might not be installed, try installing it with: npx expo run:android -d Pixel_XL_API_32
Activity class {com.mycompany.myapp/com.mycompany.myapp.MainActivity} does not exist.

error Command failed with exit code 1.
...

あとがき

これで React Native Firebase との連動はひとまずできました。あとは必要なパッケージ ( Auth・Analytics など ) を追加するだけなのでより楽になるかと思います。

また、個人的には下記の二点もいつも設定しておきます。ご参考までに!
🎯 Androidのビルドメモリを増やす
🎯 Androidのパフォーマンス

コメント

タイトルとURLをコピーしました