如何解决Xcode12.4 - 带有 xcframework 子项目的 iOS Umbrella xcframework 框架
我想使用 Xcode 12.4 for iOS 将一些 XCFrameworks 放入一个伞形框架或伞形 xcframework 中。我尝试了这些线程中提到的所有方法。但是,我无法让它为我的客户端应用程序中的任何 swift 类工作。
请注意,这可以与 ObjC 类无缝配合。
XCFramework with static frameworks sub dependencies
方法 1 - 创建 .framework
当我通过添加 sub 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 有关?
解决方法
一些值得尝试的事情:
-
确保设置了
BUILD_LIBRARY_FOR_DISTRIBUTION
。 -
静态链接子框架。如果您使用 CocoaPods 包含其他框架,请确保指定
use_frameworks! :linkage => :static
。 -
在使用子框架的源文件中,写入
@_implementationOnly import SomeFramework
.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。