diff --git a/IntentsExtension/Info.plist b/IntentsExtension/Info.plist deleted file mode 100644 index 8d15acbedf902db7cb324d94085826755da15a44..0000000000000000000000000000000000000000 --- 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 7f00471914dd206185a31966074bd29594085e2d..0000000000000000000000000000000000000000 --- 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 4ea1b1c7febf3084a1f5c3cdab77277725eaa86f..0000000000000000000000000000000000000000 --- 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 40f0c0eb6f37b892b7de8fd0fcb2303e780fd350..0000000000000000000000000000000000000000 --- 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 87df598246f377a78b6c8de59777d662540d6e8c..c8a29d855f71d7e34c7f5949f285cb0c2c02863f 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 Binary files a/sing-box.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate and b/sing-box.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate differ