OC和Swift混编使用Pod管理第三方库的问题
2018-01-25 17:10
471 查看
OC和Swift混编Pod引入第三方库的问题
问题描述:Swift应用OC 的开源框架,需要创建一个桥接头文件,问题就出在这个看似简单,却隐藏着一个巨大的问题:一切都按部就班的在桥接头文件中引入了OC 头文件,但是xcode总是报错找不到该文件。接下来详细描述问题和原因。
1.为了在Swift项目中引入OC 开源框架,我使用了pod工具引入。然后下图:2.之后创建桥接文件:
3.然后就是在配置文件中设置桥接文件路径:
4.到这里就看似完成了,一切都很简单。但是,当编译时问题就来了,如下图:
原因是找不到该文件。可是明明使用了pod工具引入了啊。(注:百度清一色的都是以上步骤,该问题并未在百度查询到问题原因和解决方案。所谓博客恐怕都是出自一人)
5.在作了大量的测试和摸索后,终于得意解决。问题的根本原因就是我之前用pod引入了Swift开源框架,为了方便,在引入OC开源框架时我同样是使用了pod工具。我们回看第一步
Swift框架:
pod 'SnapKit', '~> 0.30.0.beta1'
pod 'Alamofire', '~> 3.4.0'
pod 'SwiftyJSON', '~> 2.3.2'
OC框架:
pod 'SVProgressHUD'
pod 'MJRefresh'
同样还有一句话:
use_frameworks!
没错,简单的说,在OC开发时并不用使用该语句,但是Swift开发时使用pod工具就需要加上这句话。这就导致了OC 和 Swift公用同一个项目工程中的pod时造成了以上显示的错误,即使其他步骤都没有错,但是错误原因就是找不到文件。
至于为什么会这样,我联想到了之前看到过的一篇文章好像是有这么一句话(记不太清楚了)OC是动态语言,而Swift是静态语言,这就是为什么两者在使用pod时关于这句话是否要加上的浅显原因(其实深入的东西就需要接着百度了)
既然原因找到了,解决它就好办了,我们只要把这两种语言的开源框架分开管理就可以了。。。。
相关文章推荐
- swift使用cocopods管理第三方类库(OC)
- IOS小知识点15第三方类库管理工具:cocoapod的使用
- 关于OC与swift混编时-swift.h更新问题
- 关于CocoaPod无法升级以及无法下载第三方库和Cocoapods在OS X 10.11系统上的无法正常使用的问题
- iOS 字符串长度计算boundingRectWithSize遇到 " \r\n"的时候,后面的字符串长度返回0 在swift中使用pod导入第三方库时,注意事项
- IOS小知识点16第三方类库管理工具:cocoapod的使用2
- 【iOS-Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- Objective-C与Swift混编中OC对Swift类视而不见的问题
- 在oc代码中使用swift第三方框架
- Xcode工程使用CocoaPods管理第三方时,出现diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock:
- Swift - CocoaPods的安装使用详解(自动安装管理第三方库)
- 【Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- iOS 第三方框架管理cocoapods 关于Mac 10.11 系统升级无法使用的问题
- swift与OC混编需要注意的小问题
- 【iOS-Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- swift中导入Objective-c的第三方库(swift与oc混编)
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
- 使用CocoaPods 0.36 管理swift和OC三方框架
- Cocopods第三方库管理工具创建Swift项目&OC项目就
- Swift中混编OC第三方库