From eac35ef8f449a5bfe9560896c2339a924cb63fde Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Mon, 4 Oct 2021 13:21:24 -0700 Subject: [PATCH] [AltServer] Fixes fetching anisette data on macOS 10.14 Mojave AltXPC does not work on Mojave, so only attempt it on macOS 10.15 Catalina or later. --- AltServer/AnisetteDataManager.swift | 38 ++++++++++++++++++----------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/AltServer/AnisetteDataManager.swift b/AltServer/AnisetteDataManager.swift index b5c26afb..a54cf02f 100644 --- a/AltServer/AnisetteDataManager.swift +++ b/AltServer/AnisetteDataManager.swift @@ -53,22 +53,31 @@ class AnisetteDataManager: NSObject func requestAnisetteData(_ completion: @escaping (Result) -> Void) { - self.requestAnisetteDataFromXPCService { (result) in - do - { - let anisetteData = try result.get() - completion(.success(anisetteData)) - } - catch CocoaError.xpcConnectionInterrupted - { - // SIP and/or AMFI are not disabled, so fall back to Mail plug-in. - self.requestAnisetteDataFromPlugin { (result) in - completion(result) + if #available(macOS 10.15, *) + { + self.requestAnisetteDataFromXPCService { (result) in + do + { + let anisetteData = try result.get() + completion(.success(anisetteData)) + } + catch CocoaError.xpcConnectionInterrupted + { + // SIP and/or AMFI are not disabled, so fall back to Mail plug-in. + self.requestAnisetteDataFromPlugin { (result) in + completion(result) + } + } + catch + { + completion(.failure(error)) } } - catch - { - completion(.failure(error)) + } + else + { + self.requestAnisetteDataFromPlugin { (result) in + completion(result) } } } @@ -87,6 +96,7 @@ class AnisetteDataManager: NSObject private extension AnisetteDataManager { + @available(macOS 10.15, *) func requestAnisetteDataFromXPCService(completion: @escaping (Result) -> Void) { guard let proxy = self.xpcConnection.remoteObjectProxyWithErrorHandler({ (error) in