更新下载服务增加 Gitee 并设为优先下载源
- AppUpdateManager 由单源(Gitea)改为多源: SOURCES = gitee → gitea
· 检查更新: 两个源都查, 取版本更高的那个(避免某一边滞后漏更新)
· 下载: 按 Gitee → Gitea 顺序尝试, 失败自动换源(换源时进度归零)
· Release 新增 mirrors: 同版本其它源地址作备用镜像
- 附件筛选收紧为只认 name.endsWith(".apk"):
Gitee 的 assets 里带自动生成的源码包(v1.5.5.zip/.tar.gz), 宽松判断会下错东西
- 新增远程日志: UPDATE 检查/下载成功/下载失败/换源下载成功(含源与原因)
- 版本号按规则 3 占用一个 patch: 1.5.5(37) → 1.5.6(38)
实测(本机): Gitee Release API 免令牌可读; 附件直链 302→302→foruda.gitee.com CDN,
用 App UA 跟随跳转下载 22,236,768 字节、md5 8f16d48ca185e7109db9821286831e8b(与本地一致)、
文件头 PK、耗时约 11.9s。Gitea 侧同为 v1.5.5 + 同名附件。
本次仅编译检查 + 单元测试(9 例全过), 按要求**未打包**(未执行 assembleRelease)。
This commit is contained in:
@@ -85,7 +85,16 @@ git push origin master # origin = Gitea(唯一的代码同步目
|
||||
|
||||
App 内部两处端点已指向 Gitea(随本版 APK 生效):
|
||||
|
||||
- `AppUpdateManager.kt`:`gitea.kasugano.cn/api/v1/repos/zijunchiang/maidong-ktv/releases/latest`(App 内检查更新)
|
||||
- `AppUpdateManager.kt`(**2026-10 起为多源,Gitee 优先、Gitea 兜底**):
|
||||
- 检查更新:`https://gitee.com/api/v5/repos/zijunchiang/maidong-ktv/releases/latest`、
|
||||
`https://gitea.kasugano.cn/api/v1/repos/zijunchiang/maidong-ktv/releases/latest`
|
||||
—— **两个源都查**,取**版本更高**的那个(避免某一边滞后时漏更新);
|
||||
- 下载安装包:按「**Gitee → Gitea**」顺序尝试,一个失败自动换下一个(同版本两个地址互为镜像);
|
||||
- Gitee 的 Release API **无需令牌**即可读取(已实测),附件直链为 302 跳转到
|
||||
`foruda.gitee.com` CDN,`instanceFollowRedirects=true` 可正常跟随(实测 22MB / 约 12s / md5 一致);
|
||||
- ⚠️ **只认以 `.apk` 结尾的附件**:Gitee 的 `assets` 里还会带自动生成的源码包
|
||||
(`v1.5.5.zip` / `v1.5.5.tar.gz`),宽松判断会把源码包当安装包下载;
|
||||
- 下载校验三条:HTTP 2xx、>1MB、**文件头 `PK`**,再用 PackageManager 复核包名。
|
||||
- `KtvJsBridge.kt`:`gitea.kasugano.cn/zijunchiang/maidong-ktv/raw/branch/master/app/src/main/assets/mobile/ktv_api.js`(JS 热更新)
|
||||
|
||||
> 注意:Gitea 的 raw 规范路径是 `/raw/branch/<分支>/<文件>`;`/raw/<分支>/<文件>` 会 303 跳转。
|
||||
@@ -186,7 +195,7 @@ $BT/apksigner verify 目标名.apk
|
||||
|
||||
### 版本号
|
||||
|
||||
- `app/build.gradle`:`versionName "1.5.5"` / `versionCode 37`(18~21 被本机临时诊断包占用过)
|
||||
- `app/build.gradle`:`versionName "1.5.6"` / `versionCode 38`(1.5.5/37 已发布;1.5.6 为"更新源加 Gitee"这一改动的版本号,尚未打包)(18~21 被本机临时诊断包占用过)
|
||||
- App 内显示统一用纯版本号(不加 `(versionCode)` 括号)
|
||||
- ⚠️ **发布构建已开启 NewApi 闸门**(`lint { checkReleaseBuilds true; fatal += ['NewApi'] }`):
|
||||
任何「调用了高于 `minSdk 21` 且未做版本守卫的 API」都会让 `assembleRelease` 直接失败。
|
||||
|
||||
Reference in New Issue
Block a user