【问题标题】:iOS: CocoaPods issue with Google Analytics and AdMobiOS:Google Analytics 和 AdMob 的 CocoaPods 问题
【发布时间】:2016-06-30 06:37:36
【问题描述】:

假设:

当我启动应用程序时,我收到警告:

您已在开发者控制台中启用了 AdMob 服务,但它 看起来好像您的 Podfile 缺少以下行:'pod “Google/AdMob”或者您可能需要在您的项目中运行 pod update 目录。

然后应用程序因错误而崩溃:

断言失败:配置 Google 服务时出错:可选(错误 Domain=com.google.greenhouse Code=-106 "缺少预期的子规范。" UserInfo={NSLocalizedFailureReason=某些子规范不是 pod 安装。有关详细信息,请参阅日志。,NSLocalizedDescription=Missing 预期的子规范。}):文件 /myapp/AppDelegate.swift

这是由断言行抛出的,谷歌分析文档说要添加到AppDelegate.swift文件中的这段代码:

// Configure tracker from GoogleService-Info.plist.
var configureError:NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services: \(configureError)")



我尝试替换

pod 'Google-Mobile-Ads-SDK', '~> 7.0'pod 'Google/AdMob'

应用程序不再崩溃,但我收到警告:

您当前使用的 SDK 版本为 7.6.0。请考虑 将您的 SDK 更新到最新的 SDK 版本以获取最新版本 功能和错误修复


这是我的完整 Podfile:

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'
use_frameworks!  # needed when using Swift


target 'myProject' do

    pod 'Google/Analytics'
    pod 'GoogleIDFASupport'
    pod 'Google-Mobile-Ads-SDK', '~> 7.0'

    pod 'Fabric'
    pod 'Crashlytics'

    pod 'SQLite.swift', '~> 0.9.2'    

end

【问题讨论】:

  • 如果您自己也导入移动广告 SDK 也会发生这种情况?
  • @Chauduyphanvu,这是CocoaPod的问题,所以和CocoaPod版本有关

标签: ios swift google-analytics admob cocoapods


【解决方案1】:

使用 GoogleService-Info.plist 文件易于维护。

只需启用/禁用您想要的服务:

如果您选择要使用其中的一些,则需要在 Podfile 中指定它们。例如。

pod 'Google/CloudMessaging'

Google SDK 的完整列表可在here 获得。

另一种方法是指定您要使用 Firebase。只需修改您的 Podfile:

pod 'Firebase/Core'

【讨论】:

    【解决方案2】:

    您是否尝试过编辑 GoogleService-Info.plist 并将“IS_ADS_ENABLED”更改为“NO”?如果您使用的是“Google-Mobile-Ads-SDK”而不是“Google/AdMob”,那么您的广告应该仍然有效。 “GoogleService-Info.plist”不是 AdMob 的必需项 (https://developers.google.com/admob/ios/quick-start#prerequisites)。

    【讨论】:

      【解决方案3】:

      我有同样的问题

      改变

      pod 'Google-Mobile-Ads-SDK', '~> 7.0'
      

      pod 'Google/AdMob'
      

      唯一的问题是 pod 'Google/AdMob' 落后一个版本 (7.6)

      【讨论】:

      • Google-Mobile-Ads-SDKGoogle/AdMob 有什么区别? Google AdMob 文档说要使用第一个。哪里提到了Google/AdMob
      • 不确定,如果您使用分析,它会说使用“pod 'Google/AdMob'”和“pod 'Google/Analytics'”,但如果我也使用 Google-Mobile-Ads-SDK cocoapod 会抱怨“目标具有名称冲突的框架:GoogleMobileAds”。好像是一样的
      • 我实际上也使用 Analytics。你能把它说使用“​​pod 'Google/AdMob'”和“pod 'Google/Analytics'”的链接发给我吗?谢谢
      【解决方案4】:

      我决定使用 Google/AdMob 的 pod 行,由 GoogleService-Info.plist 配置文件支持,因为这似乎是管理多个 Google 服务的最一致的方式。

      唯一的问题是它目前的更新周期较慢:那里的 AdMob pod 仍然是 7.6 版本,而不是最新的 7.7。不过我还是更喜欢这种方式。无论如何,它应该会经常更新。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-20
        • 2017-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 2015-06-22
        • 1970-01-01
        相关资源
        最近更新 更多