
iOSおよびmacOS向けの公式VPNクライアント。暗号化トンネリング、安全な認証情報の保存、自動サーバー設定、および一般的なVPNプロトコルのサポートを提供します。
Copyright (c) 2025 Proton Technologies AG
このプロジェクトは、すべての依存関係に Swift Package Manager を使用しています。ターゲットを実行する前に、Xcode でパッケージを解決できるようにしてください。
git submodule init + git submodule update)brew bundle を使用して Homebrew の依存関係をインストールしてくださいCmd+Shift+K)プロジェクトをビルドするには、一連のシークレットが必要です。これらには URL とキーが含まれており、ObfuscatedConstants.swift という名前のファイルに保管されています。これらのファイルは別のリポジトリに保管されているため、同期を維持するには追加のセットアップが必要です。
まず、Integration/Scripts/credentials.sh にあるスクリプトを setup コマンドで実行してください。-p 引数にはシークレットリポジトリをローカルにクローンしたいパスを指定し、-r 引数にはリポジトリの URL を指定します。
./Integration/Scripts/credentials.sh setup -p <path to credentials repo> -r <credentials remote>
次に、セットアップが成功したことを確認するには:
./Integration/Scripts/credentials.sh checkout
セットアップが正しく行われていれば、難読化された定数は各アプリの Generate Obfuscated Constants ビルドフェーズ中に自動的に同期されます。
このプロジェクトは、モジュール依存関係の地獄を避けるために、レイヤーごとにパッケージ化されています:
可能であれば、LegacyCommon と NEHelper に新しいコードや機能を追加することは避けるべきです。これらのパッケージは、そのコンポーネントを上記の3つのカテゴリの新規/既存パッケージに配置するために、段階的に削減していくべきです。
開発中は swiftlint が非厳格モードで実行されるため、コードの書式を気にせずに開発しやすくなっています。CI ではリンティングは厳格で、警告があれば失敗します。このリポジトリにコードをコミットする前に、以下のスクリプトを実行してプリコミットフックを追加してください。このフックは、新規/変更されたすべてのファイルを厳格モードでチェックし、CI を通過できないコードのコミットを防ぎます。
./Integration/Scripts/pre_commit_lint.sh setup
このアプリは SwiftGen を使用して、標準の Localizable.strings ファイルに保存されているすべてのアプリ文字列にアクセスするための Localizable.strings ファイルを生成します。Strings パッケージに新しい文字列を追加し、swiftgen.yml が定義されているディレクトリで swiftgen コマンドを実行するだけです。
この配布物に含まれるコードおよびデータファイルは、フリーソフトウェア財団が公開する GPLv3 の条件に基づいてライセンスされています。このライセンスのコピーについては、https://www.gnu.org/licenses/ を参照してください。
Copyright (c) 2025 Proton Technologies AG