You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 13运行iOS 15.1.1应用启动前白屏数分钟问题求解

可行解决方案如下:

1. 修复UI初始化逻辑冲突

当前项目已开启UIScene生命周期适配,却仍在AppDelegate的didFinishLaunchingWithOptions方法中手动设置根视图,两处UI初始化逻辑冲突会导致调试阶段系统渲染视图超时,是白/黑屏的核心诱因,按如下步骤修改:

  • 移除AppDelegate中didFinishLaunchingWithOptions内的三行UI相关代码:
// 以下代码删除
let storyboard =  UIStoryboard(name: "Main", bundle: nil)
self.window?.rootViewController = storyboard.instantiateInitialViewController()
self.window?.makeKeyAndVisible()
  • 打开SceneDelegate.swift,在scene(_:willConnectTo:options:)方法中添加根视图初始化逻辑:
guard let windowScene = (scene as? UIWindowScene) else { return }
let window = UIWindow(windowScene: windowScene)
self.window = window
let storyboard = UIStoryboard(name: "Main", bundle: nil)
window.rootViewController = storyboard.instantiateInitialViewController()
window.makeKeyAndVisible()

2. 调整Firebase初始化时机避免阻塞主线程

FirebaseApp.configure()执行时会同步拉取远程配置、校验集成状态,首次调试时Xcode会额外执行符号校验,双重阻塞主线程导致UI渲染延迟,可将其改为异步执行:

// 放在didFinishLaunchingWithOptions方法中即可
DispatchQueue.global().async {
    FirebaseApp.configure()
}

如果业务依赖Firebase初始化完成后才能执行操作,可添加主线程回调,不要阻塞UI渲染流程。

3. 优化Xcode调试配置

  • 打开Xcode顶部菜单栏 Product > Scheme > Edit Scheme
  • 选中左侧Run选项,切换到Diagnostics标签页,临时关闭Malloc Scribble、Zombie Objects、Malloc Guard Edges等内存诊断选项(排查内存问题时再重新开启即可)
  • 切换到Options标签页,确认Launch选项设置为Automatically,不要选择Wait for executable to be launched

4. 升级Xcode到13系列稳定版本

如果当前Xcode版本低于13.4.1,建议升级到Xcode13.4.1,这是Xcode13系列的最终稳定版本,修复了大量iPhone13系列设备运行iOS15系统时的调试兼容bug。


内容的提问来源于stack exchange,提问作者Arjun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:06:07