Add iPad support, auto-pinning, and comprehensive logging

- Adaptive iPhone/iPad layout with NavigationSplitView sidebar
- Auto-detect SSL-pinned domains, fall back to passthrough
- Certificate install via local HTTP server (Safari profile flow)
- App Group-backed CA, per-domain leaf cert LRU cache
- DB-backed config repository, Darwin notification throttling
- Rules engine, breakpoint rules, pinned domain tracking
- os.Logger instrumentation across tunnel/proxy/mitm/capture/cert/rules/db/ipc/ui
- Fix dyld framework embed, race conditions, thread safety
This commit is contained in:
Trey t
2026-04-11 12:52:18 -05:00
parent c77e506db5
commit 148bc3887c
77 changed files with 6710 additions and 847 deletions

View File

@@ -6,6 +6,23 @@ options:
xcodeVersion: "26.3"
generateEmptyDirectories: true
schemes:
ProxyApp:
build:
targets:
ProxyApp: all
ProxyCore: all
PacketTunnel: all
run:
config: Debug
executable: ProxyApp
profile:
config: Release
analyze:
config: Debug
archive:
config: Release
settings:
base:
SWIFT_VERSION: "6.0"
@@ -44,8 +61,21 @@ targets:
dependencies:
- target: PacketTunnel
- target: ProxyCore
embed: false
- package: GRDB
- package: SwiftNIO
product: NIOCore
- package: SwiftNIO
product: NIOPosix
- package: SwiftNIOSSL
product: NIOSSL
- package: SwiftNIO
product: NIOHTTP1
- package: SwiftNIOExtras
product: NIOExtras
- package: SwiftCertificates
product: X509
- package: SwiftCrypto
product: Crypto
info:
path: App/Info.plist
properties:
@@ -53,13 +83,19 @@ targets:
UILaunchScreen: {}
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
UISupportedInterfaceOrientations~ipad:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UIApplicationSceneManifest:
UIApplicationSupportsMultipleScenes: false
UIApplicationSupportsMultipleScenes: true
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.treyt.proxyapp
CODE_SIGN_ENTITLEMENTS: App/Entitlements/ProxyApp.entitlements
SWIFT_STRICT_CONCURRENCY: complete
TARGETED_DEVICE_FAMILY: "1,2"
entitlements:
path: App/Entitlements/ProxyApp.entitlements
properties:
@@ -75,7 +111,6 @@ targets:
- path: PacketTunnel
dependencies:
- target: ProxyCore
embed: false
- package: GRDB
- package: SwiftNIO
product: NIOCore
@@ -110,6 +145,10 @@ targets:
ProxyCore:
type: framework
platform: iOS
info:
path: ProxyCore/Info.plist
properties:
CFBundlePackageType: FMWK
sources:
- path: ProxyCore/Sources
dependencies:
@@ -132,3 +171,5 @@ targets:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.treyt.proxyapp.ProxyCore
SWIFT_STRICT_CONCURRENCY: complete
GENERATE_INFOPLIST_FILE: YES
MACH_O_TYPE: staticlib