美文网首页更多iOS征服iOSSwift&Objective-C
OC项目加入swift第三方库遇到的坑

OC项目加入swift第三方库遇到的坑

作者: bellchen | 来源:发表于2017-07-07 16:23 被阅读1951次

首先,在OC项目的Podfile文件中添加如下

use_frameworks!
pod 'PromiseKit', '~> 4.2.2' #任意一个swift库

然后pod install
接着编译command+r
会有报错。
先不管报错,xcode提示修改项目配置,主要是修改

ALWAYS_SEARCH_USER_PATHS = NO;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

如果没有提示,请自行到project.pbxproj文件中找到ALWAYS_SEARCH_USER_PATHS改为NO;
在其上面添加一行ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

然后就是修改报错
以前没有加入use_frameworks!前OC调用Pod引入的第三方库时,是这样调用的#import <YYKit.h>,现在全部给它加上frame前缀#import <YYKit/YYKit.h>
记住不要按照xcode的提示去修改,它提示你把<>改为"",这样就真的找不到头文件了。
这是一个艰苦的过程,我足足改了100+个文件,还好有批量替换☺

如果你也和我一样用到mattt大神的Ono,或者其他比较古老的第三方库,或许你也碰到这样的问题(如果没看到,clean后再看)

引用Ono.h地方
是的,已经添加frame前缀Ono了,还是报错;
一共报了2处错误,第一个就是它,一开始以为是frame前缀拼错了,用代码提示来写也不对。
跳转到Ono.h文件里边也没发现报错
Ono.h.png

想着处理第二个问题再说咯,这时发现了问题的端倪

第二个问题才是重点! ONOXMLDocument.h.png
问题描述是:Include of non-modular header insider framework module 'xxxx'
解决方案是在Build Setting中修改Allow Non-modular includes in Framework ModulesYES

参考资料:include of non-modular header inside XXXX

相关文章

网友评论

本文标题:OC项目加入swift第三方库遇到的坑

本文链接:https://www.haomeiwen.com/subject/mzzlhxtx.html