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,防止签名文件误入库。
35 lines
699 B
Plaintext
35 lines
699 B
Plaintext
# ==== 构建产物 ====
|
|
.gradle/
|
|
build/
|
|
app/build/
|
|
*.apk
|
|
*.aab
|
|
|
|
# ==== 机器相关 ====
|
|
local.properties
|
|
*.iml
|
|
.idea/
|
|
.DS_Store
|
|
captures/
|
|
|
|
# ==== 签名与密钥(绝不入库)====
|
|
*.jks
|
|
*.keystore
|
|
keystore.properties
|
|
|
|
# ==== 日志与临时 ====
|
|
*.log
|
|
/tmp/
|
|
*.tmp
|
|
|
|
# ==== 可再生大体积资源(由 scripts/ 重建,详见 README「素材再生成」)====
|
|
# 动画 webp(从 dsh-pet webm 转码,537MB 两套)→ scripts/regenerate_assets.sh
|
|
app/src/main/assets_hq/
|
|
app/src/main/assets_small/
|
|
# 表情包图(从梗鲸档案馆下载,114MB)→ scripts/download_memes.py
|
|
app/src/main/assets_net/
|
|
|
|
# ==== 原始下载与临时产物 ====
|
|
/memes-import/
|
|
/new-memes/
|
|
/docs-preview/ |