首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >升级 iOS 27.0 后,调试运行 APP 崩溃问题

升级 iOS 27.0 后,调试运行 APP 崩溃问题

原创
作者头像
莫空9081
发布2026-06-12 11:13:13
发布2026-06-12 11:13:13
1680
举报
文章被收录于专栏:iOS 备忘录iOS 备忘录

背景

为了尝鲜升级了 iOS27.0 的系统,结果用Xcode 26.5运行崩溃,以为是调试不兼容。所以下载了Xcode 27.0 Beta运行,结果还是崩溃。于是把日志丢给 AI,AI分析的结论如下:

这个崩溃的核心问题是:

主要是针对老项目,使用的AppDelegate生命周期的那些,会出问题。

应用必须采用 UIScene 生命周期,从某个 SDK 版本起这已成为强制要求(参见 TN3187)。

原因: 你的应用仍在使用旧的 UIApplicationDelegate 单窗口生命周期,而不是基于 UIScene 的多窗口生命周期。

修复步骤:

首先在 Info.plist 中添加 Scene 配置,确保有 UIApplicationSceneManifest 键:

代码语言:ruby
复制
<key>UIApplicationSceneManifest</key>
<dict>
    <key>UIApplicationSupportsMultipleScenes</key>
    <false/>
    <key>UISceneConfigurations</key>
    <dict>
        <key>UIWindowSceneSessionRoleApplication</key>
        <array>
            <dict>
                <key>UISceneConfigurationName</key>
                <string>Default Configuration</string>
                <key>UISceneDelegateClassName</key>
                <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
            </dict>
        </array>
    </dict>
</dict>

然后创建 SceneDelegate,把窗口创建逻辑从 AppDelegate 迁移过来:

代码语言:Swift
复制
import UIKit

class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options: UIScene.ConnectionOptions) {
        guard let windowScene = scene as? UIWindowScene else { return }
        window = UIWindow(windowScene: windowScene)
        window?.rootViewController = ViewController() // 换成你的根控制器
        window?.makeKeyAndVisible()
    }
}

最后清理 AppDelegate,移除 window 属性和窗口创建代码,并添加 Scene 回调:

代码语言:Swift
复制
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
    return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}

如果是 SwiftUI 项目,直接确保使用 @main + App 协议即可,SwiftUI 会自动处理 Scene 生命周期。

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档