# 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-.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)