我正在建立一个混合语言框架。我主要有Swift文件,还有一些Objective-C文件。

Objective-C文件之一是使用CommonCrypto的加密类。

似乎由于某种原因我无法导入它,即使可以在Objective-C框架中导入它也是如此。

有人可以向我解释为什么吗?

当我需要在Swift框架的Objective-C中使用CommonCrypto时,我发现的所有其他解决方案都谈到了如何在Swift中使用CommonCrypto。

附言:

  • 我尝试将导入内容添加到雨伞头文件中,如下所示:#import <CommonCrypto/CommonCrypto.h>错误:Include of non-modular header inside framework module 'name of header'
  • 此答案不能解决问题:answer
  • 最佳答案

    我本人也遇到了这个问题。解决方法如下:

  • 创建模块映射文件(here's my file)。
  • 复制最新的CommonCrypto.h header 。
  • 为这两个文件创建目录CommonCrypto
  • 将目录(通过拖放)复制到您的项目中。
  • 为您的目标框架在 SWIFT_INCLUDE_PATHS 下添加目录路径。

  • 这应该允许您在任何需要的地方使用import CommonCrypto(Swift 为,而不是Objective-C)。

    编辑:似乎我最初读错了问题。您想在Objective-C中使用CommonCrypto,然后在Swift中使用它。以下是一些建议:不要在公共(public) header 中使用#import CommonCrypto,而要在内部使用。包装所有的加密结构,以使CommonCrypto不再存在公共(public)依赖性,然后通过默认的桥接过程从Swift中使用它。

    关于ios - 无法在混合语言框架中导入CommonCrypto,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37371893/

    10-13 06:01