Partilhar via


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>

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:

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo de projeto Xamarin.iOS e selecione Adicionar>Novo Arquivo...

  2. Na caixa de diálogo Novo Arquivo, selecione iOS>Lista de Propriedades:

    Select iOS Property List

  3. Digite iTunesMetadata para o Nome e clique no botão Novo.

  4. Clique duas vezes no arquivo iTunesMetadata.plist no Gerenciador de Soluções para abri-lo para edição:

    The iTunesMetadata.plist editor

  5. Clique no + verde para criar uma nova entrada e digite UIRequiredDeviceCapabilities como o nome da chave:

    Create a new entry and enter UIRequiredDeviceCapabilities as the key name

  6. Clique no tipo de valor da Cadeia de caracteres e selecione Dicionário na lista pop-up:

    Select Dictionary from the popup list

  7. Clique na dobra à esquerda do nome da Propriedade para revelar as entradas do dicionário:

    Reveal the dictionary entries

  8. Clique no texto Adicionar nova entrada e, em seguida, clique no + verde para adicionar uma entrada ao dicionário:

    Add an entry to the dictionary

  9. Digite armv7 para o nome da chave, selecione um tipo de booliano e digite Sim como o valor:

    Enter armv7 for the key name, select a type of Boolean and enter Yes as the value

  10. 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).

  11. Salve as alterações no arquivo plist.

Usando um Editor de Texto Sem Formatação

Faça o seguinte:

  1. Em um editor de texto sem formatação, crie um novo arquivo de texto e nomeie-o como iTunesMetadata.plist.
  2. Copie o conteúdo de exemplo da seção O Conteúdo do iTunesMetadata.plist acima.
  3. Cole o conteúdo no arquivo e edite-o conforme necessário.
  4. Salve o arquivo e retorne ao Visual Studio para Mac.
  5. No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo de projeto Xamarin.iOS e selecione Adicionar>Arquivos Existentes....
  6. Na caixa de diálogo Abrir Arquivo, selecione o arquivo iTunesMetadata.plist que foi criado acima e clique no botão OK.
  7. 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.