You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo托管项目集成react-native-google-mobile-ads iOS构建失败求助

解决Expo托管工作流iOS构建react-native-google-mobile-ads配置报错问题

问题根源

报错本质是EAS构建缓存残留了旧配置信息,导致fastlane阶段无法读取到app.json中已正确设置的ios_app_id字段。新项目能正常构建,正是因为没有历史缓存干扰。

修复步骤

1. 清除本地Expo缓存

在项目本地目录执行以下命令,清理本地缓存:

expo cache:clear

或者重启项目时强制清除:

expo r -c

2. 强制EAS构建跳过远程缓存

提交代码后,执行构建命令时添加--clear-cache参数,让EAS重新拉取依赖、生成Pod配置:

eas build --platform ios --clear-cache

3. 验证配置层级(可选)

确认react-native-google-mobile-ads配置直接位于expo字段下,避免嵌套错误:

{
  "expo": {
    "name": "YourApp",
    "slug": "your-app",
    // 其他项目配置...
    "react-native-google-mobile-ads": {
      "android_app_id": "ca-app-pub-xxx",
      "ios_app_id": "ca-app-pub-xxx",
      "user_tracking_usage_description": "This identifier will be used to deliver personalized ads to you."
    }
  }
}

如果使用app.config.js而非app.json,需确保该文件中同步了相同的广告配置。

4. 构建钩子清理Pods(极端情况)

若上述步骤无效,可通过EAS构建钩子手动清理iOS Pods:

  • 在项目根目录创建eas-build-pre-install.sh文件:
    #!/bin/bash
    if [ "$PLATFORM" = "ios" ]; then
      cd ios
      pod deintegrate
      pod clean
      rm -rf Podfile.lock
    fi
    
  • 在eas.json的对应构建配置中添加钩子:
    {
      "build": {
        "production": {
          "ios": {
            "preInstallCommand": "./eas-build-pre-install.sh"
          }
        }
      }
    }
    

内容的提问来源于stack exchange,提问作者Arham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:27:25