升级 iOS 27.0 后,调试运行 APP 崩溃问题
背景
背景
为了尝鲜升级了 iOS27.0 的系统,结果用Xcode 26.5运行崩溃,以为是调试不兼容。所以下载了Xcode 27.0 Beta运行,结果还是崩溃。于是把日志丢给 AI,AI分析的结论如下:
这个崩溃的核心问题是:
主要是针对老项目,使用的AppDelegate生命周期的那些,会出问题。
应用必须采用 UIScene 生命周期,从某个 SDK 版本起这已成为强制要求(参见 TN3187)。
原因: 你的应用仍在使用旧的 UIApplicationDelegate 单窗口生命周期,而不是基于 UIScene 的多窗口生命周期。
修复步骤:
首先在 Info.plist 中添加 Scene 配置,确保有 UIApplicationSceneManifest 键:
1 | <key>UIApplicationSceneManifest</key> |
然后创建 SceneDelegate,把窗口创建逻辑从 AppDelegate 迁移过来:
1 | import UIKit |
最后清理 AppDelegate,移除 window 属性和窗口创建代码,并添加 Scene 回调:
1 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { |
如果是 SwiftUI 项目,直接确保使用 @main + App 协议即可,SwiftUI 会自动处理 Scene 生命周期。
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!