【问题标题】:How to import FMDB to a swift framework如何将 FMDB 导入 swift 框架
【发布时间】:2015-08-14 12:51:07
【问题描述】:

我想在 swift 框架中使用 FMDB。我按照本教程 http://programmingthomas.com/blog/2014/7/23/sqlite-in-swift-frameworks 进行操作,但出现此错误。

打开模块“Swift”的导入文件:不是目录

我完全按照教程中提到的步骤完成了所有步骤。

我也尝试导入文件(不是创建单独的框架),但它给了我一个错误,说无法导入非模块化头文件。

【问题讨论】:

  • 使用 Bridging-Header 解决您的问题。
  • 您还可以使用objective -C FMDB 类并将其导入您的问题也可以解决的桥接头。
  • 框架不支持桥接头

标签: ios objective-c swift sqlite frameworks


【解决方案1】:

仅供参考,您现在可以使用 master 分支为 FMDB 构建框架,并且不再需要使用我在下面讨论的 swiftFramework 分支。 (创建该分支是因为 Xcode 6 和 7 中的一个问题导致无法创建引用非模块化头文件的框架。)

例如,请参阅问题 #540,了解如何使用 Carthage 构建框架的示例。请注意,您不必使用 Carthage,但它表明不再需要 swiftFramework 分支。

出于历史目的,我将保留下面的原始答案,但它似乎不再适用。我们现在可以在 Xcode 8 中毫无意外地构建 FMDB 框架。


创建了一个 FMDB 分支(请参阅swiftFramework branch),以允许您为 FMDB 创建一个单独的框架。有关如何使用它的说明,请参阅该分支自述文件末尾的 Using FMDB in a framework 讨论。

注意,这是一个单独的分支,尚未集成到 master 分支中(可能直到 FMDB 3.0 才集成,因为它包含一些微不足道但不向后兼容的更改)。因此,如果您在框架中不需要它,我建议直接将源代码添加到您的项目中,而不是单独的框架中。但是如果你需要一个框架,上面的分支可能会帮助你。

【讨论】:

  • 我按照说明进行操作,但是当我尝试构建时,我得到了invalid argument '-compatibility_version 1' only allowed with '-dynamiclib'。有什么建议吗?
  • @RyanH。 - 唔。我只是尝试按照那里的说明进行操作,并且框架的创建工作正常。显然,第 8 步的代码示例已经过时(这是旧的 Swift 1.2 代码),但概述了如何创建框架的第 1-7 步对我来说效果很好。我怀疑您的项目中还有其他内容。在一个新的空白项目中尝试一下,看看是否可以重现该问题。假设您可以,也许您可​​以转到 Xcode 的“报告导航器”,并确定您在流程的哪个步骤看到该警告。
猜你喜欢
  • 2018-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 2020-07-14
相关资源
最近更新 更多