![“com.developer.application” 是什么意思?](https://linux22.com/image/1253932/%E2%80%9Ccom.developer.application%E2%80%9D%20%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
我正在 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]
文件都被分组。
如何找出给定应用程序的包标识符:
- 右键单击应用程序包(带有图标的东西)并选择
Show Package Contents
。 Contents/Info.plist
使用以下方式打开Property List Editor
(Apple 开发者工具的一部分)。您也可以尝试使用文本编辑器打开文件,如果它不是以 开头bplist
,您可以阅读它。- 在此文件中查找
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 使用包标识符来定位程序,无论它在系统上位于何处。查找程序包标识符的一种方法是检查其属性列表(可能有更简单的选项,但我真的不知道)。