仓库密钥
En Parlant~ 使用 GitHub Actions 为 Windows、macOS 和 Linux 构建发布二进制文件。CI 流水线需要用于代码签名、更新签名、病毒扫描和多人游戏中继 URL 的凭据。这些凭据以 GitHub 仓库密钥 的形式存储——GitHub 会将这些加密值注入工作流运行环境中,但不会显示它们。
如果你 fork 了 En Parlant~ 并希望生成自己的签名构建,你需要配置自己的密钥。即使没有这些密钥,构建仍然可以编译,但二进制文件不会被签名,更新无法验证,VirusTotal 扫描步骤也会被跳过。
Azure Trusted Signing(Windows 代码签名)
Section titled “Azure Trusted Signing(Windows 代码签名)”Windows 用户在运行未签名的 .exe 时会看到 SmartScreen 警告(“Windows 已保护你的电脑”)。代码签名可以消除该警告,并向 Windows 表明二进制文件来自经过验证的发布者。
En Parlant~ 使用 Azure Trusted Signing 来实现这一功能。Tauri 构建会在 Windows 构建步骤中调用 trusted-signing-cli,该工具与 Azure 通信以签名可执行文件。
| 密钥 | 用途 |
|---|---|
AZURE_CLIENT_ID | 服务主体应用 ID |
AZURE_CLIENT_SECRET | 服务主体凭据 |
AZURE_TENANT_ID | Azure AD 租户 |
AZURE_SUBSCRIPTION_ID | Azure 订阅 |
AZURE_CODE_SIGNING_ACCOUNT | Trusted Signing 账户名称 |
AZURE_CODE_SIGNING_ENDPOINT | Trusted Signing 端点 URL |
AZURE_CODE_SIGNING_PROFILE | 证书配置文件名称 |
自行配置方法: 创建 Azure 账户,设置 Trusted Signing 资源,创建证书配置文件,并注册具有相应权限的服务主体。Microsoft 的 Trusted Signing 快速入门 提供了详细的操作指南。
跳过的影响: Windows 构建仍然可以正常工作,但你的用户将会看到令人头疼的 SmartScreen 蓝色警告屏——你懂的。我们都曾点击过”仍要运行”然后祈祷一切顺利。macOS 和 Linux 构建不受影响。
Tauri 更新签名
Section titled “Tauri 更新签名”Tauri 内置的更新程序会验证更新是否来自真正的发布者,而非被篡改的来源。当应用检查新版本时,会下载更新并使用嵌入在应用中的公钥来验证其签名。用于创建这些签名的私钥存放在 CI 中。
| 密钥 | 用途 |
|---|---|
TAURI_PRIVATE_KEY | 用于签名更新的 Ed25519 私钥 |
TAURI_KEY_PASSWORD | 保护私钥的密码 |
自行配置方法: 使用 pnpm tauri signer generate 生成密钥对。将私钥和密码添加到仓库密钥中,并将公钥配置到 tauri.conf.json 的 plugins.updater.pubkey 字段中。
跳过的影响: 应用可以正常构建,但自动更新功能将无法使用。用户需要手动下载新版本。
VirusTotal
Section titled “VirusTotal”构建发布产物后,CI 流水线会将所有二进制文件(.exe、.dmg、.deb、.rpm、.AppImage)上传到 VirusTotal 进行自动化恶意软件扫描。这是一个信任信号——用户可以验证官方构建是安全的。
| 密钥 | 用途 |
|---|---|
VIRUSTOTAL_API_KEY | VirusTotal v3 API 的 API 密钥 |
自行配置方法: 创建一个免费的 VirusTotal 账户,然后从个人资料页面复制你的 API 密钥。
跳过的影响: VirusTotal 扫描步骤会静默失败。构建仍然会成功并正常发布——只是不会有自动化扫描结果。
多人游戏中继 URL
Section titled “多人游戏中继 URL”多人游戏中继服务器 URL 在构建时注入,以便应用知道在线游戏时应连接到哪里。
| 密钥 | 用途 |
|---|---|
VITE_RELAY_URL | 多人游戏中继的 WebSocket URL(例如 wss://your-relay.fly.dev) |
自行配置方法: 部署你自己的中继服务器(参见多人游戏服务器配置指南),然后将此密钥设置为其公开 URL。
跳过的影响: 如果你在运行时于应用设置中配置了中继 URL,多人游戏仍然可以正常工作。此密钥只是设置默认值,这样用户就不需要手动配置。
| 密钥组 | 用于 | 可以跳过吗? |
|---|---|---|
| Azure(7 个密钥) | 签名的 Windows 构建 | 可以——构建正常工作,用户会看到 SmartScreen 警告 |
| Tauri(2 个密钥) | 自动更新 | 可以——构建正常工作,但没有自动更新 |
| VirusTotal(1 个密钥) | 恶意软件扫描报告 | 可以——构建正常工作,但没有扫描结果 |
| 中继 URL(1 个密钥) | 默认多人游戏服务器 | 可以——用户可以在应用设置中手动配置 |
这些密钥都不是本地构建和运行应用所必需的。它们仅在 CI/CD 发布构建中才有意义。