Skip to content

Commit 0eaddbc

Browse files
feat(ios): full-tunnel VPN app
Validated locally: cargo test --lib (248 passed), bash -n scripts/build-ios.sh, plist lint, ios/project.yml YAML parse, and git diff --check. iOS target cargo check was attempted but blocked locally by missing full Xcode/iPhoneOS SDK.
1 parent f1bc82f commit 0eaddbc

21 files changed

Lines changed: 3860 additions & 26 deletions

.cargo/config.toml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Per-target rustflags for cross-compilation.
2+
#
3+
# iOS staticlib build (aarch64-apple-ios):
4+
# -C panic=abort — propagate abort strategy to all crates so they match the
5+
# [profile.release] panic = "abort" setting in Cargo.toml. Without this,
6+
# leaf-ffi (which has its own staticlib crate-type) links panic_unwind and
7+
# conflicts with our abort-strategy staticlib.
8+
# IPHONEOS_DEPLOYMENT_TARGET=16.0 is required so the linker doesn't default
9+
# to iOS 10 and produce version-mismatch errors with leaf's netstack-lwip C
10+
# objects (which are compiled against the current Xcode SDK).
11+
[target.aarch64-apple-ios]
12+
rustflags = []
13+
14+
[target.aarch64-apple-ios.env]
15+
IPHONEOS_DEPLOYMENT_TARGET = "16.0"
16+
17+
[target.aarch64-apple-ios-sim]
18+
rustflags = []
19+
20+
[target.aarch64-apple-ios-sim.env]
21+
IPHONEOS_DEPLOYMENT_TARGET = "16.0"
22+
23+
[target.x86_64-apple-ios]
24+
rustflags = []
25+
26+
[target.x86_64-apple-ios.env]
27+
IPHONEOS_DEPLOYMENT_TARGET = "16.0"

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,8 @@
44
/config.json
55
.DS_Store
66
/SCR-*.png
7+
8+
# iOS — generated by xcodegen / Xcode, and local signing (never commit team ID)
9+
/ios/MhrvVPN.xcodeproj/
10+
/ios/build/
11+
/ios/Local.xcconfig

0 commit comments

Comments
 (0)