美文网首页iOS Developer
升级xcode10.2,swift库兼容性问题

升级xcode10.2,swift库兼容性问题

作者: 梦回蓝桥 | 来源:发表于2019-04-04 15:34 被阅读12次

最近项目频频被拒,也是心情烦躁,最新的被拒理由除了老生常谈的5.2.1,就是运行在12.2系统ipad上布局错乱的问题了,同样涉及到了swift版本迁移

你们也知道,17-18年P2P频频暴雷,不可避免的,我们做的小额贷款类app也告一段落,从18年9月份便开启了使用swift开发医美的生涯,号称集团19年重点项目,绕不开的圈圈依旧是没有资质(目前)---心累!!!
本项目纯swift开发,当然也用到了一些OC的三方库,比如SDWebimage、MBProgressHud、环信、支付宝、微信等,当然还有一些半野生的cocoapods集成的git库,本文就来介绍,升级xcode版本遇到的swift版本库兼容性问题

正题

苹果的反馈是app运行在最新的ios12.2系统ipad上布局错乱,没办法,只能将ipad升级到12.2,运行~~~提示需要将xcode升级到10.2(当前10.1),事实上10.2也是最近刚出的,好吧,我升级,然后又遇见了10.2的xcode需要10.14.4的系统版本支持,继续升级(这里说下,升级mac os 10.14.4遇到了一些问题,意思是说文件不完整或者损坏,删除重新更新),一切准备妥当之后运行项目!
不负众望!!!先来个警告先!!!

swift版本冲突.png

意思是当前cocoapods集成的EZSwiftExtensions以及DGElasticPullToRefresh这两个库支持的是swift3.x,而我们的xcode(10.2)支持的swift版本如下:

xcode10.2支持的swift版本.png
说人话就是,这两个库过时了,不能用在xcode10.2上!
ok,打开我的podfile文件看看
cd 项目根目录
open -e podfile


podfile中的库.jpeg

目前来说,只有这两个库在xcode10.2上有问题,先改他俩
首先我们去git上查看这两个库是否有swift4的支持

pod search  EZSwiftExtensions


WechatIMG20103.jpeg
我们发现,项目中使用的是1.11版本,此版本库最新版本是2.0,复制链接去git上看看,这个2.0新版是否支持swift4
WechatIMG20128.jpeg
excuse me ?我项目中好多布局用到了这个库,顿时懵逼,点击Release看看
Release.jpeg
Release_detail.jpg
2.0版本支持swift4,顿时心情舒畅了好多,所以提醒各位,在cocoapods集成的时候一定要再三思量,此库是否会有人持续维护!!!

同样的道理pod 搜索DGElasticPullToRefresh,发现此库没有继续维护,最高支持3.0,幸好项目中用到的比较少,索性直接删除了
pod 更新如下


替换或删除不支持的swift库.jpeg
执行:

pod install


deleteAndUpdate.jpeg
shift+command+option+k,运行项目,报错如下:
swift_version_unsupported.png
修复此库的问题如下(选择swift4):
WechatIMG20147.png
再次运行
WechatIMG20150.jpeg WechatIMG20152.jpeg

此问题看这里(https://blog.csdn.net/weiwandaixu_/article/details/88842491),
更新pod中的HanyJson到最新版

HanyJson_5.jpeg HanyJson_4.jpeg
执行
pod install


会显示

Installing HandyJSON 5.0.0-beta.1 (was 4.2.1 and source changed to `https://github.com/CocoaPods/Specs.git` from `https://github.com/cocoapods/specs.git`)


再次运行项目报了一些用到DGElasticPullToRefresh库的错误,修改过来,继续运行

某些删除的库找不到错误.png

意思是项目中有我们没有删除干净的DGElasticPullToRefresh余党!!!

我们搜索这个库试试


屏幕快照 2019-04-04 下午1.43.19.png

发现podfile文件中还是有这个库,什么情况???
打开podfile文件
发现还真有,删除


WechatIMG20158.jpeg

执行

pod install
pod repo update


至此podfile中的没删干净的DGElasticPullToRefresh删完了,然后再删除.xcodeproj文件中没删干净的DGElasticPullToRefresh

找到项目目录中的. xcodeproj文件->显示包内容->双击打开project.pbxproj文件->command+f->输入DGElasticPullToRefresh->删除所有搜索到的DGElasticPullToRefresh->done保存

WechatIMG20159.jpeg WechatIMG20160.jpeg

然后执行
shift+command+k && shift+command+option+k
运行项目
build success!

至此,一些不兼容的swift3.x问题得到解决(其他库如有相似问题,按照上面步骤解决就好了)

项目能运行了,可是我运行在自己的ios12.2系统ipad上布局并没有错乱啊,苹果审核人员是在跟我开玩笑?他们遇见了我十年都难复现的问题?运行了十几遍布局并无问题啊~啊~啊,就在我块崩溃的时候bug重现了,将ipad横屏放置运行项目,果真错乱了,才发现我犯了一个低级错误,如下:

general_portrait.jpeg info_portrait.jpeg

除了general中设置只支持竖屏之外,info.plist中也应该做此单选portrait设置,如图删除相应的模块就好了,至此,布局错乱的问题得到解决!

相关文章

网友评论

    本文标题:升级xcode10.2,swift库兼容性问题

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