swift - 晦涩的问题,Google AdMob SDK,XCode 8.2 + Cocoapods 集成

标签 swift cocoapods google-ima google-admob xcode8.2

我遇到了一个非常奇怪的问题,它让我忙了一个多星期,我认为这是 GoogleAdMob SDK、Xcode 8.2、cocoapods 或它们的组合的错误。

我将其发布在这里,希望工程师能够确认错误并为我们的团队指明正确的解决方向。

问题是这样的:

  1. 创建一个空的 Xcode 项目
  2. 添加/安装 GoogleAds-IMA-iOS-SDK-For-AdMob pod
  3. 提交所有内容并从本地计算机删除存储库
  4. 再次检查存储库
  5. 点击构建。项目将无法构建并出现错误 ld: framework not found GoogleMobileAds
  6. 要修复,请注释掉 GoogleAds-IMA-iOS-SDK-For-AdMob pod 并运行 pod update,然后再次取消注释并运行 pod再次更新,项目将构建。
  7. 如果你尝试在此时提交,git 将不会接受任何更改
  8. 重复第 3 步和第 4 步,您将回到第 5 步

我在这里创建了一个存储库 https://github.com/piterwilson/testAdmob可以重现错误的地方。

我发现的“修复”对我们的团队不起作用,因为我们提交代码并将其发送到 Jenkins 服务器,该服务器创建大量具有我们业务所需的不同代码签名的构建。

Jenkins 构建总是失败并显示 ld: framework not found GoogleMobileAds

额外信息:这只是从今年开始发生的。也许是因为 Xcode 8.2 (?) 但我们不能确定问题到底出在哪里。

最佳答案

我创建了一个以可靠方式解决问题的 PR:https://github.com/piterwilson/testAdmob/pull/1

存储库缺少 GoogleAdMobs 二进制文件。这是一个相当大的文件(38M),所以也许问题的提交者有一些自动忽略大文件的本地配置?二进制文件应该在此提交中:https://github.com/piterwilson/testAdmob/commit/a0834a4d2f2b82da98add1bc3c49d8c0c28ffd86 (至少当我试图重现这个问题时它出现在我面前。)

关于swift - 晦涩的问题,Google AdMob SDK,XCode 8.2 + Cocoapods 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631393/

相关文章:

ios - Swift 如何在 UIImagepickercontroller 中为编辑器设置编辑器裁剪大小

node.js - 视频 : playing a pre-roll add before each playlist item

ios - 如何更改视频预卷中的文本 "learn more"

ios - 图像不适合 ImageView

ios - 如何使用 Swift 3 DispatchQueue 高效调度数千个异步事件

ios - 将数据(标签)从 TableViewCell 传递到另一个 ViewController

ios - 支持 CocoaPod 和 Carthage

ios - XCode 构建中 react-native-config 的 PhaseScriptExecution 失败

ios - 在我的 iOS 应用程序中,架构 x86_64 的 undefined symbol

javascript - 通过 require.js 谷歌 ima3.js