Xcode10更新的那些坑(持續(xù)更新)

前言

趁著Xcode10更新漫雕,第一時(shí)間下載并準(zhǔn)備開始踩坑滨嘱。接下來直接列出筆者遇到的問題和解決過程。

1:適配iPhone X/XS/XR/XS Max

總的來說這個(gè)問題比較簡單浸间,筆者直接放上一篇別人總結(jié)的文章太雨,講的非常詳細(xì)。(鏈接:新機(jī)型適配
文章最后有具體的代碼魁蒜,作者通過是否有safeAreaInsets的底部來判斷是否為X系列機(jī)型囊扳,比較巧妙。

2.The iOS Simulator deployment target is set to x.x, but the range of supported deployment target versions for this platform is 8.0 to 12.0. (in target 'xxx')

更新了Xcode10以后兜看,興高采烈的運(yùn)行了項(xiàng)目锥咸。



Excuse me?這是什么鬼警告,作為一位強(qiáng)迫癥患者铣减,這一排排的??真的看不下去她君,著手解決。

方法1:刪除Pods葫哗、 Podfile.lock缔刹、xcworkspace文件球涛,然后重新pod install.(不推薦)

這樣的解決方法確實(shí)解決了問題,但不是很優(yōu)秀校镐,先不說執(zhí)行install會花費(fèi)很多的時(shí)間亿扁,就是Xcode下次更新如果將最低版本提升到了9,那又要重新install鸟廓,這樣就大大降低了開發(fā)者的效率从祝。

方法2:在Podfile文件中添加判斷(推薦)
post_install do |installer|
  installer.pods_project.targets.each do |target|
 target.build_configurations.each do |config|
  if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 8.0
    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '8.0'
     end
   end
  end
end

將這個(gè)判斷添加到Podfile文件的最后,然后執(zhí)行pod install引谜,再次運(yùn)行項(xiàng)目牍陌,你會發(fā)現(xiàn)整個(gè)世界都清凈了。
上面對第三方庫進(jìn)行了判斷若DEPLOYMENT_TARGET<8.0就會切換成8.0员咽,可以說是一勞永逸毒涧,下次蘋果再去提高最低版本只需要修改版本號就可以了。

關(guān)于這個(gè)問題上筆者真要好好吐槽度娘了贝室,搜索出來的東西不夠精準(zhǔn)契讲,很多都是沒有一點(diǎn)關(guān)系的問題。最后沒辦法上了谷歌滑频,一擊命中效率可以說是真的高捡偏。(貼上鏈接:https://github.com/CocoaPods/CocoaPods/issues/8069)。

大致看了下老外們的激烈討論峡迷,大概知道了些原因:
Xcode 9 --> deployment target 4.3
Xcode 10 --> deployment target 8.0
Xcode10的這次更新直接把deployment target提到了8.0银伟,所以對于之前的一些第三方庫會出現(xiàn)這樣的問題。

3:error: Multiple commands produce

這個(gè)問題筆者遇到的錯誤主要是因?yàn)槎鄠€(gè)target導(dǎo)致的plist文件重復(fù)凉当。但這個(gè)錯誤不是所有開發(fā)者都是相同的枣申,所以在這里筆者的解決方法是通過修改Build System來解決。

Xcode->點(diǎn)擊左上角file->Workspace Settings->Build System->選擇legacy Build System


解決方法

這樣解決方法只是在編譯的時(shí)候隱藏了錯誤看杭,并沒有在根本上解決問題,所以開發(fā)者可以根據(jù)自己的實(shí)際報(bào)錯情況具體解決挟伙。如果暫時(shí)不影響開發(fā)楼雹,上面的解決方式也不失為一種好方法。

另外補(bǔ)充一個(gè)新的問題尖阔,Xcode10中新建文件贮缅,在別的類中導(dǎo)入時(shí)#import不提示。這個(gè)問題也是可以通過修改Build System設(shè)置來解決介却。

4:warning: Null passed to a callee that requires a non-null argument

警告??

出現(xiàn)的原因是由于Xcode10以后谴供,系統(tǒng)對新建類默認(rèn)加上NS_ASSUME_NONNULL_BEGINNS_ASSUME_NONNULL_END這樣的一對宏,但是我們對某些對象置nil而導(dǎo)致的齿坷。
知道了原因先來看下介這對宏的作用:我們都知道Swift將對象分為optional(?)non-optional(!)的桂肌,但是OC卻沒有這一特性数焊。為了解決Swift和OC混編時(shí)的對象問題,Xcode6.3時(shí)蘋果推出了這樣的一對宏崎场。這對宏的主要作用是將在這兩個(gè)宏之間的代碼佩耳,所有簡單指針對象都會被假定為nonnull,因此我們只需要去指定那些nullable的指針谭跨。
因?yàn)樗袑ο蠖急患俣?code>nonnull了干厚,而這時(shí)將某一對象或參數(shù)置nil,所以編譯器會報(bào)此警告螃宙。

解決的方法也很簡單蛮瞄,我們只要在申明對象時(shí)對需要nil的對象或參數(shù),加上nullable關(guān)鍵字即可谆扎。

從這個(gè)警告可以發(fā)現(xiàn)挂捅,蘋果一直想讓OC往Swift的方向發(fā)展兼容,從Xcode6.3的提出燕酷,到Xcode10的默認(rèn)添加都能看出籍凝。

總結(jié)

關(guān)于Xcode10更新后筆者也是暫時(shí)碰到了這些問題,可能不夠全面苗缩,后面遇到會持續(xù)補(bǔ)充饵蒂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酱讶,隨后出現(xiàn)的幾起案子退盯,更是在濱河造成了極大的恐慌,老刑警劉巖泻肯,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渊迁,死亡現(xiàn)場離奇詭異,居然都是意外死亡灶挟,警方通過查閱死者的電腦和手機(jī)琉朽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稚铣,“玉大人箱叁,你說我怎么就攤上這事√枰剑” “怎么了耕漱?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抬伺。 經(jīng)常有香客問我螟够,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任妓笙,我火速辦了婚禮若河,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘给郊。我一直安慰自己牡肉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布淆九。 她就那樣靜靜地躺著统锤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炭庙。 梳的紋絲不亂的頭發(fā)上饲窿,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天,我揣著相機(jī)與錄音焕蹄,去河邊找鬼逾雄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛腻脏,可吹牛的內(nèi)容都是我干的鸦泳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼永品,長吁一口氣:“原來是場噩夢啊……” “哼做鹰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鼎姐,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤钾麸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后炕桨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饭尝,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年献宫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钥平。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡姊途,死狀恐怖帖池,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吭净,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布肴甸,位于F島的核電站寂殉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏原在。R本人自食惡果不足惜友扰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一彤叉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧村怪,春花似錦秽浇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梭域,卻和暖如春斑举,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背病涨。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工富玷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人既穆。 一個(gè)月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓赎懦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親幻工。 傳聞我的和親對象是個(gè)殘疾皇子励两,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容