題 “com.developer.application”是什麼意思?


我正在我的Mac上編輯一個plist文件 QuickCursor 應用程序。我想嘗試將Aquamacs添加到可用的編輯應用程序列表中。在任何情況下,plist中列出的所有其他編輯器都會被調用 com.developer.application。例如:

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

我注意到我的Android手機上的所有“進程”或“應用程序”都遵循類似的命名方案。那麼我怎麼稱呼那些東西呢?反向URI的?

更重要的是,我如何為任意Mac應用找到“反向URI”? (如果這是最簡單的方法,我很喜歡使用終端。)

請隨意用更好的標籤來標記,以便其他人可以在將來找到它。


4
2017-10-16 19:01


起源




答案:


這些 包標識符 唯一標識應用程序。

Apple解釋了這些(用於儀表板小部件) 這裡

捆綁包的反向Internet域樣式標識符。

如果要在Mac上以編程方式訪問這些,請參閱 這裡

Java具有相同的命名約定

通常,包名稱以組織的頂級域名開頭,然後是組織的域,然後是以相反順序列出的任何子域。然後,組織可以為其包選擇特定名稱。

這是您在Android系統上看到的內容。

這種格式的原因是域名唯一地標識組織或開發人員,並且在組織內人們應該能夠避免衝突。以來 網站域名 基於層次結構,以相同的方式表示這些標識符:元素順序相當隨意,反向順序也允許正確排序,以便所有 com.apple.[etc] 文件被分組。

如何找出給定應用程序的包標識符

  1. 右鍵單擊應用程序包(帶圖標的事物)並選擇 Show Package Contents
  2. 打開 Contents/Info.plist 同 Property List Editor (Apple Developer Tools的一部分)。您也可以嘗試使用文本編輯器打開文件(如果它不是以文本編輯器開頭) bplist,你可以讀它。
  3. 尋找 CFBundleIdentifier 在這個文件中。以下是您想要的。它看起來像這樣:

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

或這個:

CFBundleIdentifier = "com.macromates.textmate";


7
2017-10-16 21:22





你可以玩這個玩,試試看,例如, org.quickcursor.QuickCursor 或其他變化,直到你做對了。 org.hogbay.QuickCursor 是另一種可能性。不幸的是我沒有可玩的Mac(我可能會為此投票!)。


4
2017-10-16 19:18



大聲笑,沒有我的命中註意! - jrhorn424


我已經看到它稱為反向域命名,但這個想法是一樣的。如果每個人都使用他們控制的域名所需的系統,這對於避免衝突是有用的,這樣就不會在供應商之間發生名稱衝突。它在Java軟件包中非常常見,這就是你在Android中一直看到它的原因。


3
2017-10-16 19:41





您看到的是應用程序的包標識符。這些都必須是唯一的,而Apple的強制執行方式是使用反向DN表示法。這樣,編輯器使用他們的域名來唯一地標識他們的應用程序,並且邏輯上不會出現名稱衝突。

Mac OS使用軟件包標識符來定位程序,無論它在系統上的何處。查找程序包標識符的一種方法是檢查其屬性列表(可能沒有那麼複雜的選項,但我真的不知道它們)。


2
2017-10-16 20:45