Closed3
EAS(Expo Application Services)を使った本番デプロイ

APK ビルドなどは eas build を使う
eas build --platform android --profile production
EAS はクラウド上でビルドを行い、APK(Android)や IPA(iOS)を生成。ただし、この段階で環境変数の管理が甘いと、Firebase の API キーや Google ログインのクライアントIDなどが undefined になってアプリがクラッシュする。

Secretsの扱いと .env 管理
Expo(というか Metro バンドラー)では、環境変数を扱うには .env に EXPO_PUBLIC_ プレフィックスをつける必要がある。
EXPO_PUBLIC_FIREBASE_API_KEY=abc123
EXPO_PUBLIC_ANDROID_CLIENT_ID=xxxxx.apps.googleusercontent.com
これらの変数を app.config.js の extra にマッピングすることで、アプリ内で Constants.expoConfig.extra 経由で参照できる。
import 'dotenv/config';
export default {
extra: {
FIREBASE_API_KEY: process.env.EXPO_PUBLIC_FIREBASE_API_KEY,
ANDROID_CLIENT_ID: process.env.EXPO_PUBLIC_ANDROID_CLIENT_ID
}
}
この設定を入れて eas build を再実行。Firebase 側でも、OAuth クライアントに正しい SHA-1 を登録し、Googleログイン用の Client ID を発行して .env に登録。

INSTALL_FAILED_UPDATE_INCOMPATIBLE エラーでアプリがエミュレータにインストールできない時は、以下のようにアンインストールして再実行。
adb uninstall com.example.app
このスクラップは4ヶ月前にクローズされました