開発環境
- 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"
項目があり、修正するだけだったが
expo@49.0.13 では pakage="com.myapp"
項目がない
手動で、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
だけに制限し、./android/app/build/
以下のファイルを除外することで得られた結果です。(⬆︎)
※ 対象ファイル:com.myapp
➡︎ your.firebase.console.package.name
android/app/build.gradle
:namespace:"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のパフォーマンス
コメント