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

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

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

然后 pod install

接着编译 command+r

会有报错。

先不管报错,xcode提示修改项目配置,主要是修改

如果没有提示,请自行到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后再看)

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

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

将swift类文件添加到OC项目中(或在OC项目中新建swift类),xcode会提示是否生产桥接文件 xxx-Bridging-Header.h ,点击确认创建。提示如图:

设置 Defines Module 为 Yes

      解决:需要在swift被访问的方法或属性前添加 @objc

      解决:将 xx.swift 文件加入的项目中,就不需要使用 import再引入了,直接可以使用了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7988688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存