Files
navi/ios/README.md
T
M4andCursor 7ceb3a5148
ci / test (macos-latest) (push) Waiting to run
ci / test (ubuntu-latest) (push) Waiting to run
ci / test (windows-latest) (push) Waiting to run
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>
2026-08-01 22:46:32 +03:00

64 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)