最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

iOS开发基于Objective-C的Framework中使用CommonCrypto

iOS 天狐 11822浏览 0评论

在Swift中我们引用CommonCrypto的时候会创建一个.modulemap间接引用CommonCrypto.framework,Objective-C中是可以直接#import <CommonCrypto/CommonCryptor.h>的。

但是最近更新了Xcode发现自己的JKCategories Framework类库中引用CommonCrypto后打包Framework文件,或者集成到CocoaPods都会报错。

/Users/runlin/Desktop/TestJKCategoriesPod/Pods/JKCategories/JKCategories/Foundation/NSData/NSData+JKEncrypt.h:11:9: Include of non-modular header inside framework module 'JKCategories.NSData_JKEncrypt': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.2.sdk/usr/include/CommonCrypto/CommonCryptor.h'

调试发现将要Define Module设置为NO问题即消失。

如果想保留Define Module为YES。同样效仿Swift配置个modulemap即可。

Xcode工程中新建文件夹与文件CommonCrypto/module.modulemap,经过不断尝试内容为

JKCategories Framework target =>build settings=>module map file 设置为$(SRCROOT)/CommonCrypto/module.modulemap

到这一步JKCategories Framework的target就可以直接生成Framework了。

CocoaPods配置Module Map

CocoaPods配置module map file 是在JKCategories.podspec中,添加以下配置

s.module_map = "CommonCrypto/module.modulemap"

Push podspec即可。

 

 

 

 

转载请注明:天狐博客 » iOS开发基于Objective-C的Framework中使用CommonCrypto

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址