iOS开发-LaunchScreen更新启动图片无效

2020-05-15  本文已影响0人  橘子不酸丶

原文:橘子不酸丶
转载:https://juejin.im/post/5ea79dadf265da7b9e1a6cb7

前言

最近在项目开发中遇到需要一个有趣的小问题,记录下来过程,以防后人踩坑。

一、场景

由于最近公司app品牌升级,需要替换新logo。在之前版本由于为了方便适配就使用了LaunchScreen.storyboard来作为启动图。然而当我以为事情很简单时,却发现并不是这么回事,这里面有一个坑,稍有不慎便可能会入坑。

当我只是简单的替换掉原来存放在Asset里的图片后却发现无论怎么清除缓存(卸载,clean,删除DriverData)重装都不能看到新的启动logo图,依然是旧的启动logo。

一番google之后终于搞清楚了问题,在使用LaunchScrren.storyboard启动图之后系统会缓存一张启动图片在系统目录下边,所以不论怎么清理缓存都依然是旧的启动图片。

解决办法一

重启手机,重启手机并启动可以解决这个问题,但是总不能让线上用户也重启手机来处理吧。

解决办法二

使用LaunchImage来作为启动图,但是这样适配比较麻烦需要多个屏幕尺寸的图片。

解决办法三

重命名storyboard依赖的图片,并从Asset移出到工程路径下。

由于系统进程会缓存启动图并缓存你的LaunchStoryboard.storyboard依赖的图片。
最后使用了方案三解决了问题。

追加:
后来发现在iOS13.3.1系统上需要卸载重装启动图才会更新,这就需要线上的用户也卸载重装才可以。
然鹅在iOS13.4和iOS12上都没有问题,想必是iOS13.3.1系统缓存的问题。暂时对iOS13.3.1没有什么好的办法。

最后

如有遇到相同问题可以参考一下,以下是相关的参考链接。

Image in LaunchStoryboard.storyboard Doesn't Update

Launch Storyboard not showing image when project builds to device.

上一篇 下一篇

猜你喜欢

热点阅读