Xcode 11 运行 iOS 13.0 以下的设备黑屏 解决方法

问题:

在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会出现黑屏现象。

原因:

Xcode 11 默认是会创建通过 UIScene 管理多个 UIWindow 的应用,工程中除了 AppDelegate 外会多一个 SceneDelegate
AppDelegate和SceneDeleg[图片上传中...(企业微信截图_a35946e8-a826-45d1-abfc-e30bc3635f89.png-cfdbce-1574855530169-0)]
te这是iPadOS带来的新的多窗口支持的结果,并且有效地将应用程序委托的工作分成两部分。OS13之后, AppDelegate不再控制生命周期 I生命周期时间就开始由UISceneDelegate接管


企业微信截图_2bdaad98-3f13-4182-9a1d-ea749de4b88b.png

解决步骤:

1 删除掉info.plist中Application Scene Manifest选项,同时,文件SceneDelegate可删除可不删


企业微信截图_a35946e8-a826-45d1-abfc-e30bc3635f89.png

2 在 AppDelegate 中 相关SceneSession代码注释掉 或者 在代码后添加 API_AVAILABLE(ios(13.0))

3 Appdelegate新增windows属性

object-C:


企业微信截图_b51a25b4-766c-4fe3-b997-1a88c317fae4.png

swift:


企业微信截图_e9bf4f8b-c4c1-4078-8b68-e92e74df2f88.png

你可能感兴趣的:(Xcode 11 运行 iOS 13.0 以下的设备黑屏 解决方法)