Я работаю на Catalina Beta 2 и использую Xcode 11 Beta 2. Я создал и создал шаблон проекта SwiftUI по умолчанию, и он отлично загружается. Затем я открыл небольшой проект, который я создал в Xcode 10, используя раскадровки и скопировал и скопировал настройки из шаблона проекта Apple.
Все выглядит одинаково в приложении, Info.plist, настройках, делегате приложения, делегате сцены и т. Д., И я много раз просматривал его, пытаясь понять, что не так.
Вот мой текущий делегат приложения:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
let config = UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
return config // <<<<< Breakpoint !!!!
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
}
}
В шаблонном проекте Apple это работает, а в моем - нет.
Остановившись на моей точке останова, я вижу, что connectingSceneSession
и загруженная конфигурация проигнорировали детали сцены в Info.plist
. Вместо этого создается конфигурация по умолчанию с делегатом нулевой сцены и ролью внешнего дисплея.
Действительно странная вещь в том, что если я выполню:
po UISceneConfiguration(name: "Default Configuration", sessionRole: .applicationWindow)
В консоли отладки она загружает сцену из Info.plist
именно так, как я и ожидал.
Суть проблемы, по-видимому, заключается в том, что приложение не работает, см. Определение сцены в Info.plist
и вместо этого возвращается новая сцена внешнего дисплея. Даже после того, как я попытался заменить приложение Info.plist
на приложение из примера Apple.
Кто-нибудь понял, что может происходить?