
Client VPN officiel pour iOS et macOS offrant un tunneling chiffré, un stockage sécurisé des identifiants, une configuration automatisée du serveur et la prise en charge des protocoles VPN populaires.
Copyright (c) 2025 Proton Technologies AG
Ce projet utilise Swift Package Manager pour toutes ses dépendances. Autorisez Xcode à résoudre les packages avant d'exécuter une cible quelconque.
git submodule init + git submodule update)brew bundleCmd+Shift+K)Un ensemble de secrets est requis pour construire le projet.
Ils comprennent des URL et des clés, et sont conservés dans des fichiers nommés ObfuscatedConstants.swift.
Ces fichiers sont conservés dans un dépôt séparé, ce qui nécessite une configuration supplémentaire pour rester synchronisé.
Tout d'abord, appelez le script situé dans Integration/Scripts/credentials.sh avec la commande setup.
Fournissez le chemin où vous souhaitez que le dépôt des secrets soit cloné localement à l'aide de l'argument -p, et l'URL du dépôt à l'aide de l'argument -r.
./Integration/Scripts/credentials.sh setup -p <path to credentials repo> -r <credentials remote>
Ensuite, pour vérifier que la configuration a réussi :
./Integration/Scripts/credentials.sh checkout
Si la configuration est correcte, les constantes obfusquées seront automatiquement synchronisées pendant la phase de construction « Generate Obfuscated Constants » de chaque application.
Le projet est organisé par couches afin d'éviter l'enfer des dépendances de modules :
L'ajout de nouveau code/fonctionnalité à LegacyCommon et NEHelper devrait être évité si possible. Ces paquets devraient être progressivement réduits afin de placer leurs composants dans des paquets nouveaux/existants des trois catégories ci-dessus.
Pendant le développement, swiftlint est exécuté en mode non strict pour qu'il soit plus facile de développer sans se soucier du formatage du code. Sur la CI, le linting est strict et échouera au moindre avertissement. Avant de committer du code dans ce dépôt, exécutez le script suivant pour ajouter un hook de pre-commit qui vérifiera tous les fichiers nouveaux/modifiés en mode strict et vous empêchera de committer du code qui ne passerait pas la CI.
./Integration/Scripts/pre_commit_lint.sh setup
L'application utilise SwiftGen pour générer le fichier Localizable.strings afin d'accéder à toutes les chaînes de l'application stockées dans les fichiers Localizable.strings standard. Ajoutez simplement une nouvelle chaîne au paquet Strings et exécutez la commande swiftgen dans un répertoire où swiftgen.yml est défini.
Le code et les fichiers de données de cette distribution sont sous licence selon les termes de la GPLv3 telle que publiée par la Free Software Foundation. Voir https://www.gnu.org/licenses/ pour une copie de cette licence.
Copyright (c) 2025 Proton Technologies AG