Skip to content

Commit 497fc46

Browse files
committed
fix: helper versions
(cherry picked from commit 451bb09)
1 parent 5f02272 commit 497fc46

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

ClashX/General/Managers/PrivilegedHelperManager.swift

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,21 @@ final class PrivilegedHelperManager {
256256
Logger.log("check helper status fail")
257257
return .noFound
258258
}
259-
260-
guard FileManager.default.fileExists(atPath: "/Library/PrivilegedHelperTools/\(PrivilegedHelperManager.machServiceName)") else {
259+
260+
let helperInstalledURL = helperInstalledURL()
261+
262+
if FileManager.default.fileExists(atPath: helperInstalledURL.path) {
263+
if let info = CFBundleCopyInfoDictionaryForURL(helperInstalledURL as CFURL) as? [String: Any],
264+
let version = info["CFBundleShortVersionString"] as? String,
265+
version == helperVersion {
266+
Logger.log("helper version CFBundleShortVersionString \(version)", level: .debug)
267+
} else {
268+
return .needUpdate
269+
}
270+
} else {
261271
return .noFound
262272
}
263-
273+
264274
let timeout: TimeInterval = 15
265275
let time = Date()
266276
return await withTaskGroup(of: HelperStatus.self, returning: HelperStatus.self) { group in
@@ -312,6 +322,10 @@ final class PrivilegedHelperManager {
312322
private func helperBundleURL() -> URL {
313323
Bundle.main.bundleURL.appendingPathComponent("Contents/Library/LaunchServices/" + PrivilegedHelperManager.machServiceName)
314324
}
325+
326+
private func helperInstalledURL() -> URL {
327+
URL(fileURLWithPath: "/Library/PrivilegedHelperTools/\(PrivilegedHelperManager.machServiceName)")
328+
}
315329

316330
private func launchDaemonPlistURL() -> URL {
317331
URL(fileURLWithPath: "/Library/LaunchDaemons/\(PrivilegedHelperManager.machServiceName).plist")

0 commit comments

Comments
 (0)