iOS:Google Analytics和AdMob出现CocoaPods问题

假设:

  • 我已经使用Google Analytics pod 'Google/Analytics Google Analytics(分析)Google Analytics(分析)configuration了CocoaPods,请遵循官方安装指南: https : //developers.google.com/analytics/devguides/collection/ios/v3/? ver = swift
  • 根据官方安装指南,我使用pod 'Google-Mobile-Ads-SDK', '~> 7.0'AdMobconfiguration了CocoaPods: https : //developers.google.com/admob/ios/quick-start#streamlined_using_cocoapods
  • 我使用此处报告的button生成了GoogleService-Info.plistconfiguration文件,并指定了Google Analytics和AdMob服务: https : //developers.google.com/analytics/devguides/collection/ios/v3/? GoogleService-Info.plist -config

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

您已经在Developer Console中启用了AdMob服务,但似乎您的Podfile缺less该行:“pod”Google / AdMob“,或者您可能需要在项目目录中运行pod update

然后该应用程序崩溃的错误:

断言失败:错误configuration谷歌服务:可选(错误域= com.google.greenhouse代码= -106“缺less预期的子类。”UserInfo = {NSLocalizedFailureReason =有些subspecs不安装pod。详细信息请查看日志,NSLocalizedDescription =预期丢失subspecs。}):file /myapp/AppDelegate.swift

Google Analytics(分析)文档在AppDelegate.swift文件中添加了此代码的断言行,

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

我试图replace

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

该应用程序不会崩溃了,但我得到的警告:

您目前正在使用SDK的7.6.0版本。 请考虑将您的SDK更新到最新的SDK版本,以获取最新function和错误修复

这是我的完整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 

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

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

在这里输入图像说明

如果你select你想使用其中的一些,那么你需要在你的Podfile中指定它们。 例如。

 pod 'Google/CloudMessaging' 

Google SDK的完整列表可以在这里find 。

另一种方法是指定您要使用Firebase。 只要模块化您的Podfile:

 pod 'Firebase/Core' 

您是否尝试编辑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 )。

我遇到过同样的问题

更改

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

 pod 'Google/AdMob' 

唯一的问题是pod“Google / AdMob”是后面的一个版本(7.6)

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

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