UIWindowSceneSessionRoleApplication 的 Info.plist 配置“(无名称)”

Saz*_*han 2 xcode ios ios13

我收到以下警告,应用程序显示黑屏 iOS 13

UIWindowSceneSessionRoleApplication 的[SceneConfiguration]Info.plist配置“(无名称)”包含 UISceneDelegateClassName 键,但无法加载名为MyApp.SceneDelegate 的类。

我该如何解决这个问题?

Raj*_*esh 9

如果除了默认场景之外没有使用任何自定义场景,请从 Info.plist 中删除“UISceneClassName”。

<key>UISceneClassName</key>
<string></string>
Run Code Online (Sandbox Code Playgroud)


Hit*_*esh 6

SceneDelegate在 iOS 13 之后支持。如果你想SceneDelegate在 iOS 13 之前使用并支持 iOS,那么你必须在你的项目中做一些改变。

SceneDelegate如果 iOS 13 可用,则执行。

代码:

@available(iOS 13.0, *)

class SceneDelegate: UIResponder, UIWindowSceneDelegate {
   //Other code
}


@available(iOS 13.0, *)
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {

}
Run Code Online (Sandbox Code Playgroud)

在 AppDelegate.swift 中添加 UIWindow 对象

class AppDelegate: UIResponder, UIApplicationDelegate {    
    var window: UIWindow?
}
Run Code Online (Sandbox Code Playgroud)

对于 iOS 12 及更早版本

AppDelegate 需要一个 UIWindow 属性。iOS 13 在新项目中使用 SceneDelegate。指定UIWindow对象并删除 SceneDelegate.swift文件。

如果您已经SceneDelegate从项目中删除了 ,那么您必须从 Info.plist 中删除Application Scene Manifest 字典