Files
jkooe 43275ae7a0
Build APK / build (push) Canceled after 7m12s
feat(ci): Gitea Actions 构建完整版 APK 并发布 Release;App 内更新检查
- .gitea/workflows/build.yml:打 tag 触发构建。代码取当前 ref,素材目录单独从 full-assets 分支叠加
  (main 保持 ~8MB 不追踪 assets_hq/assets_small/assets_net,缺它们构建出来的包宠物是空白的)。
  用 secret 注入的固定 keystore 签 release 包,构建后发布 APK + version.json 到 Gitea Release。
- app/build.gradle.kts:签名改为从环境变量读取(KEYSTORE_PATH / KEYSTORE_PASSWORD / KEY_ALIAS /
  KEY_PASSWORD),本地无 keystore 时回退 debug 签名;versionCode 支持 CI 注入,保证单调递增
  (更新机制要求新包 versionCode 严格大于已装版本,否则系统拒绝覆盖安装)。
- UpdateChecker.kt:读 Gitea Release API 按 versionCode 判版本 → 下载并校验 SHA256 → 经自带
  ApkProvider(content://)拉起系统安装器。项目零第三方依赖,用不了 androidx FileProvider,
  故自带一个只读 ContentProvider(只暴露 cacheDir/update 下的 .apk,路径取 basename 防穿越)。
- MainActivity 设置页新增「关于 / 检查更新」入口,下载前先检查「安装未知来源应用」授权。
- AndroidManifest 新增 REQUEST_INSTALL_PACKAGES 与 ApkProvider 声明。
- .gitignore 增加 *.jks / *.keystore / keystore.properties,防止签名文件误入库。
2026-11-09 17:16:41 +08:00
..