升级Xcode13与VS Mac8.10.10后iOS应用无启动屏、UI异常求助
问题原因与解决方案
根因说明
- Xcode 13 开始官方正式废弃了非Storyboard/Xib实现的静态启动图方案,针对iOS 15及以上运行环境,旧的多分辨率启动图资源会被系统忽略,直接显示黑屏,你补充
Launch screen interface file base name字段只是修复了系统对应用屏幕安全区的识别,解决了上下黑边的问题,但没有解决启动图资源不被识别的问题。 - Visual Studio for Mac 8.10.10 版本存在和Xcode 13 配套的资源打包兼容bug,会将Asset Catalog中的静态图片资源错误切片、压缩编码,才会导致纯色UI元素显示分层、切割,加载图异常的glitch问题。
修复步骤
1. 启动屏黑屏修复
临时兼容旧静态启动图方案(不推荐,仅做过渡)
在info.plist中删除Launch screen interface file base name的配置,补充UILaunchImages数组字段,按分辨率逐一匹配你的启动图资源,所有启动图命名必须严格符合苹果旧规范,例如:
- 4寸屏:
Default-568h@2x.png - 4.7寸屏:
Default-667h@2x.png - 5.5寸屏:
Default-736h@3x.png - 全面屏:
Default-812h@3x.png等
官方推荐方案(永久修复)
新建LaunchScreen.storyboard,在内部添加全屏UIImageView绑定你的启动图资源,给UIImageView添加上下左右对齐父视图的约束,之后在info.plist中将Launch screen interface file base name的值设置为LaunchScreen即可,该方案兼容所有iOS版本,不会再出现启动屏异常问题。
2. UI渲染异常修复
- 首先将Visual Studio for Mac升级到8.10.25及以上的稳定版本,该版本官方已修复Xcode 13 对应的资源打包bug。
- 清空项目缓存:关闭VS后删除项目根目录下的
bin、obj文件夹,同时删除测试设备上已安装的旧版本应用,避免缓存资源干扰。 - 检查所有Asset Catalog中的图片属性,将图片的「切片」配置统一修改为「默认」,Xcode 13会默认给大尺寸资源开启自动切片,导致纯色图片显示异常。
- 若使用模拟器测试,可清空模拟器缓存:打开Xcode -> 顶部菜单栏Window -> Devices and Simulators -> 选中对应模拟器右键点击Erase All Content and Settings,再重新编译运行。
内容的提问来源于stack exchange,提问作者MaxSvd
相关产品推荐
相关产品推荐

