[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)
{
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<ALTAnisetteData, Error>) -> Void)
{
guard let proxy = self.xpcConnection.remoteObjectProxyWithErrorHandler({ (error) in