F-Droid 中文文档 下载 App

fdroidserver 工具链:开发者准备应用分发的完整命令行工具集

fdroidserver 是什么

fdroidserver 是 F-Droid 项目提供的命令行工具集,用于准备、构建、发布开源 Android 应用。它是 F-Droid 生态的核心支柱——F-Droid 官方构建服务器用它编译所有应用,开发者也用它在本地测试构建。

简单说:fdroidserver 就是「把你的应用变成 F-Droid 仓库里一个应用」的全套工具。

核心功能

命令作用
fdroid import从源码仓库导入应用,自动生成元数据 YAML
fdroid build从源码编译生成 APK
fdroid publish签名发布到本地仓库
fdroid update更新仓库索引
fdroid lint检查元数据和构建配方
fdroid server update推送到远程仓库服务器
fdroid checkupdates检查是否有新版本

安装 fdroidserver

方式一:pip 安装(推荐)

pip install fdroidserver

需要 Python 3 运行环境。还需要安装 Android SDK 和 Java JDK(用于实际构建)。

方式二:Docker(推荐给不想折腾环境的人)

docker run -it -v $(pwd):/repo registry.gitlab.com/fdroid/fdroidserver:latest bash

官方提供了预配置好的 Docker 镜像,里面已经包含了 Android SDK、Gradle、所有依赖。在容器里直接跑 fdroidserver 命令。

方式三:从源码安装

git clone https://gitlab.com/fdroid/fdroidserver.git
cd fdroidserver
pip install -e .

使用 fdroidserver 的流程

第一步:准备环境

确保有:

第二步:创建仓库目录

mkdir my-repo && cd my-repo
fdroid init

fdroid init 会生成:

第三步:导入应用

fdroid import --url https://github.com/example/myapp

这会:

  1. 克隆你的应用源码
  2. 自动检测构建系统(Gradle / Maven / Apache Ant)
  3. 生成初始的元数据 YAML 文件到 metadata/myapp.yml
  4. 提示你调整元数据

第四步:编辑元数据

编辑 metadata/myapp.yml,填写完整信息:

Categories:
  - Tools
License: GPL-3.0-only
WebSite: https://example.com/myapp
SourceCode: https://github.com/example/myapp
IssueTracker: https://github.com/example/myapp/issues

AutoName: My App

RepoType: git
Repo: https://github.com/example/myapp.git

Builds:
  - versionName: '1.0'
    versionCode: 1
    commit: v1.0
    gradle:
      - yes
    output: app/build/outputs/apk/release/app-release.apk

AutoUpdateMode: Version
UpdateCheckMode: Tags
CurrentVersion: '1.0'
CurrentVersionCode: 1

第五步:本地构建测试

fdroid build myapp

这会:

  1. 克隆指定的 commit
  2. 在隔离的构建环境中编译
  3. 检查是否成功
  4. 如果失败,显示错误日志

第六步:发布到本地仓库

fdroid publish myapp
fdroid update

APK 会被签名并发布到 repo/ 目录,索引文件会更新。然后你可以把这个目录放到任何 Web 服务器上,就能作为一个 F-Droid 兼容仓库了。

fdroidserver 和 F-Droid 官方构建的关系

F-Droid 官方构建服务器运行的就是 同一份 fdroidserver:

  1. 官方维护者把元数据合并进 fdroiddata 仓库
  2. 构建服务器拉取 fdroiddata
  3. 用 fdroidserver 批量构建所有应用
  4. 签名、生成索引、发布到 f-droid.org/repo

所以你在本地成功构建 = F-Droid 官方构建也大概率会成功。本地构建失败 = 官方构建一定失败。这就是为什么本地构建测试是提交应用到 F-Droid 的必要前置步骤。

fdroidserver 版本