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

如何在Expo托管应用中使用react-native-google-mobile-ads及iOS开发相关疑问

Expo托管应用集成react-native-google-mobile-ads指南

1. 是否需要eject Expo托管应用?

不需要。目前Expo支持通过Expo Config Plugins或**预构建(Prebuild)**功能集成react-native-google-mobile-ads,无需eject到裸工作流(bare workflow)。eject是旧版方案,会丢失Expo托管的便利性,官方已不推荐。

2. 若执意要eject(不推荐),Windows电脑操作步骤

Windows环境下仅能完成eject流程的基础部分,iOS原生项目仍需Mac+Xcode处理:

  • 确保本地装有Node.js、Git,且Expo CLI为最新版:npm install -g expo-cli
  • 进入项目根目录,执行:expo eject
  • 按终端提示选择"bare workflow",等待依赖安装和原生项目文件生成
  • 生成的iOS文件夹需拷贝到Mac电脑,用Xcode打开配置,Windows无法直接编译iOS项目

3. Expo托管应用集成react-native-google-mobile-ads的正确流程

前置要求

  • Expo SDK版本≥44(建议用最新稳定版)
  • 已安装expo-cli或使用npx expo命令

具体操作

  1. 安装依赖
    在项目根目录执行:
npx expo install react-native-google-mobile-ads
  1. 配置Expo项目文件(app.json/app.config.js)
    添加Google AdMob的应用ID配置:
{
  "expo": {
    "plugins": [
      [
        "react-native-google-mobile-ads",
        {
          "iosAppId": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX",
          "androidAppId": "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"
        }
      ]
    ]
  }
}

替换iosAppId为你在Google AdMob后台创建的iOS应用专属ID。

  1. 预构建本地原生项目(可选,用于本地调试)
    若需在Mac的Xcode中调试iOS项目,执行预构建命令生成原生文件:
npx expo prebuild --platform ios

生成后在Mac上打开ios/[你的项目名].xcworkspace即可进行后续配置。

  1. 测试广告加载
    在组件中引入广告组件(以横幅广告为例):
import { BannerAd, BannerAdSize, TestIds } from 'react-native-google-mobile-ads';

export default function App() {
  return (
    <BannerAd
      unitId={TestIds.BANNER}
      size={BannerAdSize.BANNER}
      requestOptions={{
        requestNonPersonalizedAdsOnly: true,
      }}
    />
  );
}

测试阶段使用Google提供的TestIds,上线前替换为真实广告单元ID。

  1. 构建发布
    使用Expo官方构建服务生成iOS安装包:
npx expo build:ios

或推荐使用更高效的EAS Build:

eas build --platform ios

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:34:57