Como lidar com identificadores de pacote configurável com espaços?

0

Vamos assumir que meu diretório atual é /Applicationse contém todos os meus aplicativos. Digamos que eu queira saber o identificador de pacote do Google Chrome :

$ mdls -raw -name kMDItemCFBundleIdentifier 'Google Chrome.app'
com.google.Chrome

Agora vamos usar isso para localizar o aplicativo :

$ mdfind kMDItemCFBundleIdentifier = com.google.Chrome
/Applications/Google Chrome.app

Agora vamos tentar o mesmo para o Tor Browser Bundle . Primeiro, obtenha o identificador de pacote configurável:

$ mdls -raw -name kMDItemCFBundleIdentifier TorBrowser.app
org.mozilla.tor browser

Em seguida, localize o aplicativo:

$ mdfind kMDItemCFBundleIdentifier = org.mozilla.tor browser

Nada. Eu provavelmente preciso citá-lo:

$ mdfind kMDItemCFBundleIdentifier = 'org.mozilla.tor browser'

Não, ainda nada. Vamos tentar outra coisa:

$ mdfind kMDItemCFBundleIdentifier = 'org.mozilla.tor'
$ mdfind kMDItemCFBundleIdentifier = "org.mozilla.tor browser"
$ mdfind kMDItemCFBundleIdentifier = org.mozilla.tor\ browser
$ mdfind kMDItemCFBundleIdentifier = "org.mozilla.tor\ browser"
$ mdfind kMDItemCFBundleIdentifier = 'org.mozilla.tor%20browser'
$ mdfind kMDItemCFBundleIdentifier = 'org.mozilla.tor+browser'
$ mdfind kMDItemCFBundleIdentifier = 'org.mozilla.tor_browser'

Nada funciona. Este é o único aplicativo com o qual já tive esse problema e o único que vi com um espaço no identificador de pacote. Como podemos fazer referência a isso?

user137369
fonte
Não consigo verificá-lo, porque não tenho um aplicativo com espaço no identificador de pacote, mas que tal escapar desse espaço \`? Ou "citações?
Mateusz Szlosek
Não. Nada ainda.
User137369

Respostas:

1

Um identificador de pacote adequado não deve ter espaço nele. De acordo com o Guia de distribuição de aplicativos da Apple -> Sobre os códigos de pacote , um

"... a sequência de IDs do pacote deve ser um UTI ( Identificador de Tipo Uniforme ) que contém apenas caracteres alfanuméricos (AZ, az, 0-9), hífen (-) e ponto (.). A sequência deve estar no DNS reverso Por exemplo, se o domínio da sua organização for Acme.come você criar um aplicativo com o nome Hello, poderá atribuir a sequência com.Acme.Hellocomo o ID do pacote do aplicativo.

Portanto, tecnicamente, org.mozilla.tor browsernão é um identificador de pacote válido, portanto, você obterá resultados inesperados ao tentar trabalhar com ele. Provavelmente deve ser alterado (pelo desenvolvedor) para algo como org.mozilla.tor.browserou org.mozilla.tor-browseretc.

NSGod
fonte