儲存庫密鑰
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 發行版建置時才有意義。