根据苹果要求2020年4月之后上线的APP都必须使用LaunchScreen适配启动图,在研究的过程中发现还是有一些坑的,记录一下。

环境: Xcode 11.3 + iPhone 11 + iOS 13.3

使用LaunchScreen设置启动图运行,之后更新图片内容,发现运行仍然是旧的图片。也试过网上的改名字、删除sb再新建、卸载重装、卸载+重启后重装,只有最后一项是每次都是正确的,前几项大多数情况下还是错误的。

使用模拟器测试发现,只有在全面屏时会更新失效。

以下路径只在iOS 13系统下测试,其他设备的路径未测试。建议执行下面操作时每个版本只执行一次,否则不知道会不会出现黑白屏之类的情况。测试的时候没有执行下面代码,仅仅是频繁更换启动图就会出现黑白屏。

1.直接删除截图存放的路径目录

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/SplashBoard/Snapshots"];

[[NSFileManager defaultManager] removeItemAtPath:path error:nil];

可能有些莫名的情况下会会出现黑白屏,这时候使用1方法并不能完美解决,使用下面的2方法测试,即时是出现了黑屏,替换之后也可以显示正常。

2.替换截图目录下文件

// 获取截图存储路径

NSString *bundleID = [[NSBundle mainBundle].infoDictionary objectForKey:@"CFBundleVersion"];

NSString *shotsDirName = [bundleID stringByAppendingString:@" - {DEFAULT GROUP}"];

NSString *shotsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/SplashBoard/Snapshots"];

shotsPath = [shotsPath stringByAppendingPathComponent:shotsDirName];

NSError *readError = nil;

NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:shotsPath error:&readError];

// 遍历该目录下截图文件

for (NSString *fileName in files) {

NSString *path = [shotsPath stringByAppendingPathComponent:fileName];

NSError *error = nil;

NSData *data = [NSData dataWithContentsOfFile:path options:NSDataReadingMappedIfSafe error:&error];

if (!error && [data length]) {

UIImage *image = [UIImage imageWithData:data];

if (image) {

UIImage *launchImage = [UIImage imageNamed:@"launch"];

// 设置图片尺寸为旧图尺寸

launchImage = [launchImage imageByResizeToSize:image.size contentMode:UIViewContentModeScaleAspectFit];

// 写入目录,替换旧图

NSData *launchData = UIImagePNGRepresentation(launchImage);

[launchData writeToFile:path atomically:YES];

}

}

}

以上两种方法都只能保证更新后二次启动是显示正确的,首次启动没找到办法。

然而大多数人都想要酷炫的启动,创建出了很多启动动画,那么这时候对于苹果要求的一张图适配所有屏幕就可能会产生很多问题,比如图片在原有的坐标上可能发生偏移,而你也不知道到底偏移了多少。

看到有人提出这样的方案,原理还是跟之前的LaunchImage一样,但是不知道这个能不能在苹果最新的这个规则下上架。此处是链接哦

以上仅限于个人只有一个手机,若有其他情况,大家也可以补充。

更新:经过与苹果官方开发人员讨论,明确表示这种情况只在开发模式下频繁出现,在AppStore上不会出现。

storyboard 苹果启动图_iOS LaunchScreen.storyboard启动图更新相关推荐

  1. 关于LaunchScreen.storyboard启动设置(包含不同设备适配)

    消除警告 1.warning: Launch images are deprecated in iOS 13.0. Use a launch storyboard or XIB instead. 2. ...

  2. storyboard 苹果启动图_iOS 13使用LaunchScreen.storyboard适配各尺寸启动图

    背景 苹果在2019年WWDC中提出,到2020年4月开始,使用 iOS 13 SDK 的 App 必须使用 LaunchScreen,相应的LuanchImage 也要退出历史的舞台.但是现在苹果手 ...

  3. storyboard 苹果启动图_iOS13最新LaunchScreen.storyboard 启动图屏幕适配

    从2020年4月开始,所有使⽤ iOS13 SDK的 App将必须提供 LaunchScreen,LaunchImage即将退出历史舞台 2020年3月22号更新 评论里很多兄弟反映了几个问题 1,i ...

  4. storyboard 苹果启动图_iOS平台自定义storyboard启动界面

    背景 6月30日起,苹果App Store审核要求应用在启动时,不能使用启动图片,必须改为使用Storyboard来制作启动界面.原文参考:https://developer.apple.com/ne ...

  5. storyboard 苹果启动图_IOS启动图设置【图片尺寸】

    方法一:通过Assets.xcassets设置. 1.Tagets中Launch Images Sourc 选择Assets,同时Launch Screen File设置为空值. 2.如果Assets ...

  6. storyboard 苹果启动图_使用Xcode storyboard 来提供 app 的启动屏幕

    一. 背景 6月30日前,苹果要求所有的app必须使用storyboard来提供app的启动屏幕. 其主要目的就是希望所有的开发者尽量不使用一张纯图片作为启动页面,而是希望APP的启动页面和其他页面一 ...

  7. iOS 13 LaunchScreen.storyboard 启动图屏幕适配

    苹果3.26 发文 延迟 使用 Xcode storyboard(故事板) 来提供 app 的启动屏幕,截止日期延长到6.30.弃用iOS Launch Image 早晚都得整,来写一篇博客讲讲使用方 ...

  8. storyboard 苹果启动图_iOS13 启动图适配

    释放双眼,带上耳机,听听看~! 目前启动页有两种设置方式: 1.使用 LaunchScreen.storyboard 设置 这是比较简单,因为 xcode 都默认设置好的,只需要在 LaunchScr ...

  9. ios添加 启动画面_iOS 两种设置启动图方式的 bug 汇总

    楼主最近几天一直在纠结这个,忙到最后发现是 Apple 的锅,臣妾真搞不定呀 1.单独使用 LaunchImage 来设置启动图时: ①iOS9 系统的手机,在 APP 从后台通过 openURL 拉 ...

最新文章

  1. 炫彩流光按钮 html+css
  2. MySQL数据库将查询结果插入到其它表中
  3. 字节跳动《算法中文手册》完整版 PDF 开放下载!
  4. 代码对比工具,我就用这 6 个!
  5. Promise的基本使用
  6. java numberformat异常_Java NumberFormat格式化float类型的bug
  7. bootstrap悬停下拉导航的实现
  8. Nginx跨域配置、限制连接、限制下载速度
  9. Flutter TextField 限制只允许输入数字,字母,小数,设置限制小数位数
  10. ORACLE OEM
  11. 终于知道《喜洋洋和灰太狼》为什么火了!
  12. caffe之学习曲线可视化
  13. java使用zxing_在Java中使用Zxing读取QRCode
  14. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-ICP和实践
  15. incaseformat病毒分析
  16. Java实现json对比(递归)
  17. 正则表达式(一):php常用的正则匹配
  18. NRR52832 获取扫描请求
  19. iOS 9 spotlight搜索 3DTouch
  20. 2022小美赛数学建模(认证杯)ABCD题思路模型代码

热门文章

  1. 区块链中的密码学(五)-零知识证明简述
  2. Linux 安装 nginx注意
  3. jQuery ZeroClipboard中Flash定位不准确的解决方案
  4. 怀旧系列(5)----大学时代的疯狂
  5. [C++]虚函数-同名访问
  6. ADO.NETv2.0的一些特征
  7. 30个Python极简代码
  8. 华为交换机实操系列(资源)
  9. Zabbix触发器和监控项设置时间范围.
  10. vim 编辑器 打开GB2312、GBK文件乱码解决方法