❗НАМ НУЖНЫ ДЕНЬГИ НА ПУБЛИКАЦИЮ В TESTFLIGHT❗
ETH20 (USDT, USDC, ETH, etc): 0xb0292E226b140F3CC14B83777a09dF6d33Bc8613
BTC: bc1qxj5cxnkeqj3rmhaydj8cfnz7frstl3p6dac7zw
❗НАМ НУЖНЫ ДЕНЬГИ НА ПУБЛИКАЦИЮ В TESTFLIGHT❗
macOS/iOS-клиент Godwit для olcRTC.
- macOS 13 или новее.
- Go.
- Xcode или Command Line Tools для macOS/SwiftPM-сборок.
- Полный Xcode с iOS SDK для iOS-сборок.
gomobile.xcodegen, если нужно пересоздаватьapple/Godwit.xcodeproj.- Sideloadly, если нужно установить неподписанный local-SOCKS IPA на iPhone.
Если Xcode только что установлен:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license acceptКодовая база OlcRTC поставляется отдельно и не хранится внутри этого
репозитория. Для скриптов, которые собирают Go CLI или Mobile.xcframework,
передайте путь к внешнему checkout:
./apple/Scripts/build-xcframework.sh --olcrtc-root /path/to/olcrtcТо же можно задавать через переменную окружения:
OLCRTC_REPO_ROOT=/path/to/olcrtc ./apple/Scripts/build-xcframework.shЕсли запускается цепочка команд через &&, переменную нужно экспортировать
заранее или передавать флаг каждому скрипту:
export OLCRTC_REPO_ROOT=/path/to/olcrtc
./apple/Scripts/build-macos-app.sh && ./apple/Scripts/build-ios-unsigned-local-ipa.shНеподписанная сборка предназначена для local SOCKS режима на реальном iPhone без Network Extension entitlement:
./apple/Scripts/build-ios-unsigned-local-ipa.sh --olcrtc-root /path/to/olcrtcРезультат:
apple/.build/ios-unsigned-local/Godwit-unsigned-local.ipa
Этот IPA собирается с LOCAL_SOCKS_ONLY: в нем остается local SOCKS proxy, но
удаляется Packet Tunnel extension. Поэтому приложение не поднимает системный VPN
и не маршрутизирует весь iOS-трафик само. Системный трафик нужно направлять в
локальный прокси через стороннее приложение, например Happ, указав SOCKS5
127.0.0.1:<port>.
При старте local SOCKS на iOS в Events должно появиться:
iOS background runtime is active for local SOCKS.
-
Установить Sideloadly с официального сайта:
https://sideloadly.io/. -
Подключить iPhone к Mac по USB и нажать Trust/Доверять на телефоне, если iOS спросит.
-
Собрать IPA:
./apple/Scripts/build-ios-unsigned-local-ipa.sh
-
Открыть Sideloadly.
-
Перетащить файл
apple/.build/ios-unsigned-local/Godwit-unsigned-local.ipaв окно Sideloadly или выбрать его через кнопку IPA. -
Выбрать подключенный iPhone в списке устройств.
-
Ввести Apple ID. Для local-SOCKS IPA подходит обычный бесплатный Apple ID. Лучше использовать отдельный Apple ID для sideloading, а не основной.
-
Нажать Start и дождаться завершения установки.
-
На iPhone открыть Settings -> General -> VPN & Device Management и доверить developer profile, связанный с использованным Apple ID.
-
На iOS 16 и новее включить Developer Mode: Settings -> Privacy & Security -> Developer Mode, затем перезагрузить устройство, если iOS попросит.
-
Запустить Godwit на iPhone, выбрать профиль и нажать Start.
-
В Happ или другом приложении для маршрутизации трафика указать SOCKS5 proxy
127.0.0.1:<port>.
Важно:
- Бесплатный Apple ID обычно требует периодической переустановки/обновления sideloaded app.
- Неподписанный local-SOCKS IPA не содержит Packet Tunnel extension.
- Если нужен системный VPN/Packet Tunnel без стороннего маршрутизатора, нужна подписанная сборка с правильными Apple Developer entitlements.
Из корня репозитория:
./apple/Scripts/build-macos-app.sh --olcrtc-root /path/to/olcrtc
open ./apple/.build/Godwit.appСкрипт собирает:
apple/.build/olcrtc-macos: Go CLI helper.apple/.build/Godwit.app: запускаемый macOS app bundle.
При успешном старте в Events должно появиться:
SOCKS proxy is ready at 127.0.0.1:<port>.
System SOCKS proxy enabled for <service> on 127.0.0.1:<port>.
Если приложение было принудительно закрыто, пока системный SOCKS-прокси macOS включен:
networksetup -setsocksfirewallproxystate "Wi-Fi" offПодписанная сборка нужна для полной VPN/Packet Tunnel версии. Для нее нужен
Apple Developer Team и provisioning profiles с Network Extension
packet-tunnel-provider entitlement для обоих iOS targets:
OlcRTCClient iOSOlcRTCPacketTunnel
IPA для разработки:
DEVELOPMENT_TEAM=ABCDE12345 \
EXPORT_METHOD=development \
./apple/Scripts/build-ios-ipa.sh --olcrtc-root /path/to/olcrtcAd-hoc IPA:
DEVELOPMENT_TEAM=ABCDE12345 \
EXPORT_METHOD=ad-hoc \
./apple/Scripts/build-ios-ipa.sh --olcrtc-root /path/to/olcrtcПоддерживаемые значения EXPORT_METHOD:
developmentad-hocapp-storeenterprise
Скрипт пишет архив и экспортированный IPA сюда:
apple/.build/ios-archive/
apple/.build/ios-ipa/
Для тестирования с реального iPhone через Xcode:
open ./apple/Godwit.xcodeprojВ Xcode нужно настроить signing для обоих targets:
OlcRTCClient iOSOlcRTCPacketTunnel
Используемые bundle IDs:
community.openlibre.olcrtc.ios
community.openlibre.olcrtc.ios.PacketTunnel
Если bundle IDs меняются, extension bundle ID должен начинаться с bundle ID основного приложения.
- Детали структуры проекта, XcodeGen и ограничения: docs/dev.md.
- Формат профилей и подписок описан в
docs/sub.mdиdocs/uri.mdвнешнего репозитория OlcRTC.