LaunchScreen有缓存 终极方案

遵循苹果要求,再四月底将LaunchImage改为LaunchScreen。
为什么我的手机上图标那么大了呢。天知道我卸载重装了有4次可能

系统会缓存启动图像,即使删除了该应用程序,它实际上也很难清除原来的缓存。
应用程序的沙盒中->Library->SplashBoard的文件夹,该文件夹是启动屏缓存的存储位置。

因此,要完全清除应用程序的启动屏幕缓存,您所需要做的就是在应用程序内部运行以下代码(我已将该代码扩展到UIApplication的中):
最近在用swift开发,就上一个swift版本。oc版本对应的改变写法就ok了

import UIKit

public extension UIApplication {

    func clearLaunchScreenCache() {
        do {
            try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
        } catch {
            print("Failed to delete launch screen cache: \(error)")
        }
    }

}

调用:UIApplication.shared.clearLaunchScreenCache()

注意!!!

你以为弄完就可以了吗,想的太简单啦,我的天。
今天我们又要替换这个图片,然而上面的这个方法为什么不管用了。网上一顿搜,结果总是那么的惊喜,还是不行啊老铁们。

下面我列举几种情况

情况1: 图片放在assets

替换原来的图片: 随便你怎么清缓存,iPhone 会给你意向不到的结果。就是原来的图,我不管你怎么替换,我就展示原来的图。除非你重启手机,卸载重装都不管用

新增个图片: 如果你清缓存,那么sorry,白屏结果送给你,如果你不清缓存,那么so sorry, 原来图片结果送给你。

情况2:图片放在根目录

图片命名和原来图片命名一致:sorry ,原来图片结果送给你
图片命名和原来图片命名不一致:如果你没清缓存,那么继续sorry送给你,如果你清理了缓存,哈哈,superis ,恭喜你替换成功了。

我们的项目是在 版本号不一致的情况下,去清除缓存,这样是为了不用每次应用启动都去清除。
但是一个弊端就是,如果图片更改了,版本更新后首次启动仍然是旧的图片,第二次就是新的了。和同事商量后,比较倾向于这种。

当然看文章的你也可以再你们需要的地方去清除缓存。

目前必须清除缓存的原因是我们有assets 路径替换到了根目录。要到后续才知道,直接替换根目录的是否仍然需要清缓存,后面版本迭代后见分晓。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值