Swift 框架伞头 - 在框架模块中包含非模块化头

Posted

技术标签:

【中文标题】Swift 框架伞头 - 在框架模块中包含非模块化头【英文标题】:Swift framework umbrella header - Include of non-modular header inside framework module 【发布时间】:2016-05-25 08:43:16 【问题描述】:

我正在尝试将 openssl 框架包含到我正在构建的 swift 框架中(我使用 cocoapods - pod lib create 创建了它)。当我转到默认的伞形标题并导入一些标题形式的 openssl 框架时,我得到 在框架模块中包含非模块化标题。 我尝试了一切来解决这个问题(从***检查问题),包括允许非模块化包含的解决方案。 我通过在桥接头中导入它在普通的 swift 项目中使用 openssl 框架,我没有这样的问题。

【问题讨论】:

【参考方案1】:

经过很长时间,我终于找到了适合我的解决方案。

Include of non-modular header inside framework module 意味着你必须使你想要包含模块化的框架。这可以通过创建自定义模块映射来完成,您可以在其中为所需框架定义新模块。 您可以找到here 如何创建自定义模块图。

需要注意的重要一点是,我只使用 动态框架 来管理它。其他重要的事情是您必须在模块映射中使用 绝对路径(例如 header "/Users/User1/Documents/Project/TestProject/Sample.framework/Headers/sample.h"

【讨论】:

以上是关于Swift 框架伞头 - 在框架模块中包含非模块化头的主要内容,如果未能解决你的问题,请参考以下文章

具有依赖项的 CocoaPods 框架 - 在框架模块中包含非模块化标头

在框架模块中包含非模块化标头

在框架模块错误中包含非模块化标头

XCode6:收到错误“在框架模块中包含非模块化标头”

编译 pod 时“在框架模块中包含非模块化标头”

Flutter:在框架模块“firebase_core.FLTFirebasePlugin”中包含非模块化标头