最近項目頻頻被拒,也是心情煩躁梳猪,最新的被拒理由除了老生常談的5.2.1瘸右,就是運行在12.2系統(tǒng)ipad上布局錯亂的問題了称诗,同樣涉及到了swift版本遷移
你們也知道萍悴,17-18年P2P頻頻暴雷,不可避免的寓免,我們做的小額貸款類app也告一段落癣诱,從18年9月份便開啟了使用swift開發(fā)醫(yī)美的生涯,號稱集團19年重點項目袜香,繞不開的圈圈依舊是沒有資質(目前)---心累K河琛!蜈首!
本項目純swift開發(fā)实抡,當然也用到了一些OC的三方庫欠母,比如SDWebimage、MBProgressHud澜术、環(huán)信艺蝴、支付寶、微信等鸟废,當然還有一些半野生的cocoapods集成的git庫,本文就來介紹,升級xcode版本遇到的swift版本庫兼容性問題
正題
蘋果的反饋是app運行在最新的ios12.2系統(tǒng)ipad上布局錯亂姑荷,沒辦法盒延,只能將ipad升級到12.2,運行~~~提示需要將xcode升級到10.2(當前10.1)鼠冕,事實上10.2也是最近剛出的添寺,好吧,我升級懈费,然后又遇見了10.2的xcode需要10.14.4的系統(tǒng)版本支持计露,繼續(xù)升級(這里說下,升級mac os 10.14.4遇到了一些問題憎乙,意思是說文件不完整或者損壞票罐,刪除重新更新),一切準備妥當之后運行項目泞边!
不負眾望8醚骸!阵谚!先來個警告先2侠瘛!梢什!
意思是當前cocoapods集成的EZSwiftExtensions以及DGElasticPullToRefresh這兩個庫支持的是swift3.x奠蹬,而我們的xcode(10.2)支持的swift版本如下:
說人話就是,這兩個庫過時了嗡午,不能用在xcode10.2上囤躁!
ok,打開我的podfile文件看看
cd 項目根目錄
open -e podfile
目前來說翼馆,只有這兩個庫在xcode10.2上有問題割以,先改他倆
首先我們去git上查看這兩個庫是否有swift4的支持
pod search EZSwiftExtensions
我們發(fā)現(xiàn),項目中使用的是1.11版本应媚,此版本庫最新版本是2.0严沥,復制鏈接去git上看看,這個2.0新版是否支持swift4
excuse me 中姜?我項目中好多布局用到了這個庫消玄,頓時懵逼跟伏,點擊Release看看
2.0版本支持swift4,頓時心情舒暢了好多翩瓜,所以提醒各位受扳,在cocoapods集成的時候一定要再三思量,此庫是否會有人持續(xù)維護!M玫勘高!
同樣的道理pod 搜索DGElasticPullToRefresh,發(fā)現(xiàn)此庫沒有繼續(xù)維護坟桅,最高支持3.0华望,幸好項目中用到的比較少,索性直接刪除了
pod 更新如下
執(zhí)行:
pod install
shift+command+option+k,運行項目仅乓,報錯如下:
修復此庫的問題如下(選擇swift4):
再次運行
此問題看這里(https://blog.csdn.net/weiwandaixu_/article/details/88842491)赖舟,
更新pod中的HanyJson到最新版
執(zhí)行
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庫的錯誤,修改過來夸楣,繼續(xù)運行
意思是項目中有我們沒有刪除干凈的DGElasticPullToRefresh余黨1鲎ァ!豫喧!
我們搜索這個庫試試
發(fā)現(xiàn)podfile文件中還是有這個庫石洗,什么情況?嘿棘?劲腿?
打開podfile文件
發(fā)現(xiàn)還真有,刪除
執(zhí)行
pod install
pod repo update
至此podfile中的沒刪干凈的DGElasticPullToRefresh刪完了鸟妙,然后再刪除.xcodeproj文件中沒刪干凈的DGElasticPullToRefresh
找到項目目錄中的. xcodeproj文件->顯示包內容->雙擊打開project.pbxproj文件->command+f->輸入DGElasticPullToRefresh->刪除所有搜索到的DGElasticPullToRefresh->done保存
然后執(zhí)行
shift+command+k && shift+command+option+k
運行項目
build success!
至此焦人,一些不兼容的swift3.x問題得到解決(其他庫如有相似問題,按照上面步驟解決就好了)
項目能運行了重父,可是我運行在自己的ios12.2系統(tǒng)ipad上布局并沒有錯亂啊花椭,蘋果審核人員是在跟我開玩笑?他們遇見了我十年都難復現(xiàn)的問題房午?運行了十幾遍布局并無問題啊~啊~啊矿辽,就在我塊崩潰的時候bug重現(xiàn)了,將ipad橫屏放置運行項目郭厌,果真錯亂了袋倔,才發(fā)現(xiàn)我犯了一個低級錯誤,如下:
除了general中設置只支持豎屏之外折柠,info.plist中也應該做此單選portrait設置宾娜,如圖刪除相應的模塊就好了,至此,布局錯亂的問題得到解決!