我正在构建一个混合语言框架。我主要有 Swift 文件和一些 Objective-C 文件。
其中一个Objective-C文件是使用CommonCrypto的加密类。
似乎由于某种原因我无法导入它,即使我可以在 Objective-C 框架中导入它。
有人可以向我解释为什么会这样吗?
我发现的所有其他解决方案都谈到了当我需要在 Swift 框架的 Objective-C 中使用 CommonCrypto 时,如何在 Swift 中使用 CommonCrypto。
附言:
-
我尝试在 umbrella 头文件中添加导入,如下所示:
#import <CommonCrypto/CommonCrypto.h>
错误:Include of non-modular header inside framework module 'name of header'
-
这个答案没有解决问题:答案
我自己也遇到过这个问题。解决方法如下:
- 创建一个模块映射文件(这是我的文件)。
- 复制最新的
CommonCrypto.h
标头。 - 为这两个文件创建一个目录
CommonCrypto
。 - 将目录(通过拖放)复制到项目中。
- 在目标框架的SWIFT_INCLUDE_PATHS下添加目录路径。
这应该允许你在任何地方使用import CommonCrypto
(对于 Swift,而不是 Objective-C)。
编辑:似乎我最初误读了这个问题。你想在 Objective-C 中使用 CommonCrypto,然后从 Swift 使用它。这里有一些建议:不要在你的公共头#import
CommonCrypto,而只是在内部。包装你所有的加密结构,这样 CommonCrypto 就没有任何公共依赖,然后通过默认的桥接过程从 Swift 使用它。