[INFRA]: Sign GitHub release APKs with a stable key

未关闭
#243 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
android, dart, flutter, github-actions
领域
release, security

调研方向

Read .github/workflows/android-release.yaml at the “Set up release signing” step and mobile/android/app/build.gradle.kts at signingConfigs. The issue says this requires maintainer access to repository secrets, so a first-time contributor cannot complete the setup independently. Done means the release uses the stable keystore without the debug-key warning and the release notes explain the one-time reinstall.

由索引模型根据 Issue 内容生成。

描述

area: infra chore

Context

The release workflow signs APKs with four secrets: ANDROID_KEYSTORE_BASE64, ANDROID_KEYSTORE_PASSWORD, ANDROID_KEY_ALIAS and ANDROID_KEY_PASSWORD. None of them is set on this repository, so every GitHub release so far was signed with a throwaway debug key. The v0.3.2 run logged:

ANDROID_KEYSTORE_BASE64 is not set; APKs are signed with a throwaway debug key and can't update each other.

Anyone who installs from GitHub Releases can't update to the next release in place: Android rejects it (INSTALL_FAILED_UPDATE_INCOMPATIBLE) and they have to uninstall, which deletes their local messages and keys. F-Droid builds are not affected (F-Droid signs them itself).

What to do

  • Create a release keystore and keep a backup somewhere safe (losing it means the same problem again).
  • Add the four repository secrets (ANDROID_KEYSTORE_BASE64 is the keystore file, base64-encoded).
  • Check that the next release run has no "throwaway debug key" warning.
  • Say in the release notes that people who installed an earlier GitHub APK need to reinstall once.

Where to look

.github/workflows/android-release.yaml (step "Set up release signing"), mobile/android/app/build.gradle.kts (signingConfigs).

Good to know

Only a maintainer can do this, since it needs repository secrets. Ideally before tagging v0.3.3.

主要语言
Dart
星标
9
派生
5
平均合并
49 分钟
30 天内合并 PR
34

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

CommandLineCoding/Elephant 的其他 Issue

查看 CommandLineCoding/Elephant 的全部 Issue

相似的 Issue

更多 Dart Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。