iOS-launchScreen

作者: doudo | 来源:发表于2020-03-23 11:25 被阅读0次

问题描述:我们在修改launchScreen之后,发布到App Store发现加载的依旧是旧的launchScreen内容。只有删除APP重新安装才会更新。
寻找资料,发现了一个解决方案,记录一下。

猜测每次运行APP时launchScreen会生成个缓存,只要有缓存就会从缓存中读取,并不会使用新的launchScreen内容,而且如果不删除app,该缓存会一直存在。
后来发现在应用程序的沙盒中的Library文件夹有一个名为SplashBoard的文件夹,该文件夹是启动屏幕缓存的存储位置。
因此,要完全清除应用程序的启动屏幕缓存,需要做的就是删除缓存。
文章提到的缓存目录在沙盒下如下图所示:

image

我现在策略是每次有新版本的时候,删一次launchScreen的缓存,代码如下:


#pragma mark - 检查是否需要清除launchScreen 缓存
+ (void)checkLaunchScreenCache
{
    NSString *version = [[ZMKeyedArchiverManager manager] unarchiveObjectForKey:@"launchScreenVersion"];
    if (![version isEqualToString:APP_VERSION]) {
        [[ZMKeyedArchiverManager manager] archiveObject:APP_VERSION forKey:@"launchScreenVersion"];
        [self clearLaunchScreenCache];
    }
}
+ (void)clearLaunchScreenCache {
    // 异步删除缓存
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSError *error;
        [NSFileManager.defaultManager removeItemAtPath:[NSString stringWithFormat:@"%@/Library/SplashBoard",NSHomeDirectory()] error:&error];
        if (error) {
            NSLog(@"Failed to delete launch screen cache: %@",error);
        }
    });
}

如果该方案有问题,或有更合理的方案欢迎指正讨论。

参考:
在iOS上清除APP的启动屏幕缓存
# Quick tip: clearing your app’s launch screen cache on iOS

相关文章

  • iOS-launchScreen

    问题描述:我们在修改launchScreen之后,发布到App Store发现加载的依旧是旧的launchScre...

  • iOS-LaunchScreen的填坑之旅

    自从苹果爸爸强制要求使用LaunchScree作为启动图之后,就将工程有LaunchImage转为LaunchSc...

  • iOS-LaunchScreen 启动图踩过的坑

    最新更新新版本App出现了LaunchScreen 启动图不正确的问题。当听到这个消息心里一万只小羊驼跑过,就一张...

  • iOS-LaunchScreen 启动图踩过的坑

    最新更新新版本App出现了LaunchScreen 启动图不正确的问题。当听到这个消息心里一万只小羊驼跑过,就一张...

网友评论

    本文标题:iOS-launchScreen

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