feat: adds shortcut action Version 1.0.1

This commit is contained in:
se2crid
2025-12-06 16:27:56 +01:00
parent 3f56d1f35a
commit 456fb72ae6
2 changed files with 49 additions and 2 deletions

View File

@@ -420,6 +420,7 @@
DEVELOPMENT_TEAM = 42Q7QX86GV; DEVELOPMENT_TEAM = 42Q7QX86GV;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
INFOPLIST_KEY_CFBundleDisplayName = LocalDevVPN; INFOPLIST_KEY_CFBundleDisplayName = LocalDevVPN;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INFOPLIST_KEY_NSHumanReadableCopyright = "Coxson Engineering"; INFOPLIST_KEY_NSHumanReadableCopyright = "Coxson Engineering";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
@@ -430,7 +431,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.0; MARKETING_VERSION = 1.0.1;
PRODUCT_BUNDLE_IDENTIFIER = com.jkcoxson.LocalDevVPN; PRODUCT_BUNDLE_IDENTIFIER = com.jkcoxson.LocalDevVPN;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -456,6 +457,7 @@
DEVELOPMENT_TEAM = 42Q7QX86GV; DEVELOPMENT_TEAM = 42Q7QX86GV;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
INFOPLIST_KEY_CFBundleDisplayName = LocalDevVPN; INFOPLIST_KEY_CFBundleDisplayName = LocalDevVPN;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INFOPLIST_KEY_NSHumanReadableCopyright = "Coxson Engineering"; INFOPLIST_KEY_NSHumanReadableCopyright = "Coxson Engineering";
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
@@ -466,7 +468,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.0; MARKETING_VERSION = 1.0.1;
PRODUCT_BUNDLE_IDENTIFIER = com.jkcoxson.LocalDevVPN; PRODUCT_BUNDLE_IDENTIFIER = com.jkcoxson.LocalDevVPN;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -490,6 +492,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "$(TUNNEL_BUNDLE_IDENTIFIER)"; PRODUCT_BUNDLE_IDENTIFIER = "$(TUNNEL_BUNDLE_IDENTIFIER)";
"PRODUCT_BUNDLE_IDENTIFIER[sdk=appletvos*]" = com.jkcoxson.LocalDevVPN.TunnelProv; "PRODUCT_BUNDLE_IDENTIFIER[sdk=appletvos*]" = com.jkcoxson.LocalDevVPN.TunnelProv;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.jkcoxson.LocalDevVPN.TunnelProv; "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.jkcoxson.LocalDevVPN.TunnelProv;
@@ -515,6 +518,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = "$(TUNNEL_BUNDLE_IDENTIFIER)"; PRODUCT_BUNDLE_IDENTIFIER = "$(TUNNEL_BUNDLE_IDENTIFIER)";
"PRODUCT_BUNDLE_IDENTIFIER[sdk=appletvos*]" = com.jkcoxson.LocalDevVPN.TunnelProv; "PRODUCT_BUNDLE_IDENTIFIER[sdk=appletvos*]" = com.jkcoxson.LocalDevVPN.TunnelProv;
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.jkcoxson.LocalDevVPN.TunnelProv; "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.jkcoxson.LocalDevVPN.TunnelProv;

View File

@@ -0,0 +1,43 @@
//
// VPNShortcuts.swift
// LocalDevVPN
//
// Created by se2crid on 7/12/2025.
//
import Foundation
import NetworkExtension
#if canImport(AppIntents)
import AppIntents
@available(iOS 16.0, *)
struct StartLocalDevVPNIntent: AppIntent {
static var title: LocalizedStringResource = "Start LocalDevVPN"
static var description = IntentDescription("Connects LocalDevVPN without launching the app.")
static var openAppWhenRun = false
@MainActor
func perform() async throws -> some IntentResult {
TunnelManager.shared.startVPN()
return .result()
}
}
@available(iOS 16.0, *)
struct LocalDevVPNActions: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: StartLocalDevVPNIntent(),
phrases: [
"Start \(.applicationName)",
"Connect to \(.applicationName)",
"Enable \(.applicationName)"
],
shortTitle: "Start VPN",
systemImageName: "lock.shield"
)
}
}
#endif