parent
4124ff5cae
commit
fbc6ece59d
|
@ -12,14 +12,15 @@
|
|||
0E7E3D6B2B9345FD002BBDB4 /* PassepartoutApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E7E3D5F2B9345FD002BBDB4 /* PassepartoutApp.swift */; };
|
||||
0E94EE582B93554B00588243 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E7E3D672B9345FD002BBDB4 /* PacketTunnelProvider.swift */; };
|
||||
0EB08B982CA46F4900A02591 /* AppPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0EB08B962CA46F4900A02591 /* AppPlist.strings */; };
|
||||
0EBE80DA2BF55C0E00E36A20 /* AppLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = 0EBE80D92BF55C0E00E36A20 /* AppLibrary */; };
|
||||
0EBE80DC2BF55C0E00E36A20 /* TunnelLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = 0EBE80DB2BF55C0E00E36A20 /* TunnelLibrary */; };
|
||||
0EC066D12C7DC47600D88A94 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0EC066D02C7DC47600D88A94 /* LaunchScreen.storyboard */; platformFilter = ios; };
|
||||
0EC332CA2B8A1808000B9C2F /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0EC332C92B8A1808000B9C2F /* NetworkExtension.framework */; };
|
||||
0EC332D22B8A1808000B9C2F /* PassepartoutTunnel.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 0EC332C82B8A1808000B9C2F /* PassepartoutTunnel.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
0EC797422B9378E000C093B7 /* Shared+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797402B9378E000C093B7 /* Shared+App.swift */; };
|
||||
0EC797422B9378E000C093B7 /* Shared+AppUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797402B9378E000C093B7 /* Shared+AppUI.swift */; };
|
||||
0EC797432B9378E000C093B7 /* Shared.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797412B9378E000C093B7 /* Shared.swift */; };
|
||||
0EC797442B93790600C093B7 /* Shared.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC797412B9378E000C093B7 /* Shared.swift */; };
|
||||
0EC9C0232CA5BD0B00C52954 /* AppUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0EC9C0222CA5BD0B00C52954 /* AppUI */; };
|
||||
0EC9C0282CA5C04500C52954 /* Shared+AppLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC9C0272CA5C04500C52954 /* Shared+AppLibrary.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
@ -61,8 +62,9 @@
|
|||
0EC066D02C7DC47600D88A94 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
0EC332C82B8A1808000B9C2F /* PassepartoutTunnel.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PassepartoutTunnel.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
0EC332C92B8A1808000B9C2F /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; };
|
||||
0EC797402B9378E000C093B7 /* Shared+App.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Shared+App.swift"; sourceTree = "<group>"; };
|
||||
0EC797402B9378E000C093B7 /* Shared+AppUI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Shared+AppUI.swift"; sourceTree = "<group>"; };
|
||||
0EC797412B9378E000C093B7 /* Shared.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Shared.swift; sourceTree = "<group>"; };
|
||||
0EC9C0272CA5C04500C52954 /* Shared+AppLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Shared+AppLibrary.swift"; sourceTree = "<group>"; };
|
||||
0ED1EFDA2C33059600CBD9BD /* App.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = App.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
|
@ -80,7 +82,7 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
0EBE80DA2BF55C0E00E36A20 /* AppLibrary in Frameworks */,
|
||||
0EC9C0232CA5BD0B00C52954 /* AppUI in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -143,7 +145,8 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
0EC797412B9378E000C093B7 /* Shared.swift */,
|
||||
0EC797402B9378E000C093B7 /* Shared+App.swift */,
|
||||
0EC9C0272CA5C04500C52954 /* Shared+AppLibrary.swift */,
|
||||
0EC797402B9378E000C093B7 /* Shared+AppUI.swift */,
|
||||
);
|
||||
path = Shared;
|
||||
sourceTree = "<group>";
|
||||
|
@ -179,7 +182,7 @@
|
|||
);
|
||||
name = Passepartout;
|
||||
packageProductDependencies = (
|
||||
0EBE80D92BF55C0E00E36A20 /* AppLibrary */,
|
||||
0EC9C0222CA5BD0B00C52954 /* AppUI */,
|
||||
);
|
||||
productName = PassepartoutKit;
|
||||
productReference = 0E06D18F2B87629100176E1D /* Passepartout.app */;
|
||||
|
@ -213,7 +216,7 @@
|
|||
isa = PBXProject;
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = 1;
|
||||
LastSwiftUpdateCheck = 1520;
|
||||
LastSwiftUpdateCheck = 1540;
|
||||
LastUpgradeCheck = 1540;
|
||||
TargetAttributes = {
|
||||
0E06D18E2B87629100176E1D = {
|
||||
|
@ -290,8 +293,9 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
0E7C3CCD2C9AF44600B72E69 /* AppDelegate.swift in Sources */,
|
||||
0EC9C0282CA5C04500C52954 /* Shared+AppLibrary.swift in Sources */,
|
||||
0E7E3D6B2B9345FD002BBDB4 /* PassepartoutApp.swift in Sources */,
|
||||
0EC797422B9378E000C093B7 /* Shared+App.swift in Sources */,
|
||||
0EC797422B9378E000C093B7 /* Shared+AppUI.swift in Sources */,
|
||||
0EC797432B9378E000C093B7 /* Shared.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -499,7 +503,7 @@
|
|||
INFOPLIST_FILE = Passepartout/App/App.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Davide De Rosa. All rights reserved.";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = dummy;
|
||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
||||
|
@ -541,7 +545,7 @@
|
|||
INFOPLIST_FILE = Passepartout/App/App.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Davide De Rosa. All rights reserved.";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = dummy;
|
||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
|
||||
"INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
|
||||
|
@ -576,6 +580,9 @@
|
|||
CODE_SIGN_ENTITLEMENTS = Passepartout/Tunnel/Tunnel.entitlements;
|
||||
CURRENT_PROJECT_VERSION = 3633;
|
||||
INFOPLIST_FILE = Passepartout/Tunnel/Tunnel.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../../Frameworks",
|
||||
|
@ -603,6 +610,9 @@
|
|||
CODE_SIGN_ENTITLEMENTS = Passepartout/Tunnel/Tunnel.entitlements;
|
||||
CURRENT_PROJECT_VERSION = 3633;
|
||||
INFOPLIST_FILE = Passepartout/Tunnel/Tunnel.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../Frameworks";
|
||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
||||
MARKETING_VERSION = 3.0.0;
|
||||
|
@ -662,14 +672,14 @@
|
|||
isa = XCSwiftPackageProductDependency;
|
||||
productName = TunnelLibrary;
|
||||
};
|
||||
0EBE80D92BF55C0E00E36A20 /* AppLibrary */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = AppLibrary;
|
||||
};
|
||||
0EBE80DB2BF55C0E00E36A20 /* TunnelLibrary */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = TunnelLibrary;
|
||||
};
|
||||
0EC9C0222CA5BD0B00C52954 /* AppUI */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
productName = AppUI;
|
||||
};
|
||||
/* End XCSwiftPackageProductDependency section */
|
||||
};
|
||||
rootObject = 0E06D1872B87629100176E1D /* Project object */;
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
{
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "dtfoundation",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/Cocoanetics/DTFoundation.git",
|
||||
"state" : {
|
||||
"revision" : "76062513434421cb6c8a1ae1d4f8368a7ebc2da3",
|
||||
"version" : "1.7.18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "kvitto",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/Cocoanetics/Kvitto",
|
||||
"state" : {
|
||||
"revision" : "88888674d772ddcf19671159ed0022cb0bc37be2",
|
||||
"version" : "1.0.6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "openssl-apple",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/passepartoutvpn/openssl-apple",
|
||||
"state" : {
|
||||
"revision" : "0edc07c7a0e4ec2ca0f448dd68314241ccc925b3",
|
||||
"version" : "3.2.107"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "passepartoutkit",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "git@github.com:passepartoutvpn/passepartoutkit",
|
||||
"state" : {
|
||||
"revision" : "2c32459d6a669e8feed0e6ea2d1250ef72364aa3",
|
||||
"version" : "0.7.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "passepartoutkit-openvpn-openssl",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "git@github.com:passepartoutvpn/passepartoutkit-openvpn-openssl",
|
||||
"state" : {
|
||||
"revision" : "a3092a6ee0a63f666aa47ef3f0f50c324a64598d",
|
||||
"version" : "0.6.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "passepartoutkit-wireguard-go",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "git@github.com:passepartoutvpn/passepartoutkit-wireguard-go",
|
||||
"state" : {
|
||||
"revision" : "2cbd6023300d2dcc3f6f68de4812cf390421ec35",
|
||||
"version" : "0.6.2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "wg-go-apple",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/passepartoutvpn/wg-go-apple",
|
||||
"state" : {
|
||||
"revision" : "860e82efaf261da37483a5f51555be83e5a79ad3",
|
||||
"version" : "0.0.20240714"
|
||||
}
|
||||
},
|
||||
{
|
||||
"identity" : "wireguard-apple",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/passepartoutvpn/wireguard-apple",
|
||||
"state" : {
|
||||
"revision" : "a896f784bc5ed94f29d97e376be5cfa08d4a5d44",
|
||||
"version" : "1.1.1"
|
||||
}
|
||||
}
|
||||
],
|
||||
"version" : 2
|
||||
}
|
|
@ -37,16 +37,16 @@
|
|||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Editor</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Alternate</string>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>ovpn</string>
|
||||
<string>conf</string>
|
||||
<string>zip</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Editor</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Alternate</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import AppUI
|
||||
import CommonLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
|
@ -57,7 +57,7 @@ struct PassepartoutApp: App {
|
|||
to: Constants.shared.urlForAppLog,
|
||||
parameters: Constants.shared.log
|
||||
)
|
||||
AppLibrary.configure(with: context)
|
||||
AppUI.configure(with: context)
|
||||
}
|
||||
.themeLockScreen()
|
||||
.environmentObject(theme)
|
||||
|
|
7
Passepartout/Library/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
Passepartout/Library/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
|
@ -4,7 +4,8 @@
|
|||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1540"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES"
|
||||
buildArchitectures = "Automatic">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "AppUI"
|
||||
BuildableName = "AppUI"
|
||||
BlueprintName = "AppUI"
|
||||
ReferencedContainer = "container:">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
shouldAutocreateTestPlan = "YES">
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "AppUI"
|
||||
BuildableName = "AppUI"
|
||||
BlueprintName = "AppUI"
|
||||
ReferencedContainer = "container:">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -15,23 +15,23 @@ let package = Package(
|
|||
// Products define the executables and libraries a package produces, making them visible to other packages.
|
||||
.library(
|
||||
name: "AppLibrary",
|
||||
targets: ["AppLibrary"]
|
||||
),
|
||||
.library(
|
||||
name: "AppUI",
|
||||
targets: [
|
||||
"AppLibrary",
|
||||
"AppDataProfiles"
|
||||
"AppDataProfiles",
|
||||
"AppUI"
|
||||
]
|
||||
),
|
||||
.library(
|
||||
name: "TunnelLibrary",
|
||||
targets: ["TunnelLibrary"]
|
||||
),
|
||||
.library(
|
||||
name: "UtilsLibrary",
|
||||
targets: ["UtilsLibrary"]
|
||||
targets: ["CommonLibrary"]
|
||||
)
|
||||
],
|
||||
dependencies: [
|
||||
.package(url: "git@github.com:passepartoutvpn/passepartoutkit", from: "0.7.0"),
|
||||
// .package(url: "git@github.com:passepartoutvpn/passepartoutkit", revision: "d4f25ecfbcd00dbb6f08de18eda6e0cefbcc379d"),
|
||||
// .package(url: "git@github.com:passepartoutvpn/passepartoutkit", from: "0.7.0"),
|
||||
.package(url: "git@github.com:passepartoutvpn/passepartoutkit", revision: "2d7e0210d8754664ce45528d50c1a1e6a36ad27c"),
|
||||
// .package(path: "../../../passepartoutkit"),
|
||||
.package(url: "git@github.com:passepartoutvpn/passepartoutkit-openvpn-openssl", from: "0.6.0"),
|
||||
// .package(path: "../../../passepartoutkit-openvpn-openssl"),
|
||||
|
@ -64,8 +64,13 @@ let package = Package(
|
|||
dependencies: [
|
||||
"AppData",
|
||||
"CommonLibrary",
|
||||
"Kvitto"
|
||||
],
|
||||
"Kvitto",
|
||||
"UtilsLibrary"
|
||||
]
|
||||
),
|
||||
.target(
|
||||
name: "AppUI",
|
||||
dependencies: ["AppLibrary"],
|
||||
resources: [
|
||||
.process("Resources")
|
||||
]
|
||||
|
@ -75,23 +80,22 @@ let package = Package(
|
|||
dependencies: [
|
||||
.product(name: "PassepartoutKit", package: "passepartoutkit"),
|
||||
.product(name: "PassepartoutOpenVPNOpenSSL", package: "passepartoutkit-openvpn-openssl"),
|
||||
.product(name: "PassepartoutWireGuardGo", package: "passepartoutkit-wireguard-go"),
|
||||
"UtilsLibrary",
|
||||
.product(name: "PassepartoutWireGuardGo", package: "passepartoutkit-wireguard-go")
|
||||
],
|
||||
resources: [
|
||||
.process("Resources")
|
||||
]
|
||||
),
|
||||
.target(
|
||||
name: "TunnelLibrary",
|
||||
dependencies: ["CommonLibrary"]
|
||||
),
|
||||
.target(
|
||||
name: "UtilsLibrary"
|
||||
),
|
||||
.testTarget(
|
||||
name: "AppLibraryTests",
|
||||
dependencies: ["AppLibrary"]
|
||||
),
|
||||
.testTarget(
|
||||
name: "AppUITests",
|
||||
dependencies: ["AppUI"]
|
||||
)
|
||||
]
|
||||
)
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class ProfileManager: ObservableObject {
|
|||
private var subscriptions: Set<AnyCancellable>
|
||||
|
||||
// for testing/previews
|
||||
init(profiles: [Profile]) {
|
||||
public init(profiles: [Profile]) {
|
||||
didSave = PassthroughSubject()
|
||||
self.profiles = profiles.sorted {
|
||||
$0.name.lowercased() < $1.name.lowercased()
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
//
|
||||
// Shared.swift
|
||||
// Passepartout
|
||||
//
|
||||
// Created by Davide De Rosa on 8/11/24.
|
||||
// Copyright (c) 2024 Davide De Rosa. All rights reserved.
|
||||
//
|
||||
// https://github.com/passepartoutvpn
|
||||
//
|
||||
// This file is part of Passepartout.
|
||||
//
|
||||
// Passepartout is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Passepartout is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import PassepartoutKit
|
||||
import PassepartoutWireGuardGo
|
||||
import UtilsLibrary
|
||||
|
||||
extension LoggerDestination {
|
||||
public static let app = Self(category: "app")
|
||||
}
|
||||
|
||||
extension WireGuard.Configuration.Builder {
|
||||
public static var `default`: Self {
|
||||
.init(keyGenerator: StandardWireGuardKeyGenerator())
|
||||
}
|
||||
}
|
||||
|
||||
extension CoreDataPersistentStoreLogger where Self == DefaultCoreDataPersistentStoreLogger {
|
||||
public static var `default`: CoreDataPersistentStoreLogger {
|
||||
DefaultCoreDataPersistentStoreLogger()
|
||||
}
|
||||
}
|
||||
|
||||
public struct DefaultCoreDataPersistentStoreLogger: CoreDataPersistentStoreLogger {
|
||||
public func debug(_ msg: String) {
|
||||
pp_log(.app, .info, msg)
|
||||
}
|
||||
|
||||
public func warning(_ msg: String) {
|
||||
pp_log(.app, .error, msg)
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// AppLibrary.swift
|
||||
// AppUI.swift
|
||||
// Passepartout
|
||||
//
|
||||
// Created by Davide De Rosa on 7/31/24.
|
||||
|
@ -26,7 +26,7 @@
|
|||
import Foundation
|
||||
import PassepartoutKit
|
||||
|
||||
public struct AppLibrary {
|
||||
public struct AppUI {
|
||||
private init() {
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ public struct AppLibrary {
|
|||
}
|
||||
}
|
||||
|
||||
private extension AppLibrary {
|
||||
private extension AppUI {
|
||||
static func assertMissingModuleImplementations() {
|
||||
ModuleType.allCases.forEach { moduleType in
|
||||
let module = moduleType.newModule()
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import Combine
|
||||
import CommonLibrary
|
||||
import Foundation
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import Combine
|
||||
import CommonLibrary
|
||||
import Foundation
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import Foundation
|
||||
import PassepartoutKit
|
||||
import UtilsLibrary
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import Foundation
|
||||
import PassepartoutKit
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import Foundation
|
||||
import PassepartoutKit
|
||||
|
|
@ -24,6 +24,7 @@
|
|||
//
|
||||
|
||||
import AppData
|
||||
import AppLibrary
|
||||
import Combine
|
||||
import Foundation
|
||||
import PassepartoutKit
|
|
@ -23,11 +23,12 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import CommonLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
|
||||
public struct AdvancedRouterView: View {
|
||||
struct AdvancedRouterView: View {
|
||||
|
||||
@Environment(\.dismiss)
|
||||
var dismiss
|
||||
|
@ -37,7 +38,7 @@ public struct AdvancedRouterView: View {
|
|||
@State
|
||||
var navigationRoute: NavigationRoute?
|
||||
|
||||
public init(tunnel: Tunnel) {
|
||||
init(tunnel: Tunnel) {
|
||||
self.tunnel = tunnel
|
||||
}
|
||||
}
|
|
@ -29,7 +29,7 @@ import CommonLibrary
|
|||
import SwiftUI
|
||||
|
||||
extension AdvancedRouterView {
|
||||
public var body: some View {
|
||||
var body: some View {
|
||||
NavigationStack {
|
||||
AdvancedView(
|
||||
identifiers: Constants.shared.identifiers,
|
|
@ -29,7 +29,7 @@ import CommonLibrary
|
|||
import SwiftUI
|
||||
|
||||
extension AdvancedRouterView {
|
||||
public var body: some View {
|
||||
var body: some View {
|
||||
NavigationSplitView {
|
||||
AdvancedView(
|
||||
identifiers: Constants.shared.identifiers,
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import CommonLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
import UtilsLibrary
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
|
|
@ -23,8 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import CommonLibrary
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
import UtilsLibrary
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
import UtilsLibrary
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
import UtilsLibrary
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
#if os(iOS)
|
||||
|
||||
import CommonLibrary
|
||||
import SwiftUI
|
||||
import UIKit
|
||||
import UtilsLibrary
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
#if os(macOS)
|
||||
|
||||
import CommonLibrary
|
||||
import SwiftUI
|
||||
|
||||
extension ReportIssueButton: View {
|
|
@ -23,6 +23,7 @@
|
|||
// along with Passepartout. If not, see <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
import UtilsLibrary
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#if os(iOS)
|
||||
|
||||
import AppLibrary
|
||||
import PassepartoutKit
|
||||
import SwiftUI
|
||||
import UtilsLibrary
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue