Fix XPC validation
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
#if os(macOS)
|
||||
import Foundation
|
||||
import os
|
||||
import ServiceManagement
|
||||
|
||||
private let logger = Logger(category: "HelperServiceManager")
|
||||
|
||||
public enum HelperServiceManager {
|
||||
private static var rootHelperService: SMAppService {
|
||||
SMAppService.daemon(plistName: "\(AppConfiguration.rootHelperBundleID).plist")
|
||||
@@ -21,5 +24,25 @@
|
||||
public static func unregisterRootHelper() throws {
|
||||
try rootHelperService.unregister()
|
||||
}
|
||||
|
||||
public static func updateRootHelperIfNeeded() async {
|
||||
guard rootHelperStatus == .enabled else { return }
|
||||
|
||||
do {
|
||||
let installedVersion = try RootHelperClient.shared.getVersion()
|
||||
let currentVersion = Bundle.main.version
|
||||
guard currentVersion != installedVersion else { return }
|
||||
} catch {
|
||||
logger.warning("Failed to get root helper version, updating: \(error.localizedDescription)")
|
||||
}
|
||||
|
||||
do {
|
||||
try unregisterRootHelper()
|
||||
try await Task.sleep(for: .seconds(1))
|
||||
try registerRootHelper()
|
||||
} catch {
|
||||
logger.error("Failed to update root helper: \(error.localizedDescription)")
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user