Build APK / build (push) Canceled after 7m12s
- .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,防止签名文件误入库。