[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.
This commit is contained in:
Riley Testut
2021-10-04 13:21:24 -07:00
parent e9eee50b3e
commit eac35ef8f4

View File

@@ -53,22 +53,31 @@ class AnisetteDataManager: NSObject
func requestAnisetteData(_ completion: @escaping (Result<ALTAnisetteData, Error>) -> Void) func requestAnisetteData(_ completion: @escaping (Result<ALTAnisetteData, Error>) -> Void)
{ {
self.requestAnisetteDataFromXPCService { (result) in if #available(macOS 10.15, *)
do {
{ self.requestAnisetteDataFromXPCService { (result) in
let anisetteData = try result.get() do
completion(.success(anisetteData)) {
} let anisetteData = try result.get()
catch CocoaError.xpcConnectionInterrupted completion(.success(anisetteData))
{ }
// SIP and/or AMFI are not disabled, so fall back to Mail plug-in. catch CocoaError.xpcConnectionInterrupted
self.requestAnisetteDataFromPlugin { (result) in {
completion(result) // 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 }
{ else
completion(.failure(error)) {
self.requestAnisetteDataFromPlugin { (result) in
completion(result)
} }
} }
} }
@@ -87,6 +96,7 @@ class AnisetteDataManager: NSObject
private extension AnisetteDataManager private extension AnisetteDataManager
{ {
@available(macOS 10.15, *)
func requestAnisetteDataFromXPCService(completion: @escaping (Result<ALTAnisetteData, Error>) -> Void) func requestAnisetteDataFromXPCService(completion: @escaping (Result<ALTAnisetteData, Error>) -> Void)
{ {
guard let proxy = self.xpcConnection.remoteObjectProxyWithErrorHandler({ (error) in guard let proxy = self.xpcConnection.remoteObjectProxyWithErrorHandler({ (error) in