安装react-native-google-mobile-ads后EAS构建失败求助(Expo SDK48)
Expo SDK 48 + react-native-google-mobile-ads EAS构建失败解决方案
iOS构建失败解决(提示缺失ios_app_id)
- 检查app.json配置结构:确保
ios_app_id和android_app_id正确配置在react-native-google-mobile-ads插件节点内,而非Expo根节点。正确示例:{ "expo": { "plugins": [ [ "react-native-google-mobile-ads", { "ios_app_id": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX", "android_app_id": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX" } ] ] } } - 验证ID格式:确认ID是AdMob后台提供的标准格式(包含
~分隔符)。 - 清除缓存并重新预构建:执行
npx expo prebuild --clean后重新触发EAS构建。
Android构建失败解决(googleMobileAdsJson缺失 + compileSdkVersion未指定)
解决googleMobileAdsJson问题
- 测试阶段可跳过检查:在插件配置中添加
"skip_google_mobile_ads_json": true,示例:{ "expo": { "plugins": [ [ "react-native-google-mobile-ads", { "android_app_id": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX", "skip_google_mobile_ads_json": true } ] ] } } - 正式环境配置:将Google Cloud下载的
google-services.json放在项目根目录,确保已提交至代码仓库(未被.gitignore忽略)。
解决compileSdkVersion未指定问题
- 在
app.json的Android配置中指定版本(Expo SDK 48对应compileSdkVersion 33):{ "expo": { "android": { "compileSdkVersion": 33, "targetSdkVersion": 33 } } } - 或在
android/build.gradle的buildscript.ext中统一配置:buildscript { ext { compileSdkVersion = 33 targetSdkVersion = 33 minSdkVersion = 21 } }
通用排查步骤
- 确保依赖版本兼容:安装适配Expo SDK 48的
react-native-google-mobile-ads版本(推荐^11.8.0),执行npx expo install react-native-google-mobile-ads完成安装。 - 检查eas.json:确认构建配置未覆盖AdMob相关设置。
内容的提问来源于stack exchange,提问作者Johndev247
相关产品推荐
相关产品推荐

