diff --git a/AltStoreCore/Patreon/PatreonAPI.swift b/AltStoreCore/Patreon/PatreonAPI.swift index 31da8653..315003d6 100644 --- a/AltStoreCore/Patreon/PatreonAPI.swift +++ b/AltStoreCore/Patreon/PatreonAPI.swift @@ -417,6 +417,21 @@ extension PatreonAPI: ASWebAuthenticationPresentationContextProviding { public func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor { - return UIApplication.alt_shared?.keyWindow ?? UIWindow() + //TODO: Properly support multiple scenes. + + guard let windowScene = UIApplication.alt_shared?.connectedScenes.lazy.compactMap({ $0 as? UIWindowScene }).first else { return UIWindow() } + + if #available(iOS 15, *), let keyWindow = windowScene.keyWindow + { + return keyWindow + } + else if let delegate = windowScene.delegate as? UIWindowSceneDelegate, + let optionalWindow = delegate.window, + let window = optionalWindow + { + return window + } + + return UIWindow() } }