第三方依赖库的一些问题

之前,公司的项目代码一直遗留着两个的第三方框架库问题 ,因为之前有很多任务压身比较忙,就暂时把其抛到'重要但不紧急’的事项中, 这两天升级到8.3,有些第三方库因为版本没有升级,所以报警告比较烦,所以就抽了点时间研究了下这个问题.

一:

这个项目 pod install 之后我发现并没有更新到最新版本的第三方库 并且出现以下的警告 运行代码就会第三方库全体报错,无止境修改代码就是无法运行

Snip20170417_2.png

所以,先从这些警告入手, 进入工程项目文件夹 ->右键点击 .xcodeproj 文件 显示包内容 -> 打开 .pbxproj 文件 -> 文本搜索提示警告的内容 ‘OTHER_LDFLAGS’ 和’ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES’ -> 找到这些内容删除

然后输入 pod update 进行更新, 就可以看见CocoaPods 将第三方库内容 更新最新版本 , 再次运行工程项目代码, 就可以运行了

二:

升级到Xcode 8.3 版本之后, iPad 版本 无法运行, 第三方库报错 :

Module compiled with Swift 3.0.2 cannot be imported in Swift 3.1

首先我在 Stackoverflow 中搜索类似问题 ,得到的答案大部分都是在工程文件BulidSettings 将 Swift Language Version 这个属性设置为 YES ,可是在我这里并不能解决问题.

最后经过分析,是因为 第三方库的编译版本是3.0 而升级之后需要利用3.1进行编译 , 需要更新第三方动态库, 发现了是用 Carthage 来管理第三方库的, 更新第三方库在 SwiftyJSON 处报错无法更新完成, 提示操作超时, 在 Google 搜索解决方案, 发现现在暂时无解,因为 SwiftyJSON 暂时没有出 Carthage 的3.1版本, 没有解决办法,那是不行的,既然 Carthage 无法使用, 那没办法只能更换到 CocoaPods 了.

新建了个分支,将项目整体拖过来将有关 Carthage 的文件全部删除, 更换成 Pod 文件进行更新,更新完成进入项目中编译,就会发现两个错误

![两个问题.png](http://upload-images.jianshu.io/upload_images/1638564-8ebb736934f31bf3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

看见报错不要慌.. 慢慢来 分析分析

看了报错会发现,是之前的配置没有删除, 所以还在找之前的配置路径, 知道为什么 就可以解决了.

在 Bulid Phases 中找到 Run Script 删除方框内的配置

Snip20170417_7.png

删除了之后还会出现 第一个警告 ,那肯定还是哪里有配置文件没有删干净了, 下来怎么找呢.

利用全局搜索 , 找到了 这个地方还在用 ,那就对了, 删除他

Snip20170417_9.png

再次运行项目, 完美运行,没有任何警告报错. 美滋滋, 哎这就很舒服

完!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • PS:本文旨在介绍Carthage的使用,为初学者提供一个Carthage学习的入口,高手如不喜欢请绕行~ 在项目...
    小松wolf阅读 11,242评论 5 9
  • 一粒种子 心中琉璃的世界和人间烟火 果实自然成熟 野草依次枯萎 小小婉转的心思如锦囊 装着长长的情谊与幻想 在暗夜...
    初夏的时光阅读 1,690评论 3 8
  • 我发现人要时刻提醒自己什么才是最重要的,时刻提醒自己,我真的很讨厌自己左顾右盼的性格,好烦躁啊。
    下雨了收衣服阅读 1,033评论 0 1
  • 通俗点讲,就是进程需要的额外信息。参考文章 进程上下文 由多任务(线程)引出的进程上下文 现代计算机绝大多数都可以...
    Myth52125阅读 3,688评论 0 1