2

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

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

伞架

具有静态框架子依赖项的 XCFramework

方法 1 - 创建 .framework

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

方法 2 - 创建 .xcframework

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

请注意,我在客户端应用程序中链接和嵌入了雨伞/xcframework。

另一个想法

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

4

1 回答 1

3

一些事情要尝试:

  1. 确保已BUILD_LIBRARY_FOR_DISTRIBUTION设置。

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

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

于 2021-05-18T11:42:28.937 回答