YL release system APK 发布控制台
控制面板在线

Release orchestration

发布工作台

分包、在线槽位、下载域名与 CDN 调度在同一条发布链路中完成。

Live slot -- 正在读取在线状态
Release task -- 当前没有任务
Pool standby -- 等待验证状态
Next run -- 按面板时区执行

Release controls

发布配置

配置母包、渠道、下载域名和 CDN 策略,然后执行完整发布或仅补充分包。

01

Token 只保存在当前浏览器,用于为面板 API 请求授权。

发布配置

仅支持 HTTP/HTTPS;留空则使用 worker 现有默认地址。

自动去重;仅允许字母、数字、下划线和横线。留空则读取服务器 channel.txt。

必须是分包渠道的子集。CDN 操作开启时只刷新/预热这些渠道;关闭时只三地下载探测这些渠道,其他渠道不会探测或下载。

两种门禁严格互斥:开启时只提交并等待 CDN 刷新/预热,不调用三地下载探针;关闭时不调用 CDN 厂商接口,只对上面的渠道执行三地精确下载。

关闭 CDN 发布操作时可选择:提前一轮为本轮准备、下轮上线;直接使用为本轮构建并验证后上线。

本次任务只会使用选中的 CDN 厂商。

阿里云 CDN

首次配置可直接填写;已有目标根域请使用下方“更换”入口先试测再确认。保存后先在后台准备并验证二级域名,不会直接替换线上地址。

先用新根域下当前活动槽的一条真实 APK 链接完整试下载;成功后会弹窗确认,再单独保存目标根域。此测试不替代后续线上切换门禁。

任务成功构建后,对下面所选渠道执行该操作。

随机模式只领取后台已经完成国内 DNS、HTTP、HTTPS 和 APK 在线索引检查的前缀;不会等到槽位切换时才首次验证。

DNS 探针方案

默认方案保持当前服务本机检测;自定义探针列表可按需添加任意数量的 region + 主机。IPv4 临时使用 HTTP 80,ASCII 域名仍使用 HTTPS 443;路径固定为 /v1/subdomain-probe。

网宿 CDN 独立刷新

填写完整 CDN 主机名,不带 http://、https://、端口或路径;留空时不执行网宿刷新。

尚未配置 Token。填入新值后点击“手动刷新网宿 CDN”会保存并立即用于本次请求;也可通过 WANGSU_CDN_AUTH_TOKEN 环境变量配置,接口不会回显原文。

关闭后只停止 Cron 自动刷新并保留下面的时间配置;手动刷新网宿 CDN 和正常分包任务不受影响。

使用面板时区;只有独立开关开启且 Cron 非空时才会自动刷新,不受上面的发布定时开关影响。

文件:提交 c1、c2、c3、c4 中实际存在的渠道 APK;文件夹:只提交网宿 CDN 根目录,例如 https://download.example.com/。

点击后会自动保存当前配置并提交一次刷新;不下载母包、不分包、不切换或删除任何槽位。

用户下载链接方案

切换不会重新分包,也不会改 APK 字节、在线槽位或二级域名。随机地址使用受控路径软链接,浏览器不跳转;首次启用前必须部署新版网关和允许受控软链接的源站 /d/ 规则,并保存探针列表。随机链接不会提交 CDN 预热任务;每个验证渠道都会分别完成探针服务器 3/3 完整地址下载并返回 HTTP 200 后才提交新路由,不比较远端 APK 的文件大小或 SHA-256。

事务主候选 + 池内备用

正常四槽发布仍在事务内为本轮构建槽生成主候选;这里另外维持 1 个池内备用,供日常发布应急与更换 CDN 根域共用。随机模式且 CDN 操作关闭时,备用已有 1 个就不探测,只有 0 个才在后台补 1 个;CDN 操作开启时不走下载探针。

在当前已保存的目标根域重新生成并三地下载验证 1 个池内备用;不会改变事务主候选、线上 current 或正常发布 next。

