首页 Flutter App 在 iOS 设备上启动时出现黑屏
文章
取消

Flutter App 在 iOS 设备上启动时出现黑屏

图 3

起因

最近在做的 App,突然发现在 iPhone 真机上启动时出现黑屏,大概效果是原生启动屏结束后,出现一段时间的黑屏,然后才是 Flutter 的启动屏,再然后是 Flutter 主页。
隐约记得这是最近出现的问题,不明所以。于是在网上搜索了一下,发现了这个问题的原因和解决方案,有这么几种情况:

  1. LaunchScreen 中图片过大
  2. 使用 FlutterNativeSplash 插件,保证 Flutter 第一帧渲染完成后,再结束原生的启动屏

尝试

首先,放在启动屏上的图片并不大,完全可以加载完成,并且也能正常显示。
于是寄希望于使用插件解决这个问题,做了尝试,但是并没有解决问题。

定位问题

使用 flutter create 创建一个新的项目,发现新项目并没有这个问题,于是开始对比新旧项目的配置,在 Xcode->Target->General 面板中,并没有指定 Launch Screen File,而旧项目中指定了。 图 1

于是,删除了旧项目中的配置信息,再次尝试。
结果是,原生启动屏不显示了。

再对比 info.plist 文件,发现在这里指定了启动屏文件。 图 2

于是,在旧项目中调整后,再次尝试,问题解决。

总结

不知道是不是 Xcode 14 带来的问题,如果要配置 LaunchScreen 作为启动屏,需要在 info.plist 文件中指定,而不是在 Xcode->Target->General 面板中指定。

本文由作者按照 CC BY 4.0 进行授权

在 Xcode 上对 Swift 代码进行保存时自动格式化

在iOS中显示数学公式