swift - XC框架 "Cannot load underlying module"

标签 swift xcode frameworks cocoapods llvm

我构建了一个 SDK 作为 XCFramework,它与使用它的应用程序共享依赖项。当我构建时,我得到:

...SDK.swiftmodule/arm64-apple-ios.swiftinterface:20:8:无法加载底层模块...

这发生在“编译 Swift 源代码”操作中,中断位于 swiftinterface 文件中的 import MySharedDepedency 语句中

如上所述,项目中的 SDK 作为 xcframework bundle 。 MySharedDependency 是通过 cocoapods 实现的。 use_modular_headersPodfile 中设置,它的 modulemap 包含在链接器标志中(由 cocoapods 提供)。

如果我在 Podfile 中使用 use_frameworks! 标志,它确实有效,但仅限于动态链接,出于内部政治原因,我需要它与静态链接一起使用。如果我添加 :linkage => :static 参数,我会得到与没有 use_frameworks! 调用时相同的错误

我尝试更改构建阶段中链接框架的顺序(以便在 SDK 框架之前链接 pod)。我尝试在任何可以找到 MyDependency.modulemap 的地方添加递归 header /框架/模块搜索路径...

是的,我已经清理了缓存,分解,干净安装,删除了派生数据,重新启动了 xcode,我的机器,...

啊啊!感谢您的帮助...

最佳答案

我有同样的场景和同样的问题

我在 xcframework 代码的每个文件中使用 @_implementationOnly 解决了这个问题,例如:

@_implementationOnly import Alamofire

之后,只需重建 XCFramework、清理并构建应用程序的项目即可。

它就像一个没有 use_framework 的魅力!

关于swift - XC框架 "Cannot load underlying module",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65997605/

相关文章:

ios - 如何将 View Controller 中的数据传递到另一个 View Controller 中的 Collection View ?

ios - 从子节点 firebase 实时数据库 swift 4 中检索最后一个子节点

ios - 如何调整按钮的大小? swift

iphone - 如何让自定义 UIControl 参与 segue 作为推送操作?

iOS 3rd Party Framework 确保没有网络连接

ios - 收集在两个精确日期之间拍摄的 iPhone 库照片

php - 带有 Composer 的多个应用程序

xcode - 存储 boolean 值以供 Parse 登录访问

swift - 在 Swift 中获取 float 的原始字节

iOS TestFlight 构建与 CocoaPods 崩溃