【问题标题】:Swift Project: "Missing Required Modules" when import a modular frameworkSwift 项目:导入模块化框架时“缺少必需的模块”
【发布时间】:2017-06-24 10:10:15
【问题描述】:

设置

  1. 我创建了一个 swift 框架,其中包括 C 库 (CommonCrypto) 和一个 Objective C 文件。

  2. swift 项目中没有桥头。所以我创建了一个module.modulemap 来将 CommonCrypto 和 Objective-C 文件导入到我的 swift 框架中。

    module.modulemap 内容:

这里是module.modulemap示例链接:Importing CommonCrypto in a swift framework

  1. 在项目设置中,添加modules.modulusmap路径到swift compile

    所以,在我的 swift 框架中,一切正常。 我可以像这样使用模数

问题展示

  1. 归档模块化框架并导出为构建产品。

  2. 在我的 swift 示例项目中,将模块化框架添加到 Embedded Binaries

  3. 当我在框架内使用某些东西时,这一行出现错误

我已经尝试了很多解决方案,但仍然无法正常工作。

类似的问题:

  1. Swift app: “Missing required module” when importing framework that imports static library

  2. Adding RealmSwift as a subproject: Missing required modules: 'Realm.Private', 'Realm'

有人对此有好的解决方案吗? 谢谢!!

【问题讨论】:

  • 您打算将此框架分发给其他人吗?或者将它保存在与您想要使用它的项目相同的 Xcode 工作区中是否合适?
  • 这是一个商业框架。我会将其分发给其他人和许多其他不相关的项目。如果我在自己的开发环境中的项目中使用该框架,则可以正常工作。但是,对于某人的开发环境中的项目显示了问题。
  • 看看这是否有帮助:stackoverflow.com/questions/37108539/…
  • 谢谢伙计。最后,我得到了解决方案。它有点连线,但工作正常。我稍后会发布。
  • @HungCLo 我也有同样的问题。请帮帮我好吗?

标签: ios swift xcode frameworks module-map


【解决方案1】:

解决方案

iOS框架以文件夹形式存在,创建module.modulemap查找库或头文件。

  1. 设置module.modulemap路径

    在项目/目标/构建设置/Swift 编译 - 搜索路径/导入路径 = “${SRCROOT}”

  2. 在下方添加module.modulemap

备注

如果框架存档在同一个开发环境中,则不必将 module.modulemap 添加到示例项目中。

【讨论】:

  • 谢谢@HungClo,所以如果我明白我必须在使用我的框架的项目中添加模块映射? ,我需要在其他环境中运行它
  • 没错,模块图可以帮助你找到你的框架。其他环境也一样。
  • 谢谢,但我需要将框架添加到没有模块映射的环境之外的项目中,但目前在 SWIFT 中似乎不可能
  • 可以在framework文件夹中查看framework是否共享头文件。假设您可以访问头文件,您也可以尝试解决方案。让我知道它是否有效!~
  • 我尝试重现这个项目但没有成功。 github.com/danieleggert/mixed-swift-objc-framework
猜你喜欢
  • 2015-10-23
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
相关资源
最近更新 更多