无法在混合语言框架中导入 CommonCrypto
Can't import CommonCrypto in mixed language framework
我正在构建一个混合语言框架。我主要有 Swift 个文件,还有一些 Objective-C 个。
其中一个 Objective-C 文件是使用 CommonCrypto 的加密 class。
似乎由于某种原因我无法导入它,尽管我可以在 Objective-C 框架中导入它。
谁能给我解释一下这是为什么?
我找到的所有其他解决方案都在谈论如何在 Swift 中使用 CommonCrypto 当我需要在 Swift 框架中的 Objective-C 中使用它时。
P.S:
我尝试像这样在伞头文件中添加导入:
#import <CommonCrypto/CommonCrypto.h>
错误:Include of non-modular header inside framework module 'name of header'
这个答案没有解决问题:answer
我自己也遇到过这个问题。解决方法如下:
- 创建模块映射文件 (here's my file)。
- 复制最新的
CommonCrypto.h
header.
- 为这两个文件创建目录
CommonCrypto
。
- 将目录(通过 drag-and-drop)复制到您的项目。
- 在 SWIFT_INCLUDE_PATHS 下为您的目标框架添加目录路径。
这应该允许您在任何地方使用 import CommonCrypto
( 用于 Swift,而不是 Objective-C)。
编辑: 看来我一开始看错了问题。您想在 Objective-C 中使用 CommonCrypto,然后在 Swift 中使用它。这里有一些建议:不要 #import
CommonCrypto 在你的 public header 中,而只是在内部。包装你所有的 crypto-structures,这样就没有任何对 CommonCrypto 的 public 依赖,然后只需通过默认桥接程序从 Swift 使用它。
我正在构建一个混合语言框架。我主要有 Swift 个文件,还有一些 Objective-C 个。
其中一个 Objective-C 文件是使用 CommonCrypto 的加密 class。
似乎由于某种原因我无法导入它,尽管我可以在 Objective-C 框架中导入它。
谁能给我解释一下这是为什么?
我找到的所有其他解决方案都在谈论如何在 Swift 中使用 CommonCrypto 当我需要在 Swift 框架中的 Objective-C 中使用它时。
P.S:
我尝试像这样在伞头文件中添加导入:
#import <CommonCrypto/CommonCrypto.h>
错误:Include of non-modular header inside framework module 'name of header'
这个答案没有解决问题:answer
我自己也遇到过这个问题。解决方法如下:
- 创建模块映射文件 (here's my file)。
- 复制最新的
CommonCrypto.h
header. - 为这两个文件创建目录
CommonCrypto
。 - 将目录(通过 drag-and-drop)复制到您的项目。
- 在 SWIFT_INCLUDE_PATHS 下为您的目标框架添加目录路径。
这应该允许您在任何地方使用 import CommonCrypto
( 用于 Swift,而不是 Objective-C)。
编辑: 看来我一开始看错了问题。您想在 Objective-C 中使用 CommonCrypto,然后在 Swift 中使用它。这里有一些建议:不要 #import
CommonCrypto 在你的 public header 中,而只是在内部。包装你所有的 crypto-structures,这样就没有任何对 CommonCrypto 的 public 依赖,然后只需通过默认桥接程序从 Swift 使用它。