安装 React-native-google-mobile-ads 时 EAS 构建失败

问题描述 投票:0回答:3

我正在尝试使用react-native-google-mobile-ads软件包,但如果安装了该软件包,我的EAS构建在Ios和Android上总是失败。但如果我删除包,构建就不会出现问题。我已按照说明在 app.josn 中添加了 Ios 和 Android 应用程序 ID,但我仍然无法使用 React 原生谷歌移动广告。请有人帮助我找到可行的解决方案。 世博 SDK 48

IOS EAS 构建错误:
❌ 错误:在 app.json 的 React-native-google-mobile-ads 键中找不到 ios_app_id 键。如果没有它,应用程序将会崩溃。

Run script build phase '[CP-User] Generate app.config for prebuilt Constants.manifest' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXConstants' from project 'Pods')

▸ ** 存档失败 ** ▸ 以下构建命令失败: ▸ PhaseScriptExecution [CP-User]\ [RNGoogleMobileAds]\ Configuration /Users/expo/Library/Developer/Xcode/DerivedData/Trupal-bncukuqtvgpwvbckuuqzbimfabiw/Build/Intermediates.noindex/ArchiveIntermediates/Trupal/IntermediateBuildFilesPath/Trupal.build/Debug-iphoneos/ Trupal.build/Script-2075EEC1F9F6BBAA447280FF.sh(在项目“Trupal”的目标“Trupal”中) ▸(1次失败)

Android EAS 构建错误: [标准错误] 失败:构建已完成,但有 2 次失败。 [标准错误] 1:任务因异常而失败。 [标准错误]

[标准错误]

  • 地点: [标准错误] 构建文件“/home/expo/workingdir/build/node_modules/react-native-google-mobile-ads/android/build.gradle”行:75 [标准错误]
  • 出了什么问题: [标准错误] 评估项目“:react-native-google-mobile-ads”时出现问题。 [标准错误]

无法在额外属性扩展上获取属性“googleMobileAdsJson”,因为它不存在 [标准错误]

  • 尝试: [标准错误]

使用 --stacktrace 选项运行以获取堆栈跟踪。 [标准错误] 使用 --info 或 --debug 选项运行以获得更多日志输出。 [标准错误] 使用 --scan 运行以获得完整的见解。 [标准错误] =================================================== =========================== [标准错误] 2:任务因异常而失败。 [标准错误]


[标准错误]

  • 出了什么问题: [标准错误] 配置项目“:react-native-google-mobile-ads”时出现问题。 [标准错误]

未指定compileSdkVersion。请将其添加到build.gradle [标准错误]

  • 尝试: [标准错误]

使用 --stacktrace 选项运行以获取堆栈跟踪。 [标准错误] 使用 --info 或 --debug 选项运行以获得更多日志输出。

构建成功

react-native expo ads eas
3个回答
0
投票

上面的错误显示“❌错误:在app.json的react-native-google-mobile-ads键中找不到ios_app_id键。没有它,应用程序将崩溃。”您确定已经遵循了库的所有要求配置吗?请显示 app.json 配置? 您还添加了 googleServicesFile 吗?

admob 键

// <project-root>/app.json
{
  "expo": {
    // ...
  },
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx",
    "ios_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx"
  }
}

googleServices文件:

{
  "expo": {
    ....
    ...
    "android": {
      // The package you used with your Firebase app
      "package": "example.expo.googlesignin",
      // Optional path to the Android file generated by Firebase
      "googleServicesFile": "./google-services.json"
    }
  }
}

0
投票

使用 React Native 并尝试安装 google ad mob,问题是将这一行添加到 app.json

 "expo-build-properties",
    {
      "ios": {
        "useFrameworks": "static"
      }
    }

如果您使用 expo 在 iOS 中构建应用程序,则不需要此配置,只会导致各种奇怪的错误


0
投票

在这里查看我的答案:https://stackoverflow.com/a/77986709/5628579

您需要将 appid 添加到

ios/config
中的 googleMobileAdsAppId 字段和
android/config
 中的 
app.json

© www.soinside.com 2019 - 2024. All rights reserved.