当我运行
flatpak list
时,某些应用程序有一个版本:
$ flatpak list
Name Application ID Version Branch Origin Installation
Cambalache ar.xjuan.Cambalache 0.10.3 stable flathub system
ungoogled-chromium com.github.Eloston.UngoogledChromium 112.0.5615.165 stable flathub system
Codecs com.github.Eloston.UngoogledChromium.Codecs stable flathub system
Flatseal com.github.tchx84.Flatseal 1.8.1 stable fedora system
OBS Studio com.obsproject.Studio 29.0.2 stable flathub system
My Example App org.example.App master remote1-origin user
我希望我的应用程序也让此列反映其实际版本,但在寻找设置它的方法几天后,我一无所获。 flatpak 或 flatpak-builder 文档中没有提到它......
我是否必须将其添加为我的 .json 应用清单中的字段?或者它是
flatpak-builder
或flatpak build-bundle
的标志?
好吧,我想我明白了。我需要的是一个metainfo.xml 文件(或一个appdata.xml 文件)。 Flatpak 读取此文件(特别是
<releases>
标签)并将 Version 列设置为最新版本的版本字符串。
剩下的唯一问题是一些应用程序将其安装为
*.appdata.xml
,而其他应用程序则将其称为 *.metainfo.xml
。
Flatpak 文档在这个问题上自相矛盾:
https://docs.flatpak.org/en/latest/freedesktop-quick-reference.html#appdata-files
https://docs.flatpak.org/en/latest/conventions.html#appdata-files
但我想这是一个单独的问题。
解决了。
构建完成之后但构建导出之前:
mkdir -p "$BDIR/files/share/app-info/xmls"
cat "$BDIR/files/share/metainfo/"* | sed 1d | gzip > "$BDIR/files/share/app-info/xmls/$FID.xml.gz"
$BDIR -- 构建目录,$FID -- flatpak 应用程序 ID, “sed 1d”——删除“”行