F-Droid 中文文档 下载 App

提交应用到 F-Droid:从 RFP 到构建发布的完整流程

前置条件

要上架 F-Droid,你的应用必须:

  1. 是自由开源软件(FOSS) — 使用 FSF/OSI 认可的开源许可证(GPL、Apache、MIT 等)
  2. 公开源码 — 托管在 GitLab/GitHub 等公开仓库
  3. 能在干净环境中编译 — 构建过程不依赖非公开的服务或闭源组件
  4. 满足反特性透明要求 — 如果有广告/追踪/非自由依赖等,能接受被标注

流程概览

准备应用 → 提交 RFP → 编写元数据 → 本地构建测试 → 提交 MR → 维护者 review → 合并 → 官方构建 → 发布

第一步:本地准备

确保你的应用:

第二步:本地安装 fdroidserver 并测试构建

# 快速用 Docker 跑
docker run -it -v $(pwd):/repo registry.gitlab.com/fdroid/fdroidserver:latest bash

# 在容器里
cd /repo
fdroid import --url https://github.com/yourname/yourapp
fdroid build yourapp

如果本地构建失败,官方构建一定也失败。先修好再往下走。

第三步:提交 RFP(Request for Packaging)

在 F-Droid GitLab 上提交一个新 issue:

  1. 打开 gitlab.com/fdroid/fdroiddata/-/issues
  2. 点击「New issue」
  3. 选择「New Application Proposal(RFP)」模板
  4. 填写信息:
### App name:
### Source: (GitLab/GitHub URL)
### License: (SPDX ID, e.g. GPL-3.0-only)
### Why is this app free software?
### Link to the App's documentation and/or website:
### APK (optional - link to an apk from the source's releases page)

第四步:两种元数据编写方式

方式 A:你自己写(推荐,更快)

  1. Fork gitlab.com/fdroid/fdroiddata
  2. 在 metadata/ 目录下创建 YAML 文件(文件名 = 应用包名)
  3. 填写完整元数据(参考上一篇 fdroiddata 详解)
  4. 本地运行 fdroid lint yourapp 检查
  5. 本地运行 fdroid build yourapp 验证构建
  6. Push 你的 fork
  7. 提交 Merge Request 到 fdroiddata

这种方式最快——维护者只需要 review 和合并。

方式 B:维护者帮你写(慢)

提交 RFP 后等维护者手动编写元数据。维护者工作量有限,可能要等几周甚至几个月。

第五步:Merge Request Review

提交 MR 后,维护者会检查:

CI 构建失败 → 维护者会在 MR 中评论问题原因。修复后重新 push 即可。

第六步:合并与发布

MR 被合并到 fdroiddata 后:

  1. F-Droid 构建服务器拉取最新的 fdroiddata
  2. 批量构建所有新增/更新的应用
  3. 签名、生成仓库索引
  4. 推送到 f-droid.org/repo
  5. F-Droid 客户端下一次同步时就会看到你的应用

从 MR 合并到正式发布通常需要几天时间(构建服务器排队处理)。

常见被拒绝的原因

原因解决
许可证不明确在项目根目录放 LICENSE 文件,并在元数据中正确标注 SPDX ID
构建依赖非公开服务确保构建过程不需要网络下载闭源组件
有非 FOSS 代码移除闭源依赖,或隔离到可选模块
应用功能过简单确保有实际功能,不是 hello world 级项目
维护者太少等维护者处理,或自己写元数据加快速度

加速 RFP 的建议

后续维护

你的应用上架后: