F-Droid 中文文档 下载 App

开源 Android 应用开发者的 F-Droid 上架最佳实践

上架前清单

提交 RFP 前,逐条检查:

代码层面

发布层面

文档层面

本地验证层面

加速 Review 的技巧

自己写元数据

最有效的加速手段。维护者平均处理一个新 RFP 可能需要几周到几个月,但如果你自己写好元数据并通过 MR 提交,review 通常在几天到一两周内完成。

提供清晰的 RFP

好的 RFP issue 应该包含:

### App name: My App
### Source: https://github.com/yourname/myapp
### License: GPL-3.0-only
### APK: https://github.com/yourname/myapp/releases/tag/v1.0.0
### Why FOSS? 项目从一开始就是 GPL v3 许可,没有任何闭源组件。
### Why useful? 这个应用解决了什么问题。
### Build instructions: 在项目根目录运行 `./gradlew assembleRelease`

在 MR 中提供构建日志

如果本地 fdroid build 成功,把构建日志的关键输出粘贴到 MR 描述中。维护者可以快速判断构建环境是否正确。

及时回复维护者的问题

维护者可能在 MR 中问一些问题(构建失败、许可证细节、字段含义等)。如果几天后还没回复,MR 会被标记为 stale。

上架后的维护

更新元数据

当你发布新版本时,有两种方式更新元数据:

方式一:AutoUpdateMode(推荐)

设置元数据中的:

AutoUpdateMode: Version
UpdateCheckMode: Tags

F-Droid 会自动检测新的 release tag 并更新元数据。

方式二:手动提交 MR

每次发新版后手动 fork fdroiddata、更新 YAML、提交 MR。适合版本号结构复杂的情况。

保持构建可重现

每次发版后,确认:

响应反特性标注

如果 F-Droid 给你的应用标注了反特性(如「非自由网络服务」),有两种态度:

维护者沟通渠道

不推荐的做法

做法为什么不好正确做法
RFP 中不提供源码链接维护者不知道你的项目明确写源码仓库 URL
许可证模糊不清维护者不敢收录放 LICENSE 文件,SPDX ID 在元数据中正确标注
commit 用 branch HEAD无法保证构建可重现用精确 commit hash
构建硬编码了特定环境F-Droid 构建服务器可能不兼容确保干净环境下能构建
把 F-Droid 当成发版渠道后不管了新版本永远不会进仓库定期更新元数据或开启 AutoUpdateMode