docs(spec): CI/CD 密钥命名对齐 jiu(MACOS_*/APPSTORE_*/ANDROID_*)

Apple 那套账户级与 jiu 共用一份(同名);新增 FORGEJO_URL、macOS 两个描述文件
入表。Android keystore 同命名规范但各 app 独立不共享。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-05 23:19:29 +08:00
parent fe9a3a6cdb
commit 0ab31b4c58
2 changed files with 16 additions and 12 deletions
+7 -6
View File
@@ -122,16 +122,17 @@ rsync 到服务器 web 根 → nginx/Caddy 静态托管。<b>DNS</b>CF 加记
<code>FORGEJO_TOKEN</code> 查最新 <code>client-v*</code> 版本烘焙进 href)。<code>Download.astro</code> 各平台按钮读
<code>SITE.downloads.&lt;platform&gt;</code>。客户端发版后官网重部署即刷新(或 build-* 完成触发 deploy-site)。</p>
<h2>6. 密钥与作用域(solo / wangjia</h2>
<h2>6. 密钥与作用域(solo / wangjia,命名对齐 jiu 以共用</h2>
<table>
<tr><th>Secret</th><th>作用域</th><th>说明</th></tr>
<tr><td><code>FORGEJO_TOKEN</code></td><td>账户级</td><td>建 releasejiu 复用</td></tr>
<tr><td><code>DEVELOPER_ID_P12</code> / <code>P12_PASSWORD</code> / <code>ASC_KEY_P8</code> / <code>ASC_KEY_ID</code> / <code>ASC_ISSUER_ID</code></td><td>账户级</td><td>Apple 账号级签名+公证,所有 app 共用续期改一处</td></tr>
<tr><td><code>FORGEJO_TOKEN</code> / <code>FORGEJO_URL</code></td><td>账户级</td><td>建 release + 传产物jiu 复用</td></tr>
<tr><td><code>MACOS_DEVELOPER_ID_CERT_P12_BASE64</code> / <code>MACOS_DEVELOPER_ID_CERT_PASSWORD</code></td><td>账户级</td><td>Developer ID 证书(账号级),与 jiu 共用续期改一处</td></tr>
<tr><td><code>APPSTORE_API_KEY_P8_BASE64</code> / <code>APPSTORE_API_KEY_ID</code> / <code>APPSTORE_API_ISSUER_ID</code></td><td>账户级</td><td>公证 API keyKEY_ID=<code>3PZTHR8YMJ</code>),与 jiu 同一把</td></tr>
<tr><td><code>DEPLOY_SSH_KEY</code></td><td>pangolin 仓库级</td><td>授权到 pangolin1,最小权限</td></tr>
<tr><td><code>RELEASE_KEYSTORE</code> / <code>KEYSTORE_PASSWORD</code> / <code>KEY_ALIAS</code> / <code>KEY_PASSWORD</code></td><td>pangolin 仓库级</td><td>Android app 级专属签名,绝不共享</td></tr>
<tr><td><code>ANDROID_KEYSTORE_BASE64</code> / <code>ANDROID_KEYSTORE_PASSWORD</code> / <code>ANDROID_KEY_ALIAS</code> / <code>ANDROID_KEY_PASSWORD</code></td><td>pangolin 仓库级</td><td>Android app 级专属签名<b>pangolin 自己的 keystore,不复用 jiu</b></td></tr>
<tr><td><code>MACOS_APP_PROVISION_PROFILE_BASE64</code> / <code>MACOS_SYSEXT_PROVISION_PROFILE_BASE64</code></td><td>pangolin 仓库级</td><td>主 app + PacketTunnel sysext 描述文件(pangolin bundle 专属)</td></tr>
</table>
<p class="small">工作流用 <code>secrets.XXX</code> 引用,账户级/仓库级对写法透明。macOS 另需主 app + PacketTunnel
sysext 两个 <code>.provisionprofile</code>base64 存 secret,签名期落盘嵌入)。</p>
<p class="small">命名对齐 jiu<code>MACOS_*</code>/<code>APPSTORE_*</code>/<code>ANDROID_*</code>):<b>Apple 那套放账户级 → jiu/pangolin 共用一份</b>compile-macos 脚本可复用 jiu 的;Android keystore 虽同命名规范但<b>各 app 独立、不共享</b>。工作流用 <code>secrets.XXX</code> 引用,作用域对写法透明。</p>
<h2>7. 实现顺序</h2>
<p>范围虽 A~F,按风险/依赖递增落地,每阶段独立可发、独立验收:</p>
@@ -88,17 +88,20 @@ Astro `npm ci && npm run build`(`SITE_URL=https://pangolin.yanmeiai.com`)→ `di
`Download.astro` 各平台按钮读 `SITE.downloads.<platform>`。客户端发版后官网重部署即刷新
(或 `build-*` 完成触发 `deploy-site`)。
## 6. 密钥与作用域(solo / wangjia)
## 6. 密钥与作用域(solo / wangjia,命名对齐 jiu 以共用)
| Secret | 作用域 | 说明 |
|---|---|---|
| `FORGEJO_TOKEN` | 账户级(wangjia) | 建 release,jiu 复用 |
| `DEVELOPER_ID_P12` / `P12_PASSWORD` / `ASC_KEY_P8` / `ASC_KEY_ID` / `ASC_ISSUER_ID` | 账户级 | Apple 账号级签名+公证,所有 app 共用,续期改一处 |
| `FORGEJO_TOKEN` / `FORGEJO_URL` | 账户级(wangjia) | 建 release + 传产物,jiu 复用 |
| `MACOS_DEVELOPER_ID_CERT_P12_BASE64` / `MACOS_DEVELOPER_ID_CERT_PASSWORD` | 账户级 | Developer ID 证书(账号级),与 jiu 共用;续期改一处。证书在钥匙串,导出一次 .p12 |
| `APPSTORE_API_KEY_P8_BASE64` / `APPSTORE_API_KEY_ID` / `APPSTORE_API_ISSUER_ID` | 账户级 | 公证 API key(KEY_ID=`3PZTHR8YMJ`),与 jiu 同一把,`.p8` 现成 |
| `DEPLOY_SSH_KEY` | pangolin 仓库级 | 授权到 pangolin1,最小权限 |
| `RELEASE_KEYSTORE` / `KEYSTORE_PASSWORD` / `KEY_ALIAS` / `KEY_PASSWORD` | pangolin 仓库级 | Android app 级专属签名,绝不共享 |
| `ANDROID_KEYSTORE_BASE64` / `ANDROID_KEYSTORE_PASSWORD` / `ANDROID_KEY_ALIAS` / `ANDROID_KEY_PASSWORD` | pangolin 仓库级 | Android app 级专属签名(**pangolin 自己的 keystore,不复用 jiu**) |
| `MACOS_APP_PROVISION_PROFILE_BASE64` / `MACOS_SYSEXT_PROVISION_PROFILE_BASE64` | pangolin 仓库级 | 主 app + PacketTunnel sysext 描述文件(pangolin bundle 专属,签名期落盘嵌入) |
工作流用 `secrets.XXX` 引用,账户级/仓库级对写法透明。macOS 另需主 app + PacketTunnel sysext
两个 `.provisionprofile`(base64 存 secret,签名期落盘嵌入)
命名对齐 jiu(`MACOS_*`/`APPSTORE_*`/`ANDROID_*`):**Apple 那套放账户级 → jiu/pangolin 共用一份**,
compile-macos 脚本可复用 jiu 的;Android keystore 虽同命名规范但**各 app 独立、不共享**
工作流用 `secrets.XXX` 引用,作用域对写法透明。
## 7. 实现顺序(单仓库内分阶段落地)