验证层级:国内公共 DNS(阿里 DNS、DNSPod、114DNS)、HTTP、HTTPS 连接和 APK 在线索引;不检查 HTTPS 证书或 CDN 厂商响应头。该检查覆盖多个国内公共递归视角,不等同于全国所有省份和运营商实测。

正在读取域名池状态…

点击后会自动保存当前配置,只补齐 c1、c2、c3、c4 中缺失的新渠道;不下载母包、不切换版本、不操作 CDN。

Artifact routing

APK 下载路径

安全复制活动目录或更新 canonical 文件名,后续发布会自动沿用。

02

更改 APK 路径

当前服务未配置 admin_token,API 将允许直接访问;如需访问控制,可在服务端配置 Token。

完整复制当前 APK 根目录( 为必填)

保存后会在当前 APK 根目录同级建立新目录,完整复制全部文件、全部子目录及原目录结构;校验成功后再把新目录切换为活动根目录。旧目录不会被覆盖或删除。只允许英文字母、数字、下划线和短横线;不能包含斜杠或点号。目标目录已存在时任务会拒绝覆盖。

当前正式 APK 文件名:youliao.apk。它与“更改 APK 文件名”模块共用并保持同步。

复制成功后,选中的具体文件名会与新目录一起提交为 canonical APK 文件名;以后下载母包、分包、槽位清单和 CDN URL 都继续使用该名称。程序会先为 c1、c2、c3、c4 的全部有效渠道生成同内容文件,旧文件不会在本次操作中删除。二级域名模式只在本次操作时从固定索引文件 /www/wwwroot/yl/index/apk_index.txt 读取一次在线前缀并固化,例如 abcdef.apk;该索引不跟随 APK 根目录切换。

必须是安全的文件名并以 .apk 结尾,例如 app-release.apk;不能填写目录路径。

渠道选择只控制结果框返回哪些下载地址;为了让新目录能继续正常分包,canonical 文件名会为 c1、c2、c3、c4 的全部有效渠道生成。当前 APK 根目录中的所有文件和子目录仍会完整复制,不会被删除。

下载地址模板:https://域名/<folder>/c{slot}/<channel>/<filename>.apk。例如填写 abcd 后,路径从 /release/c1/1002/youliao.apk 变为 /abcd/c1/1002/youliao.apk。

正在更改 APK 路径

正在等待文件复制任务启动……

准备中 正在计算文件数量

文件操作完成前不能关闭此窗口或执行其他发布操作。即使复制进度达到 100%,也要等后台确认目录已完整发布后才能继续。

更改 APK 文件名

当前服务未配置 admin_token,API 将允许直接访问;如需访问控制,可在服务端配置 Token。

选择新 APK 文件名

当前正式 APK 文件名:youliao.apk。任一文件名操作成功后,两个模块都会同步显示新名称。

随机二级域名模式读取固定索引文件 /www/wwwroot/yl/index/apk_index.txt 中的当前在线前缀,例如当前地址以 fjngnv 开头时生成 fjngnv.apk;该索引不在活动 APK 根目录中,也不会随路径切换;程序不会另外生成一个无关的随机值。

必须以 .apk 结尾且不能带目录;不能与当前 canonical 文件名相同,也不会覆盖内容不同的已有文件。

成功后会为当前活动 APK 根目录下 c1、c2、c3、c4 的全部有效渠道生成同内容文件,并把该名称提交为新的 canonical APK 文件名。后续母包下载、分包、槽位清单和 CDN URL 都使用新名称;本次不删除旧文件、不重新签名、不写渠道号,也不切换槽位。

Probe download audit

探针 APK 下载记录

逐地区、逐次重试记录探针服务器真实 APK GET 的成功或失败、完整地址及错误原因;上一自然日记录每天清理一次。

0

正在读取探针下载记录……

探针服务器 APK 下载网络请求记录
时间(面板时区)来源 / 地区下载结果渠道完整 APK 下载地址HTTP 结果 / 错误原因