File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 " )
You can’t perform that action at this time.
0 commit comments