Release 3.8.2.13: iOS Packet Tunnel client and Clash URL subscriptions.
Add SwiftUI + Network Extension (LibXray/hev), parse Clash Meta YAML from subscription URLs into vless/trojan/hy2 share links, keep the selected server on connect, and ship Navis-3.8.2.13.ipa with versioned changelog. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Navis iOS
|
||||
|
||||
Клиент по модели **macOS Manager**: ядро поднимает SOCKS `:1080` / HTTP `:1081`, трафик в туннель через **hev → SOCKS** (вместо `networksetup`).
|
||||
|
||||
Версия: **3.8.2+13**
|
||||
|
||||
## Что работает
|
||||
|
||||
| Протокол | Статус |
|
||||
|----------|--------|
|
||||
| VLESS / VMess / Trojan | Да — LibXray + конфиг как `internal/protocols/xray` |
|
||||
| Hysteria2 | Конфиг готов (`Hy2ConfigBuilder`); runtime ждёт единый NavisCore (второй Go-runtime нельзя рядом с LibXray) |
|
||||
| Naive / AWG | Нет (как ограничения iOS / следующий этап) |
|
||||
|
||||
## Требования
|
||||
|
||||
- Xcode 16+
|
||||
- `scripts/fetch-ios-cores.sh` → `ios/Vendor/` (LibXray + HevSocks5Tunnel)
|
||||
- Apple Developer Team для установки на устройство
|
||||
- App IDs + App Group `group.win.evilfox.navis` + Network Extension (Packet Tunnel)
|
||||
|
||||
## Сборка
|
||||
|
||||
```bash
|
||||
./scripts/fetch-ios-cores.sh # один раз / при обновлении ядер
|
||||
NAVIS_IOS_SKIP_SIMULATOR=1 ./scripts/build-ios.sh
|
||||
|
||||
# Подписанный IPA:
|
||||
export NAVIS_IOS_TEAM_ID=XXXXXXXXXX
|
||||
./scripts/build-ios.sh
|
||||
```
|
||||
|
||||
Артефакты: `dist/navis-release/ios/Navis-<version>.ipa` (без Team — unsigned, подпишите сами).
|
||||
|
||||
Или Xcode → `ios/Navis.xcodeproj` → Team → Run / Archive.
|
||||
|
||||
## Архитектура
|
||||
|
||||
1. App пишет URI в App Group + `providerConfiguration` → `startVPNTunnel`
|
||||
2. `PacketTunnelProvider`: сначала LibXray/Hy2 → SOCKS `:1080`, затем маршруты (IP сервера в exclude)
|
||||
3. `hev_socks5_tunnel_main(utun_fd)` → `127.0.0.1:1080`
|
||||
|
||||
## Bundle IDs
|
||||
|
||||
| Target | ID |
|
||||
|--------|-----|
|
||||
| Navis | `win.evilfox.navis` |
|
||||
| NavisTunnel | `win.evilfox.navis.tunnel` |
|
||||
|
||||
## История версий (iOS)
|
||||
|
||||
- **3.8.2+13**
|
||||
- Clash Meta YAML-подписки → vless / trojan / hysteria2 share-URI (не JSON)
|
||||
- Фильтр ложных naive (`Qure@master` в path иконок)
|
||||
- Выбор сервера не подменяется на «первый»; hy2/naive помечены как недоступные
|
||||
- Надёжная передача URI: App Group file + `providerConfiguration` + options
|
||||
- Старт Xray до `setTunnelNetworkSettings`, exclude IP прокси (без routing loop)
|
||||
- Кнопка «Отключить» во время подключения; бейдж версии `x.y.z.build`
|
||||
- `build-ios.sh` читает версию из `update.go`; IPA: `Navis-3.8.2.13.ipa`
|
||||
- **3.8.2+12 (каркас iOS в ветке до bump)**
|
||||
- SwiftUI + Packet Tunnel stub → полный путь LibXray + hev
|
||||
- XrayConfigBuilder / Hy2ConfigBuilder по модели macOS
|
||||
- fetch-ios-cores.sh (LibXray, HevSocks5Tunnel)
|
||||
Reference in New Issue
Block a user