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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容