imzyf / ios-swift-learning-notes

📝 iOS Swift Learning Notes - see Issues
MIT License
0 stars 0 forks source link

iOS 启动图不能及时更新的问题 #89

Open imzyf opened 6 years ago

imzyf commented 6 years ago

https://www.jianshu.com/p/3fc4f848ef04

最近得闲,没事将公司项目框架,重头到尾整理了一遍。在做需求的时候,要更换启动图片,但是再打包测试的时候,发现启动图片一直更新不上,始终显示老版本的启动图。经过各种折腾终于解决,现在分享出来,给各位遇到相同问题的小伙伴参考。

imzyf commented 6 years ago

先来描述下我遇到的问题。早些时候,最早的开发同事用LaunchImage 的方式创建的启动图,这种方式更换启动图,都能及时更新。后面由于遇到5s上适配黑边的问题,公司的小伙伴用launchScreen.storyboar和LaunchImage并存的方式重新做了启动图。然后发出一个版本A,都没什么问题。但是当我们发版本B的时候,发现启动图放上去,打包测试的过程中死活都更新不上,把资源文件里所有的老图都删除掉,也更换不上。于是就有了这篇记录。

作者:_牙牙 链接:https://www.jianshu.com/p/3fc4f848ef04 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

imzyf commented 6 years ago

经过各种爬文,了解到,launchScreen方式会把启动图缓存到APP的资源包内,每次更新,这一部分资源会检测文件名称,如果名称一致,则不会更新(暂时这么猜测,毕竟谁也不太清楚苹果怎么来做的)。并且,launchScreen的资源优先级大于LaunchImage,无论LaunchImage如何替换资源,只要缓存里面有launchScreen留下的图片,都会使LaunchImage设置实效。经过试验如果想要清除这一步分缓存,可以先卸载APP,然后重启手机,重新下载才行(我们不能要求用户这样做)。所以如果你用过launchScreen来做启动图,就很难回头了。

作者:_牙牙 链接:https://www.jianshu.com/p/3fc4f848ef04 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

imzyf commented 6 years ago

1.将LaunchImage删除,只用launchScreen方式设置启动图

2.在launchScreen方式下,找到启动图,删除,改变图片名称,然后再拖入工程主目录下(不要放在Assets.xcassets中,这样可能更新找不到启动图,呈现白屏)。

3.在更新APP没有意外的话,应该就更新启动图啦。

作者:_牙牙 链接:https://www.jianshu.com/p/3fc4f848ef04 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。