美文网首页iOS/Swift/Objc
iOS 启动图不能及时更新的问题

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

作者: _牙牙 | 来源:发表于2017-05-22 11:31 被阅读1399次

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

          先来描述下我遇到的问题。早些时候,最早的开发同事用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没有意外的话,应该就更新启动图啦。

    相关链接


    简单-设置启动图片的两种方式

    ios设置启动图遇到的坑 

    相关文章

      网友评论

      • 各种垫底:放到项目主目录下怎么设置@2x和@3x的?
      • brance:遇到一个更奇怪的bug,按照楼主的办法更改了名称把图片放在了项目主目录下,使用launchScreen.storyboard 方式加载,当天启动启动图可以正常加载,第二天竟然又开始黑屏了!
        brance:@各种垫底 先把图片放到项目目录下,每次上线前把图片名称修改一下,暂时没有遇到再次黑屏的情况
        各种垫底:我也遇到了, 直接跑到真机上可以, adhoc的安装包就直接黑屏了

      本文标题:iOS 启动图不能及时更新的问题

      本文链接:https://www.haomeiwen.com/subject/mqlvxxtx.html