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

2.8 KiB
Raw Blame History

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.shios/Vendor/ (LibXray + HevSocks5Tunnel)
  • Apple Developer Team для установки на устройство
  • App IDs + App Group group.win.evilfox.navis + Network Extension (Packet Tunnel)

Сборка

./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 + providerConfigurationstartVPNTunnel
  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)