Шаблон в Xcode 11 использует делегата сцены. Делегаты сцены и связанные классы являются новыми в iOS 13; они не существуют в iOS 12 и ранее, и процесс запуска отличается.
Чтобы сделать проект, сгенерированный из шаблона приложения Xcode 11, обратно совместимым, необходимо пометить весь класс SceneDelegate и любые методы в классе AppDelegate, которые ссылаются на UISceneSession, как @available(iOS 13.0, *)
.
Вам также необходимо объявить свойство window
в классе AppDelegate (если вы этого не сделаете, приложение запустится и запустится, но экран будет черным):
var window : UIWindow?
В результате, когда это приложение работает в iOS 13, делегат сцены имеет window
, но когда он запускается в iOS 12 или более ранней версии, делегат приложения имеет window
- и тогда вашему другому коду может понадобиться учитывать , что для обеспечения обратной совместимости.