我有一个写在CommonCrypto之上的私有pod,它显式地依赖于commoncrypto。标头具有由CypCuto to声明的类型:

#include <CommonCrypto/CommonDigest.h>

typedef CC_SHA256_CTX qwer_digest_evp;

由于CommonCrypto中声明了CC_SHA256_CTX,所以我不能简单地将头导入导入到实现文件中。
我使用cocoapods将这个pod集成到我的项目中,并尝试了下面的post-install钩子,但它不起作用(选自SO)。
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      target.build_settings(config.name)['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
    end
  end
end

最佳答案

一个有效的选择可能是构建CommonCrypto的模块版本(可能添加了cocoapods magic)。这可以按照Importing CommonCrypto in a Swift framework答案中的步骤来完成。这个解决方案在xcode项目中与objective-c或c一起工作。
引用答案:
我在jjrscott's answer中添加了一些cocoapods魔法,以防您需要在cocoapods库中使用commoncrypto。

关于objective-c - 得到错误“在框架模块中包含非模块化头”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51080249/

10-10 20:53