
Официальный VPN-клиент для iOS и macOS, обеспечивающий шифрованное туннелирование, безопасное хранение учётных данных, автоматическую настройку сервера и поддержку популярных VPN-протоколов.
Авторское право (c) 2025 Proton Technologies AG
Этот проект использует Swift Package Manager для всех своих зависимостей. Позвольте Xcode разрешить пакеты перед запуском любой цели.
git submodule init + git submodule update)brew bundleCmd+Shift+K)Для сборки проекта требуется набор секретов. Они включают URL-адреса и ключи и хранятся в файлах с именем ObfuscatedConstants.swift. Эти файлы хранятся в отдельном репозитории, что требует некоторых дополнительных действий для поддержания синхронизации.
Сначала запустите скрипт, расположенный в Integration/Scripts/credentials.sh, с командой setup. Укажите путь, по которому вы хотите клонировать репозиторий секретов локально, с помощью аргумента -p, и URL репозитория с помощью аргумента -r.
./Integration/Scripts/credentials.sh setup -p <path to credentials repo> -r <credentials remote>
Затем, чтобы убедиться, что настройка прошла успешно:
./Integration/Scripts/credentials.sh checkout
При правильной настройке обфусцированные константы будут автоматически синхронизироваться во время фазы сборки Generate Obfuscated Constants каждого приложения.
Проект упакован по слоям, чтобы избежать ада модульных зависимостей:
Добавления нового кода/функций в LegacyCommon и NEHelper следует по возможности избегать. Эти пакеты следует постепенно разбирать, чтобы разместить их компоненты в новых/существующих пакетах из трёх указанных выше категорий.
Во время разработки swiftlint запускается в нестрогом режиме, чтобы легче было разрабатывать, не беспокоясь о форматировании кода. На CI проверка строгая и завершится ошибкой при любом предупреждении. Перед фиксацией кода в этом репозитории выполните следующий скрипт, чтобы добавить pre-commit хук, который будет проверять все новые/изменённые файлы в строгом режиме и помешает вам зафиксировать код, который не пройдёт CI.
./Integration/Scripts/pre_commit_lint.sh setup
Приложение использует SwiftGen для генерации файла Localizable.strings для доступа ко всем строкам приложения, хранящимся в стандартных файлах Localizable.strings. Просто добавьте новую строку в пакет Strings и выполните команду swiftgen в каталоге, где определён swiftgen.yml.
Код и файлы данных в этом дистрибутиве лицензируются на условиях GPLv3, опубликованной Free Software Foundation. Копию этой лицензии см. на https://www.gnu.org/licenses/.
Авторское право (c) 2025 Proton Technologies AG