我正在创建将通过Cocoapods分发的Swift框架。在MyFramework内部,我使用通过Cocoapods安装的一些框架。导入以swift编写的框架效果很好,但是导入objc框架时遇到麻烦。我想在MyFramework中使用CardIO并将其添加为pods子模块,因此用户可以选择像pod'MyFramework / CardIO'一样安装它。在MyFramework中安装CardIO pod后,我尝试将其导入MyFramework-umbrella-header中,如下所示:#import "CardIO/CardIO.h"
但是得到错误:"Include of non-modular header inside framework module "
。
我也检查了这个answer,但是在导入objc框架时这不起作用。有什么想法可以将通过Cocoapods安装的objc框架导入Swift框架吗?
最佳答案
[已修复]:问题出在CardIO podspec中,它们仅将.h文件作为source_files导入。因此,在将.m文件包含到源文件中之后:.source_files = 'CardIO/*.{h,m}'
Cocoapods生成CardIO模块映射,然后可以在Swift框架中导入CardIO模块。