O arquivo iTunesMetadata.plist em aplicativos Xamarin.iOS
Este artigo aborda o arquivo iTunesMetadata.plist usado para fornecer informações ao iTunes sobre um aplicativo iOS que utiliza a distribuição ad hoc para testes ou implantação corporativa.
Quando um aplicativo iOS é criado no iTune Connect (seja para venda ou para lançamento gratuito pela iTunes App Store), o desenvolvedor pode especificar informações, como o gênero e o subgênero do aplicativo, a notificação de direitos autorais, os dispositivos iOS com suporte e os recursos obrigatórios do dispositivo. Para os aplicativos iOS que são entregues para testadores ou para usuários empresariais por meio da distribuição ad hoc, essas informações estão ausentes.
Para fornecer as informações ausentes a uma distribuição ad hoc, um arquivo iTunesMetadata.plist
opcional pode ser criado e incluído no arquivo IPA de aplicativos. Esse arquivo plist é um arquivo XML especialmente formatado (consulte o Property List Programming Guide (Guia de Programação da Lista de Propriedade) da Apple para obter mais informações), que contém pares de chave/valor que definem as informações sobre um determinado aplicativo iOS.
O Conteúdo do iTunesMetadata.plist
O exemplo a seguir mostra um arquivo iTunesMetadata.plist
típico usado para definir as informações do iTunes para uma distribuição ad hoc:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIRequiredDeviceCapabilities</key>
<dict>
<key>armv7</key>
<true/>
<key>front-facing-camera</key>
<true/>
</dict>
<key>artistName</key>
<string>Company, Inc.</string>
<key>bundleDisplayName</key>
<string>App Name</string>
<key>bundleShortVersionString</key>
<string>1.5.1</string>
<key>bundleVersion</key>
<string>1.5.1</string>
<key>copyright</key>
<string>© 2015 Company, Inc.</string>
<key>drmVersionNumber</key>
<integer>0</integer>
<key>fileExtension</key>
<string>.app</string>
<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>
<key>genre</key>
<string>Games</string>
<key>genreId</key>
<integer>6014</integer>
<key>itemName</key>
<string>App Name</string>
<key>kind</key>
<string>software</string>
<key>playlistArtistName</key>
<string>Company, Inc.</string>
<key>playlistName</key>
<string>App Name</string>
<key>releaseDate</key>
<string>2015-11-18T03:23:10Z</string>
<key>s</key>
<integer>143441</integer>
<key>softwareIconNeedsShine</key>
<false/>
<key>softwareSupportedDeviceIds</key>
<array>
<integer>9</integer>
</array>
<key>softwareVersionBundleId</key>
<string>com.company.appid</string>
<key>subgenres</key>
<array>
<dict>
<key>genre</key>
<string>Puzzle</string>
<key>genreId</key>
<integer>7012</integer>
</dict>
<dict>
<key>genre</key>
<string>Word</string>
<key>genreId</key>
<integer>7019</integer>
</dict>
</array>
<key>versionRestrictions</key>
<integer>16843008</integer>
</dict>
</plist>
Os valores para as chaves individuais serão abordados em detalhes abaixo.
UIRequiredDeviceCapabilities
A chave UIRequiredDeviceCapabilities
permite que o iTunes saiba quais recursos específicos de dispositivo um aplicativo iOS exige antes que ele possa ser instalado em um determinado dispositivo iOS. Ele é fornecido como um dicionário (<dict>...</dict>
) de recursos (<key>...</key>
) e um valor booliano para cada recurso. Se o valor de um recurso for true
, esse recurso deverá estar presente. Se ele for false
, o recurso não deverá estar presente no dispositivo. Por exemplo:
<key>UIRequiredDeviceCapabilities</key>
<dict>
<key>armv7</key>
<true/>
<key>front-facing-camera</key>
<true/>
</dict>
Especifica que o dispositivo iOS deve dar suporte para o conjunto de instruções ARM7 e ter uma câmera frontal antes que esse aplicativo possa ser instalado no dispositivo. Para obter uma lista completa dos valores permitidos, consulte a documentação UIRequiredDeviceCapabilities da Apple.
artistName e playlistArtistName
Use as chaves artistName
e playlistArtistName
para definir o nome da empresa que criou o aplicativo iOS que será exibido no iTunes. Exemplo:
<key>artistName</key>
<string>Company, Inc.</string>
...
<key>playlistArtistName</key>
<string>Company, Inc.</string>
bundleDisplayName, itemName e playlistName
Use as chaves bundleDisplayName
, itemName
e playlistName
para definir o nome do aplicativo iOS que será exibido no iTunes. Exemplo:
<key>bundleDisplayName</key>
<string>App Name</string>
...
<key>itemName</key>
<string>App Name</string>
...
<key>playlistName</key>
<string>App Name</string>
bundleShortVersionString e bundleVersion
Use as chaves bundleShortVersionString
e bundleVersion
para definir o número de versão do aplicativo iOS que será exibido no iTunes. Exemplo:
<key>bundleShortVersionString</key>
<string>1.5.1</string>
<key>bundleVersion</key>
<string>1.5.1</string>
softwareVersionBundleId
Use a chave softwareVersionBundleId
para especificar a ID do pacote para o aplicativo iOS. Exemplo:
<key>softwareVersionBundleId</key>
<string>com.company.appid</string>
copyright
Use a chave copyright
para definir a notificação de direitos autorais que é exibida no iTunes. Exemplo:
<key>copyright</key>
<string>© 2015 Company, Inc.</string>
releaseDate
Use a chave releaseDate
para fornecer uma data de lançamento para o aplicativo iOS que será exibido no iTunes. Exemplo:
<key>releaseDate</key>
<string>2015-11-18T03:23:10Z</string>
softwareIconNeedsShine
Use a chave softwareIconNeedsShine
para informar o iTunes se o ícone do aplicativo iOS exige um realce no iOS 6 (e nas versões anteriores). Exemplo:
<key>softwareIconNeedsShine</key>
<false/>
gameCenterEnabled e gameCenterEverEnabled
Use as chaves gameCenterEnabled
e gameCenterEverEnabled
para informar o iTunes se o aplicativo iOS dá suporte ao Game Center da Apple. Exemplo:
<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>
genre, genreId e subgenres
Use as chaves genre
e genreId
para informar ao iTunes em qual gênero o aplicativo iOS pertence. Exemplo:
<key>genre</key>
<string>Games</string>
<key>genreId</key>
<integer>6014</integer>
Como alternativa, a chave subgenres
pode ser usada para definir até dois subgêneros para o aplicativo iOS. Exemplo:
<key>subgenres</key>
<array>
<dict>
<key>genre</key>
<string>Puzzle</string>
<key>genreId</key>
<integer>7012</integer>
</dict>
<dict>
<key>genre</key>
<string>Word</string>
<key>genreId</key>
<integer>7019</integer>
</dict>
</array>
Para aplicativos iOS, a Apple atualmente define os seguintes gêneros e IDs de gênero:
ID de gênero | Nome de gênero |
---|---|
6000 | Negócios |
6001 | Clima |
6002 | Utilidades |
6003 | Viagem |
6004 | Esportes |
6005 | Redes sociais |
6006 | Referência |
6007 | Produtividade |
6008 | Fotos e vídeos |
6009 | News |
6010 | Navegação |
6011 | Música |
6012 | Estilo de vida |
6013 | Saúde e bem-estar |
6014 | Jogos |
6015 | Finance |
6016 | Entretenimento |
6017 | Educação |
6018 | Manuais |
6020 | Médicos |
6021 | Newsstand |
6022 | Catálogos |
Subgêneros de jogos (6014):
ID de gênero | Nome de gênero |
---|---|
7001 | Ação |
7002 | Adventure |
7003 | Fliperama |
7004 | Quadro |
7005 | Cartão |
7006 | Cassino |
7007 | Dados |
7008 | Formação educacional |
7009 | Família |
7010 | Filhos |
7011 | Música |
7012 | Puzzle |
7013 | Corrida |
7014 | Encenação |
7015 | Simulação |
7016 | Esportes |
7017 | Estratégia |
7018 | Trivia |
7019 | Word |
Subgêneros de banca de jornal (6021):
ID de gênero | Nome de gênero |
---|---|
13001 | Notícias e política |
13002 | Forma e estilo |
13003 | Casa e ambiente |
13004 | Ao ar livre e natureza |
13005 | Esportes e lazer |
13006 | Automotivo |
13007 | Artes e fotografia |
13008 | Noivas e casamentos |
13009 | Negócios e investimentos |
13010 | Revistas de crianças |
13011 | Computadores e Internet |
13012 | Culinária, comida e bebida |
13013 | Artesanatos e passatempos |
13014 | Eletrônicos e áudio |
13015 | Entretenimento |
13017 | Saúde, mente e corpo |
13018 | Histórico |
13019 | Diários & revistas literários |
13020 | Interesse de homens |
13021 | Filmes e músicas |
13023 | Paternidade e família |
13024 | Animais de estimação |
13025 | Profissional e comércio |
13026 | Notícias regionais |
13027 | Ciência |
13028 | Adolescentes |
13029 | Viagens e regionais |
13030 | Interesse de mulheres |
softwareSupportedDeviceIds
Use a chave softwareSupportedDeviceIds
para informar ao iTunes quais dispositivos iOS dão suporte a esse aplicativo iOS. Exemplo:
<key>softwareSupportedDeviceIds</key>
<array>
<integer>9</integer>
</array>
Onde os valores a seguir estão disponíveis:
- 1 – iPhones Clássicos
- 2 – iPod Touch
- 4 – iPad
- 9 – iPhones Modernos
Chaves Padrão
As chaves a seguir são incluídas em todos os arquivos iTunesMetadata.plist
nos aplicativos iOS e sempre têm os mesmos valores:
<key>drmVersionNumber</key>
<integer>0</integer>
<key>fileExtension</key>
<string>.app</string>
...
<key>kind</key>
<string>software</string>
...
<key>s</key>
<integer>143441</integer>
...
<key>versionRestrictions</key>
<integer>16843008</integer>
Criando um Arquivo iTunesMetadata.plist
Ao trabalhar com um arquivo iTunesMetadata.plist
no Visual Studio para Mac, você tem duas opções:
- Criar e manter o arquivo usando o editor de plist visual do Visual Studio para Mac.
- Criar e manter o arquivo em um editor de texto sem formatação.
Ambas as opções serão abordadas em detalhes abaixo.
Usando o Editor Visual Plist
Faça o seguinte:
No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo de projeto Xamarin.iOS e selecione Adicionar>Novo Arquivo...
Na caixa de diálogo Novo Arquivo, selecione iOS>Lista de Propriedades:
Digite
iTunesMetadata
para o Nome e clique no botão Novo.Clique duas vezes no arquivo
iTunesMetadata.plist
no Gerenciador de Soluções para abri-lo para edição:Clique no + verde para criar uma nova entrada e digite
UIRequiredDeviceCapabilities
como o nome da chave:Clique no tipo de valor da Cadeia de caracteres e selecione Dicionário na lista pop-up:
Clique na dobra à esquerda do nome da Propriedade para revelar as entradas do dicionário:
Clique no texto Adicionar nova entrada e, em seguida, clique no + verde para adicionar uma entrada ao dicionário:
Digite
armv7
para o nome da chave, selecione um tipo de booliano e digite Sim como o valor:Repita as etapas acima até que você tenha preenchido o arquivo
iTunesMetadata.plist
com todos os pares de chave/valor necessários (confira a seção O Conteúdo do iTunesMetadata.plist acima para obter mais detalhes).Salve as alterações no arquivo plist.
Usando um Editor de Texto Sem Formatação
Faça o seguinte:
- Em um editor de texto sem formatação, crie um novo arquivo de texto e nomeie-o como
iTunesMetadata.plist
. - Copie o conteúdo de exemplo da seção O Conteúdo do iTunesMetadata.plist acima.
- Cole o conteúdo no arquivo e edite-o conforme necessário.
- Salve o arquivo e retorne ao Visual Studio para Mac.
- No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo de projeto Xamarin.iOS e selecione Adicionar>Arquivos Existentes....
- Na caixa de diálogo Abrir Arquivo, selecione o arquivo
iTunesMetadata.plist
que foi criado acima e clique no botão OK. - Deixe a Ação de Build desse arquivo definida como Nenhuma.
Posteriormente, selecione esse arquivo iTunesMetadata.plist
enquanto se prepara para criar o IPA no IDE.
Resumo
Esse artigo abordou o arquivo iTunesMetadata.plist
que pode ser usado para informar o iTunes sobre um aplicativo iOS ad hoc entregue. Ele discutiu a chave padrão no arquivo plist e como criar e manter o arquivo no Visual Studio e no Visual Studio para Mac.