3

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

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

问题是这样的:

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

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

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

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

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

4

1 回答 1

1

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

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

于 2017-01-23T07:08:44.847 回答