O que significa “com.developer.application”?

4

Estou editando um arquivo plist no meu Mac para o aplicativo QuickCursor . Eu gostaria de tentar adicionar Aquamacs à lista de aplicativos de edição disponíveis. Em qualquer caso, todos os outros editores listados no plist são chamados com algo parecido com com.developer.application . Por exemplo:

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

Eu notei que todos os "processos" ou "aplicativos" no meu telefone Android seguem um esquema de nomenclatura semelhante. Então, o que diabos eu chamo essas coisas? URI reversa?

E mais, para o meu propósito, como encontro o "URI reverso" para qualquer aplicativo Mac arbitrário? (Eu sou legal em usar o terminal se esse é o jeito mais fácil.)

Sinta-se à vontade para marcar isso com tags melhores para que outras pessoas possam encontrá-lo no futuro.

    
por jrhorn424 16.10.2010 / 21:01

4 respostas

7

Esses identificadores de pacote identificam exclusivamente um aplicativo.

A Apple explica isso (para widgets do Dashboard) aqui :

The reverse Internet domain style identifier for the bundle.

Se você quiser acessá-las programaticamente em um Mac, consulte aqui .

O Java tem a mesma convenção de nomenclatura para pacotes .

In general, a package name begins with the top level domain name of the organization and then the organization's domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package.

Isso é o que você vê no seu sistema Android.

O motivo desse formato é que um nome de domínio identifica exclusivamente uma organização ou um desenvolvedor e, dentro de uma organização, as pessoas devem ser capazes de evitar conflitos. Como os Nomes de Domínio são baseados em uma hierarquia, representando esses identificadores da mesma forma que faz sentido: A ordem do elemento é bastante arbitrária, e ordem inversa também permite a classificação adequada, para que todos os arquivos com.apple.[etc] sejam agrupados.

Como descobrir o identificador do pacote para uma determinada aplicação :

  1. Clique com o botão direito no pacote do aplicativo (a coisa com o ícone) e selecione Show Package Contents .
  2. Abra Contents/Info.plist com Property List Editor (parte das Ferramentas do desenvolvedor da Apple). Você também pode tentar abrir o arquivo com um editor de texto, se ele não iniciar com bplist , você poderá lê-lo.
  3. Procure por CFBundleIdentifier neste arquivo. O que segue é o que você quer. Parece algo assim:

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

ou isto:

CFBundleIdentifier = "com.macromates.textmate";

    
por 16.10.2010 / 23:22
4

Você pode ser divertido com isso e tentar, por exemplo, org.quickcursor.QuickCursor ou outras variações até acertar. org.hogbay.QuickCursor é outra possibilidade. Infelizmente eu não tenho um mac para jogar (eu provavelmente vou ser derrotado por isso!).

    
por 16.10.2010 / 21:18
3

Eu já vi isso chamado nomeação de domínio reverso, mas a ideia é a mesma. É útil para evitar conflitos se todos usarem o sistema necessário nos nomes de domínio que controlarem, para que não haja chance de uma colisão de nomes entre os fornecedores. É extremamente comum com pacotes Java, e é por isso que você o vê todo o tempo no Android.

    
por 16.10.2010 / 21:41
2

O que você vê é o identificador do pacote do aplicativo. Eles precisam ser exclusivos, e a maneira de a Apple impor isso era usar uma notação de DN reversa. Dessa forma, os editores usam seu nome de domínio para identificar seus aplicativos de maneira exclusiva, e nenhum conflito de nomes deve surgir logicamente.

O identificador do pacote é usado pelo Mac OS para localizar o programa onde quer que esteja em seu sistema. Uma maneira de encontrar o identificador de pacote de um programa é inspecionando sua lista de propriedades (pode haver opções menos complicadas, mas eu realmente não as conheço).

    
por 16.10.2010 / 22:45