iOS 13 / Facebook SDK ошибка «Невозможно найти допустимое окно UIWindow» - PullRequest
0 голосов
/ 29 октября 2019

(Чтобы предотвратить правильные предложения, да, я разместил этот вопрос на прошлой неделе на форуме разработчиков Facebook. Ответов пока нет.)

TL; DR

FacebookSDK 5.8 жалуется при запуске FBSDKLog: Unable to find a valid UIWindow.

Основная история

В проекте Xcode 11 / iOS 13 с одним просмотром больше не существует. UIWindow элемент по умолчанию, связанный с приложением. (Окно само по себе все еще существует; вы можете увидеть его, содержащееся в UIWindowScene, используя отладчик View Hierarchy в XCode или приложение Reveal.)

FBSDK 5.8 делаеткажется, что iOS-13-осведомлен, и смотрит на это. Соответствующий код находится в строке 498

https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m.

Код Facebook перебирает элемент приложения connectedScenes, что для меня является пустым набором. Как мне изменить мой код так, чтобы FBSDK находил окно?

Немного взлома

Я попытался добавить следующее к scene(_:willConnectTo:options:), но, похоже, слишком поздно -сообщение FBSDKLog к тому времени уже появилось. (Так что я колеблюсь ...)

guard let s = (scene as? UIWindowScene) else { return }
self.window = UIWindow(windowScene: s)

Следующее тоже не удалось, но это был просто выстрел в темноте:

guard let s = (scene as? UIWindowScene) else { return }
self.window = UIWindow(frame: s.coordinateSpace.bounds)
self.window?.windowScene = s
self.window?.rootViewController = ViewController(nibName: nil, bundle: nil)
self.window?.makeKeyAndVisible()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...