Expo SDK 47集成react-native-google-mobile-ads后EAS构建启动崩溃求助
解决Expo SDK 47集成react-native-google-mobile-ads后iOS启动崩溃问题
1. 修正App ID格式
首先确认ios_app_id和android_app_id使用的是应用级ID,正确格式为ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy,而非你当前使用的ca-app-pub-xxx/xxx(这是广告单元ID格式)。混淆两类ID会直接导致SDK初始化失败,触发启动崩溃。
2. 确保EAS构建正确加载配置
- 检查
eas.json的development配置,确认开启预构建流程:{ "build": { "development": { "developmentClient": true, "distribution": "internal", "ios": { "resourceClass": "m1-medium" }, "prebuildCommand": "npx expo prebuild --clean" } } } - 手动执行
npx expo prebuild --clean生成原生文件,进入iOS目录查看GoogleService-Info.plist,确认其中GADApplicationIdentifier字段与你配置的ios_app_id完全一致。
3. 排查原生代码冲突
- 检查iOS原生项目的
AppDelegate.m/AppDelegate.swift,确保没有手动添加Google Mobile Ads SDK的初始化代码。react-native-google-mobile-ads会自动完成初始化,重复代码会引发冲突崩溃。 - 确认项目中没有其他广告类库与Google Mobile Ads SDK存在版本兼容问题。
4. 获取精准崩溃日志
如果以上步骤无效,必须拿到具体崩溃信息定位问题:
- 把iPhone连接到Mac,打开Xcode,选择
Window > Devices and Simulators,找到对应设备后点击View Device Logs,筛选你的应用崩溃记录,查看Exception Type和栈跟踪信息,这会直接指向崩溃根源。 - 可以在
eas.json的development配置中开启调试符号,让日志更详细:"ios": { "debugSymbols": true }
5. 调整库版本适配
部分react-native-google-mobile-ads版本与Expo SDK 47存在兼容性问题,尝试降级到11.8.0版本:
npm install react-native-google-mobile-ads@11.8.0
之后重新执行预构建和EAS构建。
内容的提问来源于stack exchange,提问作者teewuane
相关产品推荐
相关产品推荐

