From d7d29f0fd319892b435d38ce0b92953916f5d130 Mon Sep 17 00:00:00 2001 From: George <george.makhoul@kuwaitnet.com> Date: Mon, 22 Jul 2024 12:35:34 +0300 Subject: [PATCH] remove intenseExtensio --- IntentsExtension/Info.plist | 11 - IntentsExtension/Intents.swift | 198 ------------------ .../IntentsExtension.entitlements | 14 -- IntentsExtension/IntentsExtension.swift | 4 - sing-box.xcodeproj/project.pbxproj | 176 ---------------- .../UserInterfaceState.xcuserstate | Bin 49633 -> 48774 bytes 6 files changed, 403 deletions(-) delete mode 100644 IntentsExtension/Info.plist delete mode 100644 IntentsExtension/Intents.swift delete mode 100644 IntentsExtension/IntentsExtension.entitlements delete mode 100644 IntentsExtension/IntentsExtension.swift diff --git a/IntentsExtension/Info.plist b/IntentsExtension/Info.plist deleted file mode 100644 index 8d15acb..0000000 --- a/IntentsExtension/Info.plist +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>EXAppExtensionAttributes</key> - <dict> - <key>EXExtensionPointIdentifier</key> - <string>com.apple.appintents-extension</string> - </dict> -</dict> -</plist> diff --git a/IntentsExtension/Intents.swift b/IntentsExtension/Intents.swift deleted file mode 100644 index 7f00471..0000000 --- a/IntentsExtension/Intents.swift +++ /dev/null @@ -1,198 +0,0 @@ -import AppIntents -import Foundation -import Libbox -import Library - -struct StartServiceIntent: AppIntent { - public static var title: LocalizedStringResource = "Start sing-box" - - static var description = - IntentDescription("Start or reload sing-box servie with specified profile") - - static var parameterSummary: some ParameterSummary { - Summary("Start sing-box service with profile \(\.$profile).") - } - - @Parameter(title: "Profile", optionsProvider: ProfileProvider()) - var profile: String - - func perform() async throws -> some IntentResult { - guard let extensionProfile = try await (ExtensionProfile.load()) else { - throw NSError(domain: "NetworkExtension not installed", code: 0) - } - let profileList = try await ProfileManager.list() - let specifiedProfile = profileList.first { $0.name == profile } - var profileChanged = false - if let specifiedProfile { - let specifiedProfileID = specifiedProfile.mustID - if await SharedPreferences.selectedProfileID.get() != specifiedProfileID { - await SharedPreferences.selectedProfileID.set(specifiedProfileID) - profileChanged = true - } - } else if profile != "default" { - throw NSError(domain: "Specified profile not found: \(profile)", code: 0) - } - if extensionProfile.status == .connected { - if !profileChanged { - return .result() - } - try LibboxNewStandaloneCommandClient()!.serviceReload() - } else if extensionProfile.status.isConnected { - try await extensionProfile.stop() - try await Task.sleep(nanoseconds: UInt64(100 * Double(NSEC_PER_MSEC))) - try await extensionProfile.start() - } else { - try await extensionProfile.start() - } - return .result() - } -} - -struct RestartServiceIntent: AppIntent { - static var title: LocalizedStringResource = "Restart sing-box" - - static var description = - IntentDescription("Restart sing-box service") - - static var parameterSummary: some ParameterSummary { - Summary("Restart sing-box service") - } - - func perform() async throws -> some IntentResult { - guard let extensionProfile = try await (ExtensionProfile.load()) else { - return .result() - } - if extensionProfile.status == .connected { - try LibboxNewStandaloneCommandClient()!.serviceReload() - } else if extensionProfile.status.isConnected { - try await extensionProfile.stop() - try await Task.sleep(nanoseconds: UInt64(100 * Double(NSEC_PER_MSEC))) - try await extensionProfile.start() - } else { - try await extensionProfile.start() - } - return .result() - } -} - -struct StopServiceIntent: AppIntent { - static var title: LocalizedStringResource = "Stop sing-box" - - static var description = - IntentDescription("Stop sing-box service") - - static var parameterSummary: some ParameterSummary { - Summary("Stop sing-box service") - } - - func perform() async throws -> some IntentResult { - guard let extensionProfile = try await (ExtensionProfile.load()) else { - return .result() - } - try await extensionProfile.stop() - return .result() - } -} - -struct ToggleServiceIntent: AppIntent { - static var title: LocalizedStringResource = "Toggle sing-box" - - static var description = - IntentDescription("Toggle sing-box service") - - static var parameterSummary: some ParameterSummary { - Summary("Toggle sing-box service") - } - - func perform() async throws -> some IntentResult & ReturnsValue<Bool> { - guard let extensionProfile = try await (ExtensionProfile.load()) else { - return .result(value: false) - } - if extensionProfile.status.isConnected { - try await extensionProfile.stop() - return .result(value: false) - - } else { - try await extensionProfile.start() - return .result(value: true) - } - } -} - -struct GetServiceStatus: AppIntent { - static var title: LocalizedStringResource = "Get is sing-box service started" - - static var description = - IntentDescription("Get is sing-box service started") - - static var parameterSummary: some ParameterSummary { - Summary("Get is sing-box service started") - } - - func perform() async throws -> some IntentResult & ReturnsValue<Bool> { - guard let extensionProfile = try await (ExtensionProfile.load()) else { - return .result(value: false) - } - return .result(value: extensionProfile.status.isConnected) - } -} - -struct GetCurrentProfile: AppIntent { - static var title: LocalizedStringResource = "Get current sing-box profile" - - static var description = - IntentDescription("Get current sing-box profile") - - static var parameterSummary: some ParameterSummary { - Summary("Get current sing-box profile") - } - - func perform() async throws -> some IntentResult & ReturnsValue<String> { - guard let profile = try await ProfileManager.get(SharedPreferences.selectedProfileID.get()) else { - throw NSError(domain: "No profile selected", code: 0) - } - return .result(value: profile.name) - } -} - -struct UpdateProfileIntent: AppIntent { - static var title: LocalizedStringResource = "Update sing-box profile" - - static var description = - IntentDescription("Update specified sing-box profile") - - static var parameterSummary: some ParameterSummary { - Summary("Update sing-box profile \(\.$profile).") - } - - @Parameter(title: "Profile", optionsProvider: RemoteProfileProvider()) - var profile: String - - init() {} - func perform() async throws -> some IntentResult { - guard let profile = try await ProfileManager.get(by: profile) else { - throw NSError(domain: "Specified profile not found: \(profile)", code: 0) - } - if profile.type != .remote { - throw NSError(domain: "Specified profile is not a remote profile", code: 0) - } - try await profile.updateRemoteProfile() - return .result() - } -} - -class ProfileProvider: DynamicOptionsProvider { - func results() async throws -> [String] { - var profileNames = try await ProfileManager.list().map(\.name) - if !profileNames.contains("default") { - profileNames.insert("default", at: 0) - } - return profileNames - } -} - -class RemoteProfileProvider: DynamicOptionsProvider { - func results() async throws -> [String] { - try await ProfileManager.listRemote().map(\.name) - } -} diff --git a/IntentsExtension/IntentsExtension.entitlements b/IntentsExtension/IntentsExtension.entitlements deleted file mode 100644 index 4ea1b1c..0000000 --- a/IntentsExtension/IntentsExtension.entitlements +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>com.apple.security.app-sandbox</key> - <true/> - <key>com.apple.security.application-groups</key> - <array> - <string>group.io.nekohasekai.sfabeino</string> - </array> - <key>com.apple.security.network.client</key> - <true/> -</dict> -</plist> diff --git a/IntentsExtension/IntentsExtension.swift b/IntentsExtension/IntentsExtension.swift deleted file mode 100644 index 40f0c0e..0000000 --- a/IntentsExtension/IntentsExtension.swift +++ /dev/null @@ -1,4 +0,0 @@ -import AppIntents - -@main -struct IntentsExtension: AppIntentsExtension {} diff --git a/sing-box.xcodeproj/project.pbxproj b/sing-box.xcodeproj/project.pbxproj index 87df598..c8a29d8 100644 --- a/sing-box.xcodeproj/project.pbxproj +++ b/sing-box.xcodeproj/project.pbxproj @@ -20,11 +20,9 @@ 3A22235A2A6E212A00C50B23 /* SystemExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A2223592A6E212A00C50B23 /* SystemExtension.swift */; }; 3A27D9002A89BE230031EBCC /* CommandClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A27D8FF2A89BE230031EBCC /* CommandClient.swift */; }; 3A27D9022A89C6870031EBCC /* ExtensionEnvironments.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A27D9012A89C6870031EBCC /* ExtensionEnvironments.swift */; }; - 3A3AA7FC2A4EFDAE002F78AB /* Library.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AEC211D2A459B4700A63465 /* Library.framework */; }; 3A3AA7FF2A4EFDB3002F78AB /* Library.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AEC211D2A459B4700A63465 /* Library.framework */; }; 3A3AB2A72B70C146001815AE /* CoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A3AB2A62B70C146001815AE /* CoreView.swift */; }; 3A3AB2A92B70C5F1001815AE /* RequestReviewButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A3AB2A82B70C5F1001815AE /* RequestReviewButton.swift */; }; - 3A3DEBEB2A4FFE2D00373BF4 /* AppIntents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3A3DEBE62A4FFA6000373BF4 /* AppIntents.framework */; }; 3A411CEC2B734959000D9501 /* MacAppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A411CEB2B734959000D9501 /* MacAppView.swift */; }; 3A44BB822A4DC28700E4C9F8 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A44BB812A4DC28700E4C9F8 /* MainView.swift */; }; 3A4A020D2B53E3DC004EFB87 /* QRCode in Frameworks */ = {isa = PBXBuildFile; productRef = 3A4A020C2B53E3DC004EFB87 /* QRCode */; }; @@ -60,12 +58,9 @@ 3A648D542A4EF4C700D95A12 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AF342B12A4AA520002B34AC /* NetworkExtension.framework */; }; 3A6CA4542BC19FDE0012B238 /* OnDemandRulesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A6CA4532BC19FDE0012B238 /* OnDemandRulesView.swift */; }; 3A76504C2A4F08BA003945C5 /* Libbox.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AEC20DB2A4599D000A63465 /* Libbox.xcframework */; }; - 3A7701702A4E6B34008F031F /* IntentsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A77016F2A4E6B34008F031F /* IntentsExtension.swift */; }; - 3A7701722A4E6B34008F031F /* Intents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7701712A4E6B34008F031F /* Intents.swift */; }; 3A7904502B6E7BAC006C08D5 /* SponsorsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A79044F2B6E7BAC006C08D5 /* SponsorsView.swift */; }; 3A7E90352A46756300D53052 /* SharedPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A7E90342A46756300D53052 /* SharedPreferences.swift */; }; 3A7E90382A46778E00D53052 /* BinaryCodable in Frameworks */ = {isa = PBXBuildFile; productRef = 3A7E90372A46778E00D53052 /* BinaryCodable */; }; - 3A8655142A4FA26600B7181F /* IntentsExtension.appex in Embed ExtensionKit Extensions */ = {isa = PBXBuildFile; fileRef = 3A77016D2A4E6B34008F031F /* IntentsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 3A9144D92A46AE370036E9AD /* ShadredPreferences+Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A9144D82A46AE370036E9AD /* ShadredPreferences+Database.swift */; }; 3A9759202A4EB69C00E4404B /* Library.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3AEC211D2A459B4700A63465 /* Library.framework */; }; 3A9759212A4EB69C00E4404B /* Library.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3AEC211D2A459B4700A63465 /* Library.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -135,20 +130,6 @@ remoteGlobalIDString = 3AEC211C2A459B4700A63465; remoteInfo = Library; }; - 3A77017D2A4E6B5E008F031F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3AEC20BD2A45991900A63465 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3AEC211C2A459B4700A63465; - remoteInfo = Library; - }; - 3A8655152A4FA26600B7181F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 3AEC20BD2A45991900A63465 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3A77016C2A4E6B34008F031F; - remoteInfo = IntentsExtension; - }; 3AEAEE9A2A4F16430059612D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 3AEC20BD2A45991900A63465 /* Project object */; @@ -183,7 +164,6 @@ dstPath = "$(EXTENSIONS_FOLDER_PATH)"; dstSubfolderSpec = 16; files = ( - 3A8655142A4FA26600B7181F /* IntentsExtension.appex in Embed ExtensionKit Extensions */, ); name = "Embed ExtensionKit Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -239,11 +219,6 @@ 3A60CC2A2B70AD6700D2D682 /* SettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingView.swift; sourceTree = "<group>"; }; 3A648D2C2A4EEAA600D95A12 /* Library.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Library.swift; sourceTree = "<group>"; }; 3A6CA4532BC19FDE0012B238 /* OnDemandRulesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnDemandRulesView.swift; sourceTree = "<group>"; }; - 3A77016D2A4E6B34008F031F /* IntentsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.extensionkit-extension"; includeInIndex = 0; path = IntentsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 3A77016F2A4E6B34008F031F /* IntentsExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentsExtension.swift; sourceTree = "<group>"; }; - 3A7701712A4E6B34008F031F /* Intents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Intents.swift; sourceTree = "<group>"; }; - 3A7701732A4E6B34008F031F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 3A7701802A4E71F5008F031F /* IntentsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = IntentsExtension.entitlements; sourceTree = "<group>"; }; 3A79044F2B6E7BAC006C08D5 /* SponsorsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SponsorsView.swift; sourceTree = "<group>"; }; 3A7E90302A46745A00D53052 /* ViewBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewBuilder.swift; sourceTree = "<group>"; }; 3A7E90342A46756300D53052 /* SharedPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedPreferences.swift; sourceTree = "<group>"; }; @@ -323,15 +298,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3A77016A2A4E6B34008F031F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3A3DEBEB2A4FFE2D00373BF4 /* AppIntents.framework in Frameworks */, - 3A3AA7FC2A4EFDAE002F78AB /* Library.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3AEC20F02A459AB400A63465 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -397,17 +363,6 @@ path = Service; sourceTree = "<group>"; }; - 3A77016E2A4E6B34008F031F /* IntentsExtension */ = { - isa = PBXGroup; - children = ( - 3A7701802A4E71F5008F031F /* IntentsExtension.entitlements */, - 3A77016F2A4E6B34008F031F /* IntentsExtension.swift */, - 3A7701712A4E6B34008F031F /* Intents.swift */, - 3A7701732A4E6B34008F031F /* Info.plist */, - ); - path = IntentsExtension; - sourceTree = "<group>"; - }; 3AA1ABB62A4C401A000FD4BA /* Log */ = { isa = PBXGroup; children = ( @@ -460,7 +415,6 @@ 3AEC211E2A459B4700A63465 /* Library */, 3A4EAD112A4FEAE6005435B3 /* ApplicationLibrary */, 3A096F882A4ED3DE00D4A2ED /* Extension */, - 3A77016E2A4E6B34008F031F /* IntentsExtension */, 3AEC20C72A45991900A63465 /* Products */, 3AEC21012A459AE300A63465 /* Frameworks */, ); @@ -471,7 +425,6 @@ children = ( 3AEC20F32A459AB400A63465 /* sing-box.app */, 3AEC211D2A459B4700A63465 /* Library.framework */, - 3A77016D2A4E6B34008F031F /* IntentsExtension.appex */, 3A096F862A4ED3DE00D4A2ED /* Extension.appex */, 3A4EAD102A4FEAE6005435B3 /* ApplicationLibrary.framework */, ); @@ -672,23 +625,6 @@ productReference = 3A4EAD102A4FEAE6005435B3 /* ApplicationLibrary.framework */; productType = "com.apple.product-type.framework"; }; - 3A77016C2A4E6B34008F031F /* IntentsExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3A7701772A4E6B34008F031F /* Build configuration list for PBXNativeTarget "IntentsExtension" */; - buildPhases = ( - 3A7701692A4E6B34008F031F /* Sources */, - 3A77016A2A4E6B34008F031F /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 3A77017E2A4E6B5E008F031F /* PBXTargetDependency */, - ); - name = IntentsExtension; - productName = IntentsExtension; - productReference = 3A77016D2A4E6B34008F031F /* IntentsExtension.appex */; - productType = "com.apple.product-type.extensionkit-extension"; - }; 3AEC20F22A459AB400A63465 /* SFI */ = { isa = PBXNativeTarget; buildConfigurationList = 3AEC20FE2A459AB500A63465 /* Build configuration list for PBXNativeTarget "SFI" */; @@ -706,7 +642,6 @@ 3AEC21382A459E0A00A63465 /* PBXTargetDependency */, 3A44BB7F2A4DC1D800E4C9F8 /* PBXTargetDependency */, 3AEAEE9B2A4F16430059612D /* PBXTargetDependency */, - 3A8655162A4FA26600B7181F /* PBXTargetDependency */, 3A4EAD3A2A4FEC20005435B3 /* PBXTargetDependency */, ); name = SFI; @@ -756,9 +691,6 @@ CreatedOnToolsVersion = 15.0; LastSwiftMigration = 1500; }; - 3A77016C2A4E6B34008F031F = { - CreatedOnToolsVersion = 15.0; - }; 3AEC20F22A459AB400A63465 = { CreatedOnToolsVersion = 15.0; }; @@ -792,7 +724,6 @@ 3AEC211C2A459B4700A63465 /* Library */, 3A4EAD0F2A4FEAE6005435B3 /* ApplicationLibrary */, 3A096F852A4ED3DE00D4A2ED /* Extension */, - 3A77016C2A4E6B34008F031F /* IntentsExtension */, ); }; /* End PBXProject section */ @@ -885,15 +816,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3A7701692A4E6B34008F031F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3A7701702A4E6B34008F031F /* IntentsExtension.swift in Sources */, - 3A7701722A4E6B34008F031F /* Intents.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 3AEC20EF2A459AB400A63465 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -962,16 +884,6 @@ target = 3AEC211C2A459B4700A63465 /* Library */; targetProxy = 3A76504A2A4F07F6003945C5 /* PBXContainerItemProxy */; }; - 3A77017E2A4E6B5E008F031F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3AEC211C2A459B4700A63465 /* Library */; - targetProxy = 3A77017D2A4E6B5E008F031F /* PBXContainerItemProxy */; - }; - 3A8655162A4FA26600B7181F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 3A77016C2A4E6B34008F031F /* IntentsExtension */; - targetProxy = 3A8655152A4FA26600B7181F /* PBXContainerItemProxy */; - }; 3AEAEE9B2A4F16430059612D /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 3A096F852A4ED3DE00D4A2ED /* Extension */; @@ -1147,85 +1059,6 @@ }; name = Release; }; - 3A7701782A4E6B34008F031F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = IntentsExtension/IntentsExtension.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = Z7STA3KGEU; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = IntentsExtension/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = IntentsExtension; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - "@executable_path/../../../../Frameworks", - ); - LINK_WITH_STANDARD_LIBRARIES = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - OTHER_CODE_SIGN_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfabeino.intents; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - REEXPORTED_LIBRARY_PATHS = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 3A7701792A4E6B34008F031F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_ENTITLEMENTS = IntentsExtension/IntentsExtension.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = Z7STA3KGEU; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = IntentsExtension/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = IntentsExtension; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - "@executable_path/../../../../Frameworks", - ); - LINK_WITH_STANDARD_LIBRARIES = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - OTHER_CODE_SIGN_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = io.nekohasekai.sfabeino.intents; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - REEXPORTED_LIBRARY_PATHS = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; - SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; 3AEC20CB2A45991900A63465 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1555,15 +1388,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3A7701772A4E6B34008F031F /* Build configuration list for PBXNativeTarget "IntentsExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3A7701782A4E6B34008F031F /* Debug */, - 3A7701792A4E6B34008F031F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 3AEC20C02A45991900A63465 /* Build configuration list for PBXProject "sing-box" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/sing-box.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate b/sing-box.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate index 7d5ccac0cd7878c0167c17be64c107b2a2fa0666..25989602c32c70bae385f62ea55e06b46826c31d 100644 GIT binary patch delta 12590 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 YMzTk8CjRN9q%`ryzE8Y=JxB8X4_}N_pa1{> delta 13123 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 auvlTag7xLsRg#Lz*OnIjwf%No!TvwkeaTq> -- GitLab