在使用Xcode9.2適配iPhone X的過程中遇到了部分圖片顯示異常(不顯示或花掉)的問題。主要分兩種情況,一是App Icon不顯示,二是資源圖片在iOS8.1 iOS8.2上面會花掉,本文簡單記錄一下這兩種情況的解決方案。
升級Xcode9.2之后App Icon突然不顯示
在Xcode8.x上配置好的App Icon文件,在Xcode8.x的模擬器以及打包安裝到真機上App Icon都能正常顯示。升級到Xcode9.2之后,查看App Icon中資源文件都正常,但是在模擬器上跑的時候和安裝到真機上App Icon怎么都顯示不出來。
解決辦法:
- 用預覽把App Icon打開,把alpha通道關閉;
- 預覽-工具-指派描述文件,把ColorSync描述文件從iMac選項改為sRGB選項;

修改ColorSync描述文件
修改完成之后保存,重新跑項目,應用圖標就出來了。
Xcode9.2打包安裝到iOS8.1和iOS8.2的機器上資源圖片花掉
在適配完iPhone X之后,公司的測試人員拿出它iOS8.1的iPhone5s,裝上之后把大家嚇了一跳,App中大部分圖片都花掉了,而直接放在bundle下的和從網絡加載的圖片卻沒有花掉,代碼有毒?
比如好好的一張圖,會花得讓你懷疑自己是不是擼多了:

花掉的圖標

花掉的tabbar icon
這一定是Xcode的bug,這個鍋,我們開發(fā)不背??。不知道是蘋果有意督促iOS8的用戶去升級系統(tǒng)還是不小心沒有考慮適配iOS8。
解決辦法:
1.等待蘋果爸爸升級Xcode,修復bug。
2.把圖片資源直接放在bundle下,不要放在image assets下。
3.裝兩個Xcode,打包的時候用低版本的Xcode打包,開發(fā)的時候用Xcode9.2開發(fā)。
這些年蘋果的bug好像暴露的越來越多了,一度讓人們懷疑蘋果的代碼質量不如以前了。其實,時代在發(fā)展,大家面對的挑戰(zhàn)必將越來越大,誰都難保證自己寫得代碼沒有bug,包括蘋果這樣偉大的公司。最近爆出Intel的“Meltdown”和“Spectre”硬件上的漏洞更是忙壞了全世界一大批開發(fā)人員。最新的系統(tǒng)總是會修復一些漏洞和bug的,為了大家的安全,大家能升級的還是盡量升級到最新系統(tǒng)。生命不息,我們程序猿和bug的斗爭就不會停止。
2018-4-4補充
經測試,Xcode9.3依然存在這個問題。