版权所有 (c) 2025 Proton Technologies AG
本项目使用 Swift Package Manager 管理所有依赖。在运行任何目标之前,请允许 Xcode 解析包。
git submodule init + git submodule update)brew bundle 安装 Homebrew 依赖Cmd+Shift+K)构建项目需要一组机密信息。其中包括 URL 和密钥,保存在名为 ObfuscatedConstants.swift 的文件中。这些文件存放在一个单独的仓库中,需要一些额外设置来保持同步。
首先,使用 setup 命令调用位于 Integration/Scripts/credentials.sh 的脚本。使用 -p 参数提供您希望将机密仓库克隆到本地的路径,并使用 -r 参数提供仓库的 URL。
./Integration/Scripts/credentials.sh setup -p <path to credentials repo> -r <credentials remote>
然后,要验证设置是否成功:
./Integration/Scripts/credentials.sh checkout
如果设置正确,混淆常量将在每个应用的“生成混淆常量”构建阶段自动同步。
项目按层打包,以避免模块依赖地狱:
应尽可能避免向 LegacyCommon 和 NEHelper 添加新代码/功能。这些包应逐步拆分,以便将其组件放入上述三个类别的新/现有包中。
在开发过程中,swiftlint 以非严格模式运行,这样更容易开发而无需担心代码格式。在 CI 上,代码检查是严格的,任何警告都会导致失败。在向此仓库提交代码之前,请运行以下脚本以添加一个 pre-commit 钩子,该钩子将以严格模式检查所有新增/修改的文件,并阻止您提交无法通过 CI 的代码。
./Integration/Scripts/pre_commit_lint.sh setup
该应用使用 SwiftGen 生成 Localizable.strings 文件,用于访问存储在标准 Localizable.strings 文件中的所有应用字符串。只需向 Strings 包添加新字符串,然后在定义了 swiftgen.yml 的目录中运行 swiftgen 命令即可。
本发行版中的代码和数据文件根据自由软件基金会发布的 GPLv3 条款授权。请参阅 https://www.gnu.org/licenses/ 获取该许可证的副本。
版权所有 (c) 2025 Proton Technologies AG