在iOS上清除APP的启动屏幕缓存

作者: 韦弦Zhy | 来源:发表于2019-12-20 16:56 被阅读0次

每当我在我的iOS应用程序中修改了启动屏幕LaunchScreen.storyboad中的某些内容时,我都会遇到一个问题:系统会缓存启动图像,即使删除了该应用程序,它实际上也很难清除原来的缓存。

有时我修改了LaunchScreen.storyboad,删除应用程序并重新启动,它显示了新的LaunchScreen.storyboad,但LaunchScreen.storyboad中引用的任何图像都不会显示,从而使启动屏幕显得不正常。

今天,我在应用程序的容器中进行了一些挖掘,发现该Library文件夹中有一个名为的文件夹SplashBoard,该文件夹是启动屏幕缓存的存储位置。

因此,要完全清除应用程序的启动屏幕缓存,您所需要做的就是在应用程序内部运行以下代码(我已将该代码打包到UIApplication的扩展中):

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)")
        }
    }

}

注意:仅在iOS 13上测试

您可以将其放在启动屏幕开发过程中启用的参数标志后面的应用程序初始化代码中,然后在不使用启动屏幕工作时将其禁用。

这个技巧在启动屏幕出问题时为我节省了很多时间,希望也能为您节省一些时间。

以上内容来自Quick tip: clearing your app’s launch screen cache on iOS 简单翻译一下搬运过来,希望有用

使用:
UIApplication.shared.clearLaunchScreenCache()

附:

  • 文章提到的缓存目录在沙盒下如下图所示:


    app启动图缓存.png
  • OC代码,创建一个UIApplication 的 Category
#import <UIKit/UIKit.h>

@interface UIApplication (LaunchScreen)
- (void)clearLaunchScreenCache;
@end
#import "UIApplication+LaunchScreen.h"

@implementation UIApplication (LaunchScreen)
- (void)clearLaunchScreenCache {
    NSError *error;
    [NSFileManager.defaultManager removeItemAtPath:[NSString stringWithFormat:@"%@/Library/SplashBoard",NSHomeDirectory()] error:&error];
    if (error) {
        NSLog(@"Failed to delete launch screen cache: %@",error);
    }
}
@end

OC使用方法

#import "UIApplication+LaunchScreen.h"

[UIApplication.sharedApplication clearLaunchScreenCache];

相关文章

  • 在iOS上清除APP的启动屏幕缓存

    每当我在我的iOS应用程序中修改了启动屏幕LaunchScreen.storyboad中的某些内容时,我都会遇到一...

  • adb 常用命令记录

    清除 App 缓存数据 启动app 模拟点击事件 获取所有的 dumpsys | grep -i DUMP 获取当...

  • app性能测试

    app启动测试 adb logcat 清除缓存数据:adb shell pm clear package停止进程:...

  • iOS 清除缓存

    iOS 清除缓存 我们在使用任何一款APP的时候,无论是苹果的 还是安卓的 都会产生一些缓存 ,我们在使用APP的...

  • iOS应用启动及优化点

    在iOS系统中,APP的启动分为两种,我将其称之为全加载启动和缓存启动 1.全加载启动,即在iOS系统中没有该AP...

  • 用SwiftyUserDefaults封装用户信息缓存工具类

    最近发现YYCache 框架在iOS15 以上系统中,清除硬盘缓存的功能失效了,导致app的用户退出登录清理缓存信...

  • 清楚WKWebView缓存

    WKWebView清除缓存WKWebView,在iOS9以后提供了缓存管理类WKWebsiteDataStore,...

  • iOS离屏渲染

    iOS 屏幕渲染 iOS 屏幕渲染是双缓存机制, 有一个当前屏幕缓存, 另一个非当前屏幕缓存, 也就是离屏缓存。 ...

  • iOS清除APP图片缓存

    废话不多说直接上代码,需要的自取获取缓存大小: 删除缓存:

  • iOS 清除APP本地缓存

    场景:最近项目需求迭代,需要加一个清除APP缓存的入口 缓存文件大小的获取(Swift5.0版本): 清除缓存:

网友评论

    本文标题:在iOS上清除APP的启动屏幕缓存

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