【问题标题】:Xcode build with Google UMP SDK fails with 'framework not found'使用 Google UMP SDK 构建 Xcode 失败并显示“找不到框架”
【发布时间】:2020-11-04 18:21:27
【问题描述】:
【问题讨论】:
标签:
ios
xcode
cordova
admob
user-messaging-platform
【解决方案1】:
问题
问题似乎是框架/依赖项未添加到 Xcode 项目,因此它没有编译应用程序所需的代码。 AdMob 依赖于 UserMessagingPlatform 来工作,如果您的代码库中没有 Mobile Ads SDK,则缺少 UserMessagingPlatform 并且您的应用程序本质上是在请求不存在的代码。为了解决这个问题,你必须告诉 cocoapods(一个依赖管理器,想想 npm,但对于 Swift/Objective-C)找到缺失的代码并将其添加到你的项目中。
首先,如果您还没有安装 cocoapods。我使用 Homebrew 来做到这一点,因为它似乎是唯一没有头痛的方法。许多人已经拥有 Homebrew,但如果你没有,请先安装它,然后运行:
brew install cocoapods
接下来,使用终端进入您的项目目录。进入目录后,运行:
pod install --repo-update
在 Xcode 中重新打开您的项目,现在应该可以成功编译了。
逐步解决:
跳过您的环境不需要的任何步骤。
- 安装Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- 安装cocoapods:
brew install cocoapods
- 打开终端,导航到您的项目目录:
cd /path/to/your/project
- 更新依赖:
pod install --repo-update
免责声明:我不是 Swift 或 Objective-C 开发人员,我对 Apple/Xcode 的经验有限。我也不熟悉“cocoapods”和 AdMob。我刚刚下载了示例代码并解决了这个问题,直到我成功编译为止。
【讨论】:
-
另外请注意,您不一定需要 cocoapods 来安装缺少的代码,这只是最简单的方法。在Google's documentation 中有更多关于如何手动安装框架的信息。我过去曾使用过 Cordova(通过 ngx-rocket),一旦您安装了缺少的 SDK,我希望您不必再次执行此操作,只要您不删除 cordova 项目并重新添加它(不幸的是,这有时是必要的)但如果你这样做了,只需重复这些步骤。我喜欢在 README 中注明这些内容
-
-
【解决方案3】:
.xcframework 文件只能用于 CocoaPods 1.10.0 或更高版本,在您使用 1.8.4 的示例应用中。
将 CocoaPods 更新到最新版本并再次运行 pod install。