赞
踩
- WARNING ITMS-90725: "SDK Version Issue. This app was built with the iOS 11.3 SDK.
- Starting March 2019, all iOS apps submitted to the App Store must be built with the iOS 12.1 SDK or later,
- included in Xcode 10.1 or later."
2019年3月份起,就不可以用当下的Xcode 9.4.1打包上传代码了,升级Xcode 10迫在眉睫。上周五开会立下军令状,3日内完成Swift 4.1到Swift 4.2的语言升级。今天已是周一,好在如期完成,才有时间在这闲扯几句。
建议下载Xcode 10.1版本,不要直接覆盖升级,因为在对比代码差异时会用到之前的。
$ curl -L get.rvm.io | bash -s stable
$ source ~/.bashrc
$ source ~/.bash_profile
$ rvm -v
$ rvm list known
$ rvm install 2.4.1
$ ruby -v
$ sudo gem install -n /usr/local/bin cocoapods --pre
$ pod --version
可参考之前快速升级本地Cocoapods库文件的办法
https://wangzhongyao.blog.csdn.net/article/details/84169233
友情提示:执行上面命令的时候,不要考验自己的网速够不够快,有5块零钱去买个梯子好一些。
在升级语言时,如果有Pods库未升级的阻隔,那大概率编译后自己代码中的error无法显现。所以我们首先要做的是升级Pods库。
如果引入的是OC写的库,就不必升级。
若是Swift写的库,则需要检查是否适配了Swift 4.2语言。如下:
- #if swift(>=4.2)
-
- let curveUserInfoKey = UIResponder.keyboardAnimationCurveUserInfoKey
- let durationUserInfoKey = UIResponder.keyboardAnimationDurationUserInfoKey
- let frameEndUserInfoKey = UIResponder.keyboardFrameEndUserInfoKey
-
- #else
-
- let curveUserInfoKey = UIKeyboardAnimationCurveUserInfoKey
- let durationUserInfoKey = UIKeyboardAnimationDurationUserInfoKey
- let frameEndUserInfoKey = UIKeyboardFrameEndUserInfoKey
-
- #endif
当然,在检查引入的第三方库时,可能引入该库的当前版本并没有适配。我们可升级库版本到最新,然后检查是否可用。
在所有Pods中第三方库均检查完毕后,我们可以新建一个基于Swift 4.2的空白项目,然后将修改完毕后的Pods导入,运行如果无误,那么Pods的升级完毕。
在Pods升级完毕后,你自己代码中的bug会一股脑儿的出来。如下图:
error 999+?这其实只是冰山一角。具体怎么改?95%的bug可以通过提示点一点解决。4%呢需要下点儿功夫,比如说一些方法变更、枚举变更后无法通过提示一键生成。文章后面附更改方法。
大概改了1天,刚过了情人节没几天,嗯,这个数字还不错。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。