2

我在 F-Droid 中发布了一个应用程序。在发布第一个版本时,我按照通常的步骤,从我的 GitHub 版本中发布了该应用程序。(发布标签是v1.0)。

现在,我在 GitHub 上发布了该应用程序的更新(发布标签为v1.x)。我想知道是否需要更改 F-Droid 元数据中的任何内容并在 F-Droid 数据存储库中再次创建新的合并请求。

这是我的应用程序的元数据 .yml:

Categories:
  - Science & Education
License: BSD-3-Clause
AuthorName: ARITRA BELEL and SHOURYA S GHOSH
SourceCode: https://github.com/belelaritra/Neumorphic_Calculator
IssueTracker: https://github.com/belelaritra/Neumorphic_Calculator/issues

AutoName: Calculator

RepoType: git
Repo: https://github.com/belelaritra/Neumorphic_Calculator

Builds:
  - versionName: 1.0.0
    versionCode: 1
    commit: b0ea287db768c146925b7df4853abe10286b8026
    output: build/app/outputs/flutter-apk/app-release.apk
    srclibs:
      - flutter@2.8.1
    rm:
      - ios
    build:
      - $$flutter$$/bin/flutter config --no-analytics
      - $$flutter$$/bin/flutter packages pub get
      - $$flutter$$/bin/flutter build apk

AutoUpdateMode: Version %v
UpdateCheckMode: Tags
UpdateCheckData: pubspec.yaml|version:\s.*\+(\d+)|.|version:\s(.*)\+
CurrentVersion: 1.0.0
CurrentVersionCode: 1

线条,

AutoUpdateMode: Version %v
UpdateCheckMode: Tags

实际上引起了我的注意。似乎模式设置为自动更新。但是最后两行实际上让我感到困惑,CurrentVersion并且CurrentVersionCode已经设置了 and 。如果我不更新它,即使自动更新模式设置为 true,我的应用程序是否会在存储库中自动更新?

注意:我在发行版中也更新了我的项目中的版本名称和版本代码。现在版本名称是1.1.0,版本代码是2

4

1 回答 1

2

您无需告诉 F-Droid 更新您的应用程序 - 它会自动更新

我更新的时候需要告诉你吗?

我们将检测您的应用程序的新版本并相应地更新我们的元数据,这将导致我们检查代码并将新版本添加到我们的系统中。标签对添加新版本有很大帮助,但请记住每次都将标签推送到原始存储库。当然,如果您将源代码移动到不同的网站,您应该告诉我们。目前在移动 AndroidManifest.xml 时检测新版本存在一些问题,因此如果有紧急情况,您可以告诉我们是否发生这种情况。

一些应用程序开发人员在发布时向我们提交合并请求以及所有相关的构建数据。你不需要这样做,但它可以加快速度。从历史上看,作为一个小型社区项目,我们处理更新的速度比我们希望的要慢,但这种情况一直在改善。

我们的更新检查是愚蠢的,只是抓取构建文件:我们不运行任何构建代码,所以不要在构建时使用基于时间的版本控制或任何其他类型的计算版本(例如,将它们移动到在构建时连接的多个子版本甚至有复杂的函数调用来做到这一点)。

我已经发布了一个新版本。为什么它不在存储库中?

当我们检测到新版本时,可能需要几天时间才能将其放入存储库,因为构建过程每天只运行一次。在构建完成之前,您的应用程序的 wiki 页面将在 :Category:Apps to Update 中列出它。只要“当前(推荐)版本为 xxx(版本代码 yyy)”的 Versions 下的文字显示与您的最新版本对应的版本号,我们就检测到了它,该 APK 应该很快就会可用。给它一些时间。

关于元数据中的CurrentVersionCurrentVersionCode值,我的理解是F-Droid 的更新脚本会自动将它们更新为当前值

F-Droid 工具可以自动检测和构建应用程序和包的更新。

检测

有多种机制可以自动检测应用程序是否有可用的更新,元数据中的 UpdateCheckMode 字段确定用于特定应用程序的方法。

运行 fdroid checkupdates 命令会将此方法应用于存储库中的每个应用程序,并相应地更新元数据中的 CurrentVersion 和 CurrentVersionCode 字段。

于 2022-01-23T14:26:33.633 回答