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:
@@ -13,13 +13,13 @@ struct MoreView: View {
|
||||
Label {
|
||||
VStack(alignment: .leading) {
|
||||
Text("Setup Guide")
|
||||
Text(appState.isVPNConnected ? "Ready to Intercept" : "Setup Required")
|
||||
Text(setupStatusText)
|
||||
.font(.caption)
|
||||
.foregroundStyle(appState.isVPNConnected ? .green : .orange)
|
||||
.foregroundStyle(setupStatusColor)
|
||||
}
|
||||
} icon: {
|
||||
Image(systemName: "checkmark.shield.fill")
|
||||
.foregroundStyle(appState.isVPNConnected ? .green : .orange)
|
||||
.foregroundStyle(setupStatusColor)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,12 +43,6 @@ struct MoreView: View {
|
||||
Label("Block List", systemImage: "xmark.shield")
|
||||
}
|
||||
|
||||
NavigationLink {
|
||||
BreakpointRulesView()
|
||||
} label: {
|
||||
Label("Breakpoint", systemImage: "pause.circle")
|
||||
}
|
||||
|
||||
NavigationLink {
|
||||
MapLocalView()
|
||||
} label: {
|
||||
@@ -66,6 +60,12 @@ struct MoreView: View {
|
||||
} label: {
|
||||
Label("DNS Spoofing", systemImage: "network")
|
||||
}
|
||||
|
||||
NavigationLink {
|
||||
PinnedDomainsView()
|
||||
} label: {
|
||||
Label("Pinned Domains", systemImage: "pin.slash")
|
||||
}
|
||||
}
|
||||
|
||||
Section("Settings") {
|
||||
@@ -80,8 +80,31 @@ struct MoreView: View {
|
||||
} label: {
|
||||
Label("App Settings", systemImage: "gearshape")
|
||||
}
|
||||
|
||||
NavigationLink {
|
||||
AppLockView()
|
||||
} label: {
|
||||
Label("App Lock", systemImage: "lock.fill")
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationTitle("More")
|
||||
}
|
||||
|
||||
private var setupStatusText: String {
|
||||
if appState.isHTTPSInspectionVerified {
|
||||
return "HTTPS Verified"
|
||||
}
|
||||
if appState.isVPNConnected && appState.hasSharedCertificate {
|
||||
return "Ready to Capture"
|
||||
}
|
||||
return "Setup Required"
|
||||
}
|
||||
|
||||
private var setupStatusColor: Color {
|
||||
if appState.isVPNConnected && appState.hasSharedCertificate {
|
||||
return .green
|
||||
}
|
||||
return .orange
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user