“com.developer.application” 是什么意思?

“com.developer.application” 是什么意思?

我正在 Mac 上编辑 plist 文件,用于快速光标app。我想尝试将 Aquamacs 添加到可用编辑应用程序列表中。无论如何,plist 中列出的所有其他编辑器都使用类似 的内容调用com.developer.application。例如:

BBEdit => com.barebones.bbedit
MacVim => org.vim.MacVim
Smultron => org.smultron.Smultron

我注意到我的 Android 手机上的所有“进程”或“应用程序”都遵循类似的命名方案。那么我该怎么称呼这些东西呢?反向 URI?

更符合我目的的是,如何找到任意 Mac 应用程序的“反向 URI”?(如果这是最简单的方法,我很乐意使用终端。)

请随意使用更好的标签来标记它,以便其他人将来可以找到它。

答案1

这些捆绑标识符唯一地标识一个应用程序。

苹果对这些进行了解释(针对仪表板小部件)这里

捆绑包的反向互联网域名样式标识符。

如果您想在 Mac 上以编程方式访问这些内容,请参阅这里

Java 有相同的命名约定

一般来说,软件包名称以组织的顶级域名开头,然后是组织的域,然后是按相反顺序列出的任何子域。然后,组织可以为他们的软件包选择一个特定的名称。

这就是您在 Android 系统上看到的内容。

采用这种格式的原因在于域名可以唯一地标识一个组织或开发者,并且组织内部的人们应该能够避免冲突。由于域名基于层次结构,以相同的方式表示这些标识符是有意义的:元素顺序是相当任意的,并且反向顺序也允许正确的排序,以便所有com.apple.[etc]文件都被分组。

如何找出给定应用程序的包标识符

  1. 右键单击应用程序包(带有图标的东西)并选择Show Package Contents
  2. Contents/Info.plist使用以下方式打开Property List Editor(Apple 开发者工具的一部分)。您也可以尝试使用文本编辑器打开文件,如果它不是以 开头bplist,您可以阅读它。
  3. 在此文件中查找CFBundleIdentifier。以下是您想要的内容。它看起来像这样:

<key>CFBundleIdentifier</key>
<string>com.culturedcode.things</string>

或这个:

CFBundleIdentifier = "com.macromates.textmate";

答案2

您可以随意尝试,例如,尝试org.quickcursor.QuickCursor其他变体,直到您做对为止。org.hogbay.QuickCursor这是另一种可能性。不幸的是,我没有 Mac 可以玩(我可能会因此被否决!)。

答案3

我见过有人称之为反向域名命名,但其理念是一样的。如果每个人都在他们控制的域名上使用所需的系统,那么它对于避免冲突很有用,这样就不会出现供应商之间的名称冲突。它在 Java 软件包中非常常见,这就是为什么你会在 Android 中一直看到它。

答案4

您看到的是应用程序的包标识符。这些必须是唯一的,而 Apple 强制执行此要求的方式是使用反向 DN 表示法。这样,编辑者就可以使用他们的域名来唯一地标识他们的应用程序,并且逻辑上不会发生名称冲突。

Mac OS 使用包标识符来定位程序,无论它在系统上位于何处。查找程序包标识符的一种方法是检查其属性列表(可能有更简单的选项,但我真的不知道)。

相关内容