4

Я редактирую файл plist на моем Mac для приложения QuickCursor . Я хотел бы попытаться добавить Aquamacs в список доступных приложений для редактирования. В любом случае, все остальные редакторы, перечисленные в списке, вызываются с чем-то похожим на com.developer.application . Например:

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

Я заметил, что все "процессы" или "приложения" на моем телефоне Android следуют аналогичной схеме именования. Так какого черта я называю эти вещи? Реверс-адресов URI?

И еще для моей цели, как мне найти «обратный URI» для любого произвольного приложения Mac? (Я отлично использую терминал, если это самый простой способ.)

Пожалуйста, не стесняйтесь отмечать это лучшими тегами, чтобы другие могли найти его в будущем.

4 ответа4

7

Эти идентификаторы пакета однозначно идентифицируют приложение.

Apple объясняет это (для виджетов Dashboard) здесь:

Обратный идентификатор стиля домена Интернета для пакета.

Если вы хотите получить программный доступ к ним на 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";

4

Вы можете поиграть с этим и попробовать, например, org.quickcursor.QuickCursor или другие варианты, пока вы не сделаете это правильно. org.hogbay.QuickCursor это еще одна возможность. К сожалению, у меня нет Mac, с которым можно играть (вероятно, мне за это проголосуют!).

3

Я видел, что это называется обратным именованием домена, но идея та же. Это полезно для предотвращения конфликтов, если все используют систему, необходимую для доменных имен, которыми они управляют, чтобы не было возможности конфликта имен между поставщиками. Это очень распространено в пакетах Java, поэтому вы постоянно видите его в Android.

2

То, что вы видите, является идентификатором пакета приложения. Они должны быть уникальными, и Apple применяет способ принудительного использования нотации обратного DN. Таким образом, редакторы используют свое доменное имя для уникальной идентификации своих приложений, и логическое столкновение имен не должно возникать.

Идентификатор пакета используется Mac OS, чтобы найти программу, где бы она ни находилась в вашей системе. Один из способов найти идентификатор пакета программы - это просмотреть список ее свойств (могут быть менее сложные параметры, но я их не знаю).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .