7.2 KiB
7.2 KiB
iOS VPN Setup Checklist (Personal Use)
Этот чеклист закрывает именно 3 пункта:
- Добавить и настроить
PacketTunneltarget в Xcode. - Настроить
Bundle ID,App Group,Signing,Network Extension. - Подключить
Libbox.xcframeworkи установить pod-зависимости.
0) Перед началом
- Работай на macOS с установленным Xcode.
- Открой проект:
ios/Runner.xcworkspace(неRunner.xcodeproj). - Убедись, что у тебя есть Apple Developer Team (желательно paid account).
1) Добавить PacketTunnel target в Xcode
1.1 Создание target
- В Xcode открой
Runner.xcworkspace. - В левом навигаторе выбери синий проект
Runner. - В разделе
TARGETSнажми+. - Выбери шаблон:
Network Extension->Packet Tunnel Provider. - Name:
PacketTunnel. - Language:
Swift. - Нажми
Finish. - Если Xcode спросит
Activate scheme?->Activate.
1.2 Привязка существующих файлов из репозитория
В проекте уже подготовлены файлы:
ios/PacketTunnel/PacketTunnelProvider.swiftios/PacketTunnel/Info.plistios/PacketTunnel/PacketTunnel.entitlements
Сделай так:
- Если Xcode создал свои дефолтные файлы в PacketTunnel target, удали их из target (можно
Remove Reference). - Перетащи в Xcode папку
ios/PacketTunnel/из Finder. - В диалоге добавления включи:
Copy items if needed: off (файлы уже в репо),Add to targets: PacketTunnel.
- Проверь
Target MembershipуPacketTunnelProvider.swift-> толькоPacketTunnel.
1.3 Embed extension в Runner
- Выбери target
Runner->General. - Найди секцию
Frameworks, Libraries, and Embedded Content. - Убедись, что
PacketTunnel.appexдобавлен какEmbed & Sign.
Если не добавлен:
Runner->Build Phases.- В
Embed App Extensionsнажми+. - Добавь
PacketTunnel.appex.
2) Настроить IDs, Signing, App Group, Capabilities
Важно:
RunnerиPacketTunnelдолжны быть на одной Team и с совместимыми entitlement.
2.1 Bundle Identifier
Рекомендуемый формат:
- Runner:
com.yourname.vpn - PacketTunnel:
com.yourname.vpn.PacketTunnel
Шаги:
Runnertarget ->Signing & Capabilities-> выставьBundle Identifier.PacketTunneltarget ->Signing & Capabilities-> выставьBundle Identifier.
2.2 Team и подпись
Для обоих target (Runner, PacketTunnel):
Automatically manage signing-> ON.Team-> одна и та же команда.Signing Certificate/Provisioning Profileдолжны подтянуться автоматически.
2.3 App Group
Для обоих target добавь capability App Groups и одинаковую группу:
group.com.yourname.vpn
Шаги:
Signing & Capabilities->+ Capability->App Groups.- Создай/выбери группу
group.com.yourname.vpn. - Повтори для второго target.
2.4 Network Extension capability
Для обоих target:
+ Capability->Network Extensions.- Тип:
Packet Tunnel.
2.5 Синхронизация build settings (если Xcode не подставил)
Проверь:
Runnerиспользуетios/Runner/Runner.entitlementsPacketTunnelиспользуетios/PacketTunnel/PacketTunnel.entitlementsPacketTunnelиспользуетios/PacketTunnel/Info.plist
Где смотреть:
- Target ->
Build Settings. - Найти
Code Signing Entitlements. - Найти
Info.plist File.
2.6 Значение App Group в plist/entitlements
В проекте уже задано через AppGroupIdentifier и переменные.
Если будут ошибки по group id, можно временно зафиксировать вручную:
- в
Runner.entitlementsиPacketTunnel.entitlementsпоставить literalgroup.com.yourname.vpn.
3) Подключить Libbox.xcframework + pods
3.1 Положить framework
Нужный путь:
ios/Frameworks/Libbox.xcframework
Проверь, что папка действительно называется ровно Libbox.xcframework.
3.2 Установить pods
Из корня проекта:
flutter pub get
cd ios
pod install
Если pod install ругается на framework:
- проверь путь
ios/Frameworks/Libbox.xcframework; - удали кэши и повтори:
cd ios
pod deintegrate
pod install
3.3 Открывать только workspace
После pod install всегда открывай:
ios/Runner.xcworkspace
4) Первый запуск на iPhone
- Подключи iPhone кабелем.
- В Xcode выбери устройство как run destination.
- Собери
Runnerscheme (Cmd + R). - На iPhone подтверди доверие developer certificate (если нужно).
- Дай разрешение на VPN при первом подключении.
5) Быстрый preflight перед каждым запуском
RunnerиPacketTunnelв одной Team.Bundle IDуникальны и корректны.- Оба target имеют
App GroupsиNetwork Extensions. - В
Embed App ExtensionsприсутствуетPacketTunnel.appex. - На месте
ios/Frameworks/Libbox.xcframework. - Проект открыт как
Runner.xcworkspace.
6) Частые ошибки и фиксы
Missing entitlement / permission denied
- Не совпали capabilities между target.
- Неверный provisioning profile.
- App Group не добавлен в оба target.
PacketTunnel.appex missing или не стартует extension
- Не встроен extension в
Runner(Embed App Extensions). - Неверный bundle id extension.
No such module Libbox
- Нет
Libbox.xcframeworkвios/Frameworks/. - Не выполнен
pod install. - Открыт
xcodeproj, а неxcworkspace.
VPN включается, но трафик не идет
- Неверный конфиг/ссылка.
- Проблемы DNS/route в extension.
- Смотри логи Xcode для
PacketTunnelProvider.
7) Что уже подготовлено в этом репозитории
Уже добавлено:
ios/Podfileios/Runner/Runner.entitlementsios/PacketTunnel/Info.plistios/PacketTunnel/PacketTunnel.entitlementsios/PacketTunnel/PacketTunnelProvider.swiftios/Frameworks/README.md- iOS deployment target поднят до 15.0 в
ios/Runner.xcodeproj/project.pbxproj
Тебе осталось довести Xcode-конфиг и положить Libbox.xcframework.