在具有项目框架依赖项的应用程序中嵌入 XCFramework

Mer*_*ord 6 xcode catalyst ios swift xcframework

我有一个 Xcode 工作区,其中包含一个带有 iOS 应用程序目标的项目和另一个带有 Framework 目标的项目。框架目标依赖于另一个框架,该框架以以下形式集成xcframework

  • 我的应用程序
  • 我的框架
  • 其他框架

使用常规OtherFramework.framework将需要将其链接到MyFramework然后嵌入其中,MyApp即使MyApp不需要框架本身。但是,当与 集成时xcframework,此项目将无法构建并出现No such module 'OtherFramework'错误。

项目设置:

我的框架项目

我的应用项目

OtherFramework.xcframeworkMyApp目标中删除修复了构建问题,但随后会导致library not loaded错误,因为应用程序中不存在框架。

演示项目在这里:https : //github.com/msaps/XCFramework-Link-Issue

您打算如何xcframework在应用程序中链接 an并在依赖框架中链接?

为什么?

pyckamil刚刚发布了这篇文章,详细解释了这个问题:everything wrong with XCFrameworks

事实证明,XcodeProcessXCFrameworkLibrary.framework.xcframework活动构建架构中提取正确信息的步骤进行了优化。这只会运行一次,这会导致尝试链接同一框架的其他目标出现问题。

更新

此问题已在 Xcode 12.0 中解决

Rom*_*ian 0

我也有这样的问题。首先,确保 MyFramework.framework 文件与 MyApp 位于同一目录中。

其次,在构建MyFramework.framework时,请确保OtherFramework.xcframework也在MyFramework的项目目录中。

还有一件事,检查目标 SDK 版本。他们应该在同一水平线上的某个地方。