1

我们使用 Cordova 和 AdMob 制作中间件来展示广告。Cordova 为我们生成了一个 Xcode 项目。但是,生成的 Xcode 项目现在无法构建并出现错误ld: framework not found UserMessagingPlatform.xcframework

这似乎是由Google UMP SDK更新到版本 1.3.0 引起的,其中指出“将 SDK 从 .framework 更新为 .xcframework”。我联系了 AdMob 支持,他们声称构建对他们有效,但没有提供任何有用的帮助。

我不知道为什么我们的构建现在失败了,我不知道该怎么办。这是一个示例 Xcode 项目:https ://www.dropbox.com/s/y1ly2c3yi45rop6/TestBuild.ios.project.zip?dl=0

任何人都可以确定这个 Xcode 项目出了什么问题导致它无法构建,并确定一个解决方法吗?

4

3 回答 3

1

问题

问题似乎是没有将框架/依赖项添加到 Xcode 项目中,因此它没有编译应用程序所需的代码。AdMob 依赖于这个UserMessagingPlatform东西来工作,并且如果您的代码库中没有移动广告 SDKUserMessagingPlatform ,它就会丢失,并且您的应用程序本质上是在请求不存在的代码。为了解决这个问题,你必须告诉 cocoapods(一个依赖管理器,想想 npm,但对于 Swift/Objective-C)找到缺失的代码并将其添加到你的项目中。

首先,如果您还没有安装 cocoapods。我使用 Homebrew 来做到这一点,因为它似乎是唯一没有头痛的方法。许多人已经拥有 Homebrew,但如果你没有,请先安装它,然后运行: brew install cocoapods

接下来,使用终端进入您的项目目录。进入目录后,运行: pod install --repo-update

在 Xcode 中重新打开您的项目,现在应该可以成功编译。

逐步解决:

跳过您的环境不需要的任何步骤。

  1. 安装自制软件/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  2. 安装cocoapodsbrew install cocoapods
  3. 打开终端,导航到您的项目目录:cd /path/to/your/project
  4. 更新依赖:pod install --repo-update

免责声明:我不是 Swift 或 Objective-C 开发人员,我对 Apple/Xcode 的经验有限。我也不熟悉“cocoapods”和 AdMob。我刚刚下载了示例代码并解决了这个问题,直到我成功编译为止。

于 2020-11-16T21:31:35.940 回答
0

你在 XCode 项目中使用 Cocoapods 吗?

这个stackoverflow答案建议更新cocoapods

尝试更新 cocoapods:

sudo gem install cocoapods

Cocoapods 更新日志包含 XCFrameworks 的修复

于 2020-11-10T14:15:52.070 回答
0

.xcframework文件只能在 CocoaPods 1.10.0 或更高版本上使用,在您使用 1.8.4 的示例应用程序中。

将 CocoaPods 更新到最新版本并pod install再次运行。

于 2020-11-19T15:23:10.070 回答