? ? ? ? 最近得閑,沒事將公司項目框架,重頭到尾整理了一遍。在做需求的時候,要更換啟動圖片,但是再打包測試的時候,發現啟動圖片一直更新不上,始終顯示老版本的啟動圖。經過各種折騰終于解決,現在分享出來,給各位遇到相同問題的小伙伴參考。
? ? ? 先來描述下我遇到的問題。早些時候,最早的開發同事用LaunchImage 的方式創建的啟動圖,這種方式更換啟動圖,都能及時更新。后面由于遇到5s上適配黑邊的問題,公司的小伙伴用launchScreen.storyboar和LaunchImage并存的方式重新做了啟動圖。然后發出一個版本A,都沒什么問題。但是當我們發版本B的時候,發現啟動圖放上去,打包測試的過程中死活都更新不上,把資源文件里所有的老圖都刪除掉,也更換不上。于是就有了這篇記錄。
緣由
? ? ? ? 由于歷史原因,蘋果公司提供兩種設置啟動圖片的方式。launchScreen和LaunchImage
,iOS8以前的系統不支持launchScreen。兩種方式如何設置啟動圖,這就不多說了,相信大家都很了解,不了解可以自己百度一下,有很多相關教程。這里只介如何紹解決問題。為什么會產生我上面所出現的問題呢,經過各種爬文,了解到,launchScreen方式會把啟動圖緩存到APP的資源包內,每次更新,這一部分資源會檢測文件名稱,如果名稱一致,則不會更新(暫時這么猜測,畢竟誰也不太清楚蘋果怎么來做的)。并且,launchScreen的資源優先級大于LaunchImage,無論LaunchImage如何替換資源,只要緩存里面有launchScreen留下的圖片,都會使LaunchImage設置實效。經過試驗如果想要清除這一步分緩存,可以先卸載APP,然后重啟手機,重新下載才行(我們不能要求用戶這樣做)。所以如果你用過launchScreen來做啟動圖,就很難回頭了。
解決方式
??????? 說說我們怎么解決的:
1.將LaunchImage刪除,只用launchScreen方式設置啟動圖
2.在launchScreen方式下,找到啟動圖,刪除,改變圖片名稱,然后再拖入工程主目錄下(不要放在Assets.xcassets中,這樣可能更新找不到啟動圖,呈現白屏)。
3.在更新APP沒有意外的話,應該就更新啟動圖啦。