From 6dea81ebd24bcdb3c62ff8d2251a2670cb8b64c5 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sun, 07 Jun 2026 01:13:34 +0800
Subject: [PATCH] Freeze TagLauncher 7.8.15 source recovery
---
Apptag/DataLayer.swift | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/Apptag/DataLayer.swift b/Apptag/DataLayer.swift
index 91fed17..b77bf4c 100644
--- a/Apptag/DataLayer.swift
+++ b/Apptag/DataLayer.swift
@@ -109,6 +109,7 @@
static let searchPaths: [URL] = [
URL(fileURLWithPath: "/Applications"),
URL(fileURLWithPath: "/System/Applications"),
+ URL(fileURLWithPath: "/System/Library/CoreServices/Applications"),
URL(fileURLWithPath: "/System/Cryptexes/App/System/Applications"),
URL(fileURLWithPath: "/System/Volumes/Preboot/Cryptexes/App/System/Applications"),
FileManager.default.homeDirectoryForCurrentUser
@@ -117,6 +118,7 @@
private static let systemAppPathPrefixes = [
"/System/Applications/",
+ "/System/Library/CoreServices/Applications/",
"/System/Cryptexes/App/System/Applications/",
"/System/Volumes/Preboot/Cryptexes/App/System/Applications/"
]
@@ -143,6 +145,16 @@
cachedScanAt = nil
cachedSearchPathSignature = nil
scanCacheLock.unlock()
+ }
+
+ static func shouldRefreshForSearchPathChanges() -> Bool {
+ scanCacheLock.lock()
+ let hasCachedApps = cachedScanApps != nil
+ let cachedSignature = cachedSearchPathSignature
+ scanCacheLock.unlock()
+
+ guard hasCachedApps else { return true }
+ return cachedSignature != currentSearchPathSignature()
}
private static func cachedScanIfFresh(matching searchPathSignature: [SearchPathSignature]) -> [AppInfo]? {
@@ -480,7 +492,7 @@
private static func deduplicationIdentity(for app: AppInfo) -> String {
if let bundleIdentifier = app.bundleIdentifier?.trimmingCharacters(in: .whitespacesAndNewlines),
!bundleIdentifier.isEmpty {
- return "bundle:\(bundleIdentifier.lowercased())"
+ return "bundle:\(bundleIdentifier.lowercased())|name:\(normalizedAppName(app.name))"
}
return "name:\(normalizedAppName(app.name))"
}
--
Gitblit v1.9.3