問題:
在Xcode 11 創(chuàng)建的工程穆役,運行設(shè)備選擇 iOS 13.0 以下的設(shè)備少欺,運行應(yīng)用時會出現(xiàn)黑屏現(xiàn)象冶共。
原因:
Xcode 11 默認是會創(chuàng)建通過 UIScene 管理多個 UIWindow 的應(yīng)用瑟枫,工程中除了 AppDelegate 外會多一個 SceneDelegate
AppDelegate和SceneDeleg[圖片上傳中...(企業(yè)微信截圖_a35946e8-a826-45d1-abfc-e30bc3635f89.png-cfdbce-1574855530169-0)]
te這是iPadOS帶來的新的多窗口支持的結(jié)果祖乳,并且有效地將應(yīng)用程序委托的工作分成兩部分遥皂。OS13之后力喷, AppDelegate不再控制生命周期 I生命周期時間就開始由UISceneDelegate接管
企業(yè)微信截圖_2bdaad98-3f13-4182-9a1d-ea749de4b88b.png
解決步驟:
1 刪除掉info.plist中Application Scene Manifest選項,同時演训,文件SceneDelegate可刪除可不刪
企業(yè)微信截圖_a35946e8-a826-45d1-abfc-e30bc3635f89.png
2 在 AppDelegate 中 相關(guān)SceneSession代碼注釋掉 或者 在代碼后添加 API_AVAILABLE(ios(13.0))
3 Appdelegate新增windows屬性
object-C:
企業(yè)微信截圖_b51a25b4-766c-4fe3-b997-1a88c317fae4.png
swift:
企業(yè)微信截圖_e9bf4f8b-c4c1-4078-8b68-e92e74df2f88.png