Xcode12.4 - iOS Umbrella xcframework 框架与 xcframework 子项目

Xcode12.4 - iOS Umbrella xcframework framework with xcframework sub projects

我想使用 Xcode 12.4 for iOS 将一些 XCFrameworks 放入伞式框架或伞式 xcframework 中。我尝试了这些线程中提到的所有方法。但是,我无法让它在我的客户端应用程序中用于任何 swift 类。

请注意,这可以与 ObjC 无缝协作 类。

Umbrella framework

XCFramework with static frameworks sub dependencies

方法 1 - 创建 .framework

当我通过将子 xcframeworks 添加到复制框架构建阶段来构建 .framework 时,我看到 xcframework 子项目被提取到静态库“.a”文件中。 我在我的应用程序中导入这个 .framework,它是 ObjC + Swift,我在所有导入伞框架 swift 类 的所有子项目中收到“没有这样的模块”错误14=]

方法 2 - 创建 .xcframework

当我创建包含所有 xcframework 子项目的 .xcframework 时,在客户端应用程序中使用伞形框架时 x86_64-apple-ios-simulator.swiftinterface 中出现 No such module 'XXXX' 错误

注意我正在链接并嵌入 umbrella / xcframework 到客户端应用程序中。

另一个想法

此外,当我使用 Xcode 12.4 创建示例应用程序并导入相同的伞形框架/.xcframework 时,一切正常。这与在旧版本 XCode 中创建的客户端应用程序 .xcodeproj 有关吗?

一些尝试:

  1. 确保已设置 BUILD_LIBRARY_FOR_DISTRIBUTION

  2. Link 静态子框架。如果您包括其他使用 CocoaPods 的框架,请确保指定 use_frameworks! :linkage => :static.

  3. 在使用子框架的源文件中,写入 @_implementationOnly import SomeFramework .