Refactor to eliminate hardcoded identifiers

Read package identifier and app group ID from Info.plist at runtime
via AppConfiguration. This enables SFM.System to use TeamID-prefixed
app group format required by macOS Sequoia, fixing the privacy prompt
when accessing app group data.
This commit is contained in:
世界
2026-01-03 02:46:52 +08:00
parent 64e2ece819
commit 81d6827334
21 changed files with 118 additions and 41 deletions
+3 -3
View File
@@ -4,7 +4,7 @@ import NetworkExtension
@MainActor
public class ExtensionProfile: ObservableObject {
public static let controlKind = "io.nekohasekai.sfavt.widget.ServiceToggle"
public static let controlKind = AppConfiguration.widgetControlKind
private let manager: NEVPNManager
private var connection: NEVPNConnection
@@ -162,9 +162,9 @@ public class ExtensionProfile: ObservableObject {
manager.localizedDescription = Variant.applicationName
let tunnelProtocol = NETunnelProviderProtocol()
if Variant.useSystemExtension {
tunnelProtocol.providerBundleIdentifier = "\(FilePath.packageName).system"
tunnelProtocol.providerBundleIdentifier = AppConfiguration.systemExtensionBundleID
} else {
tunnelProtocol.providerBundleIdentifier = "\(FilePath.packageName).extension"
tunnelProtocol.providerBundleIdentifier = AppConfiguration.extensionBundleID
}
tunnelProtocol.serverAddress = "sing-box"
manager.protocolConfiguration = tunnelProtocol