应用程序 ID

GNOME 技术广泛使用“反向 DNS”样式的应用程序标识符。在开发应用程序时,您需要做的第一件事之一就是选择合适的标识符。

注意

例如,这样的标识符可以是“org.gnome.TextEditor”

应用程序标识符被广泛使用,稍后更改它们可能会导致问题。因此,您应该仔细选择您的标识符,并着眼于应用程序的未来发展。

使用应用程序 ID 的地方

应用程序 ID 在以下地方使用

  • GtkApplication(或 GApplication)作为一种标识您的应用程序的方式传递给系统,用于确保在给定时间只运行一个应用程序实例,以及作为一种向您的应用程序传递消息的方式(例如,打开文件的指令)

  • 由 D-Bus 命名您的应用程序在消息总线上。这是应用程序之间通信的主要方式,可以通过 gdbus 命令行工具或 d-feet 图形 D-Bus 浏览器查看。

  • 作为应用程序的 .desktop 文件的名称。该文件描述了您的应用程序,以便系统可以显示和启动它。

  • 作为应用程序可能安装的任何 GSettings 模式的基本名称。这些名称可以通过 gsettings 命令行工具或 dconf-editor 图形编辑器查看。

  • 作为系统记住有关您的应用程序的状态信息的一种方式(例如,它请求向用户显示哪些通知),以及作为控制有关您的应用程序设置的一种方式(例如,用户是否阻止了其通知)。

  • 作为系统使用您的应用程序来扩展自身的一种方式(例如,通过搜索提供程序)。

  • 作为应用程序包的捆绑包名称,例如 Flatpak。

应用程序 ID 的规则

构成有效应用程序 ID 的确切规则如下

  • 应用程序 ID 必须由两个或多个元素组成,元素之间用句点(‘.’)字符分隔

  • 每个元素必须包含一个或多个字母数字字符(A-Z、a-z、0-9)以及下划线(‘_’)和连字符(‘-’),并且不能以数字开头。

  • 空字符串不是有效的元素(即:您的应用程序 ID 不能以句点开头或结尾,并且在两个句点之间出现两个句点是无效的)

  • 整个 ID 的长度必须小于 255 个字符

警告

虽然允许使用连字符,但您应该在应用程序 ID 中使用它们,因为并非所有可能使用该 ID 的组件都支持它们,例如 D-Bus。如果您正在使用真实的 DNS 名称作为应用程序 ID 的基础,并且该名称包含连字符,则应将其替换为下划线。例如:从 7-zip.orgorg._7_zip

参见

有关构成有效应用程序 ID 的更多信息,您应该阅读 g_application_id_is_valid() 的文档

选择应用程序 ID 的指南

选择名称最重要的事项是它必须是全局唯一的。如果两个不相关的应用程序尝试使用相同的应用程序 ID,将会发生糟糕的事情。

因此,强烈建议您选择基于全球公共 DNS 系统的名称。例如,如果您拥有 yorba.org 域名,您可能希望将您的应用程序命名为“MyApp”,例如“org.yorba.MyApp”。

如果您的应用程序是给定自由软件项目的成员或与其有密切关联,则可以使用该项目的公共 DNS 名称,前提是您遵循他们的指南和策略。“密切关联”通常意味着“使用问题的项目的版本控制、错误跟踪等”。

重要提示

对于 GNOME 项目,托管在 gitlab.gnome.org GNOME 组中的应用程序应使用类似“org.gnome.MyApp”的名称。

有时,不可能选择基于您拥有的域的 ID。在这种情况下,通常可以回退到一些合理的东西,例如公共提供商上的帐户名。例如,“com.github.username.MyApp”或“com.gmail.myemailaddr.MyApp”。

Flatpak 文档 也提供了指南。

Flatpak 开发的应用程序 ID

对于开发版本,建议使用不同的应用程序 ID,以便可以将其与稳定版本一起安装和使用。

推荐的方法是在您的应用程序 ID 后面加上 .Devel,例如 org.gnome.TextEditor.Devel