Google AdMob 7 与 cocoapods 的集成

Google AdMob 7 integration with cocoapods

我在这上面花了好几个小时,但仍然没有运气。

我有一个库(它是一个 pod),它使用 Google AdMob 7 作为依赖项,假设它被命名为 MyLib

现在,当我想将 pod 'MyLib' 添加到项目 A 时,它会将其与其依赖项一起安装,其中包括 Google AdMob 7。

问题是:当我测试包含其源文件的库项目时,它工作得很好但是当我编译项目 A 时,它没有编译并且在导入行上给我一个编译器错误

@import GoogleMobileAds;

在 MyLib 源文件中。

为了更简单

项目 -> 包含我编写的一个 pod,即 MyLib -> 使用 AdMob 7 作为 pod

知道为什么会这样吗?

编辑:

如果有人感兴趣,Google 地图在将其转换为框架后现在也会发生同样的情况

如果有人对此感兴趣或遇到过这个问题,我现在知道为什么我的端点应用程序无法注意到我自己的 pod 中存在 Google Ad Mob pod。

我应该在我的 pod 规范中使用 spec.ios.vendored_frameworks 因为现在 Google AdMob SDK 和 Maps SDK for iOS 在 cocoapods 中作为框架提供,所以我只是将它添加到我的 pod我写的库规范:

s.ios.vendored_frameworks = 'Pods/Google-Maps-iOS-SDK/GoogleMaps.framework', 'Pods/Google-Mobile-Ads-SDK/GoogleMobileAdsSdkiOS-7.0.0/GoogleMobileAds.framework'

Cocoa 中有两个重复的 Google 广告 Pods Pods:

GoogleMobileAds 20MB,仅包含框架

Google-Mobile-Ads-SDK 40MB 包含框架、示例和文档。

有人应该更新 cocoa pods 描述以明确这一点,而不是为两者 pods 使用完全相同的 Google Ad SDK 描述,这确实令人困惑.

使用包含框架的第一个 pod 应该可以解决您的问题并像这样导入:

#import <GoogleMobileAds/GoogleMobileAds.h>