File iTunesMetadata.plist nelle app Xamarin.iOS

Questo articolo illustra il file iTunesMetadata.plist usato per fornire informazioni a iTunes su un'applicazione iOS con la distribuzione ad hoc per il test o la distribuzione a livello aziendale.

Quando un'applicazione iOS viene creata in iTunes Connect (per la vendita o il rilascio gratuito dall'App Store iTunes), lo sviluppatore può specificare informazioni come il genere dell'applicazione, il genere secondario, le informazioni sul copyright, i dispositivi iOS supportati e le funzionalità dei dispositivi necessarie. Per le applicazioni iOS distribuite ai tester o agli utenti Enterprise tramite la distribuzione ad hoc, queste informazioni mancano.

Per fornire le informazioni mancanti a una distribuzione ad hoc, è possibile creare un file iTunesMetadata.plist facoltativo e includerlo nel file IPA delle applicazioni. Questo file con estensione plist è un file XML con formattazione speciale, contenente coppie chiave/valore che definiscono le informazioni su una determinata applicazione iOS. Per altre informazioni, vedere Property List Programming Guide (Guida alla programmazione di elenchi di proprietà) di Apple.

Contenuto di iTunesMetadata.plist

Il seguente è un esempio di un file iTunesMetadata.plist tipico usato per definire le informazioni di iTunes per una distribuzione 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>

I valori delle singole chiavi sono illustrati sotto in dettaglio.

UIRequiredDeviceCapabilities

La chiave UIRequiredDeviceCapabilities consente a iTunes di conoscere le funzionalità specifiche di un dispositivo iOS, necessarie per installare un'applicazione iOS in tale dispositivo. Viene fornita come dizionario (<dict>...</dict>) di funzionalità (<key>...</key>) a ognuna delle quali corrisponde un valore booleano. Se il valore di una funzionalità è true, tale funzionalità deve essere presente. Se è false, la funzionalità non deve essere presente nel dispositivo. Ad esempio:

<key>UIRequiredDeviceCapabilities</key>
<dict>
    <key>armv7</key>
    <true/>
    <key>front-facing-camera</key>
    <true/>
</dict>

Specifica che il dispositivo iOS deve supportare il set di istruzioni ARM7 e avere una fotocamera rivolta in avanti prima che questa applicazione possa essere installata nel dispositivo. Per un elenco completo di valori consentiti, vedere la documentazione su UIRequiredDeviceCapabilities di Apple.

artistName e playlistArtistName

Usare le chiavi artistName e playlistArtistName per definire il nome della società che ha creato l'applicazione iOS che verrà visualizzato in iTunes. Esempio:

<key>artistName</key>
<string>Company, Inc.</string>
...
<key>playlistArtistName</key>
<string>Company, Inc.</string>

bundleDisplayName, itemName e playlistName

Usare le chiavi bundleDisplayName, itemName e playlistName per definire il nome dell'applicazione iOS che verrà visualizzato in iTunes. Esempio:

<key>bundleDisplayName</key>
<string>App Name</string>
...
<key>itemName</key>
<string>App Name</string>
...
<key>playlistName</key>
<string>App Name</string>

bundleShortVersionString e bundleVersion

Usare le chiavi bundleShortVersionString e bundleVersion per definire il numero di versione dell'applicazione iOS che verrà visualizzato in iTunes. Esempio:

<key>bundleShortVersionString</key>
<string>1.5.1</string>
<key>bundleVersion</key>
<string>1.5.1</string>

softwareVersionBundleId

Usare la chiave softwareVersionBundleId per specificare l'ID del bundle per l'applicazione iOS. Esempio:

<key>softwareVersionBundleId</key>
<string>com.company.appid</string>

Usare la chiave copyright per definire le informazioni sul copyright visualizzate in iTunes. Esempio:

<key>copyright</key>
<string>© 2015 Company, Inc.</string>

releaseDate

Usare la chiave releaseDate per specificare una Data di rilascio per l'applicazione iOS che verrà visualizzata in iTunes. Esempio:

<key>releaseDate</key>
<string>2015-11-18T03:23:10Z</string>

softwareIconNeedsShine

Usare la chiave softwareIconNeedsShine per comunicare a iTunes se l'icona dell'applicazione iOS richiede un punto luce per iOS 6 (e versioni precedenti). Esempio:

<key>softwareIconNeedsShine</key>
<false/>

gameCenterEnabled e gameCenterEverEnabled

Usare le chiavi gameCenterEnabled e gameCenterEverEnabled per comunicare a iTunes se questa applicazione iOS supporta Game Center di Apple. Esempio:

<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>

genre, genreId e subgenres

Usare le chiavi genre e genreId per comunicare a iTunes il genere a cui appartiene l'applicazione iOS. Esempio:

<key>genre</key>
<string>Games</string>
<key>genreId</key>
<integer>6014</integer>

La chiave subgenres può facoltativamente essere usata per definire fino a due generi secondari per l'applicazione iOS. Esempio:

<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>

Per le applicazioni iOS, Apple definisce attualmente i generi e gli ID di genere seguenti:

ID genere Nome genere
6000 Azienda
6001 Meteo
6002 Utilità
6003 Viaggi
6004 Sport
6005 Social networking
6006 Riferimento
6007 Produttività
6008 Foto e video
6009 Novità
6010 Navigazione
6011 Musica
6012 Lifestyle
6013 Salute e benessere
6014 Giochi
6015 Dati finanziari
6016 Entertainment
6017 Istruzione
6018 Libri
6020 Medico
6021 Newsstand
6022 Cataloghi

Sottogeneri giochi (6014):

ID genere Nome genere
7001 Azione
7002 modelli
7003 Arcade
7004 Bacheca
7005 Scheda
7006 Casinò
7007 Dadi
7008 Didattici
7009 Famiglia
7010 Bambini
7011 Musica
7012 Puzzle
7013 Corse
7014 Gioco di ruolo
7015 Simulazione
7016 Sport
7017 Strategia
7018 Trivia
7019 Word

Sottogeneri Newstand (6021):

ID genere Nome genere
13001 Notizie e politica
13002 Moda e stile
13003 Casa e giardino
13004 Natura e vita all'aria aperta
13005 Sport e svago
13006 Automobili
13007 Arte e fotografia
13008 Matrimoni
13009 Affari e investimenti
13010 Riviste per bambini
13011 Computer e Internet
13012 Cucina, cibo e bevande
13013 Hobby e artigianato
13014 Elettronica e audio
13015 Entertainment
13017 Salute del corpo e della mente
13018 Cronologia
13019 Giornali e riviste letterari
13020 Argomenti di interesse maschile
13021 Film e musica
13023 Genitorialità e famiglia
13024 Animali
13025 Professionali e di settore
13026 Notizie regionali
13027 Scienza
13028 Adolescenti
13029 Viaggi e informazioni regionali
13030 Argomenti di interesse femminile

softwareSupportedDeviceIds

Usare la chiave softwareSupportedDeviceIds per comunicare a iTunes i dispositivi iOS supportati da questa applicazione iOS. Esempio:

<key>softwareSupportedDeviceIds</key>
<array>
    <integer>9</integer>
</array>

Dove sono disponibili i valori seguenti:

  • 1: iPhone classici
  • 2: iPod Touch
  • 4: iPad
  • 9: iPhone moderni

Chiavi standard

Le chiavi seguenti sono incluse in tutti i file iTunesMetadata.plist per le applicazioni iOS e hanno sempre gli stessi valori:

<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>

Creazione di un file iTunesMetadata.plist

Quando si usa un file iTunesMetadata.plist in Visual Studio per Mac, sono disponibili due opzioni:

  • Creare e gestire il file usando l'editor di file plist visivo di Visual Studio per Mac.
  • Creare e gestire il file in un editor di testo normale.

Entrambe le opzioni sono illustrate sotto in dettaglio.

Uso dell'editor di file plist visivo

Effettua le operazioni seguenti:

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file di progetto Xamarin.iOS e scegliere Aggiungi>Nuovo file.

  2. Nella finestra di dialogo Nuovo file selezionare iOS>Elenco proprietà:

    Select iOS Property List

  3. Immettere iTunesMetadata in Nome e fare clic sul pulsante Nuovo.

  4. Fare doppio clic sul file iTunesMetadata.plist in Esplora soluzioni per aprirlo e modificarlo:

    The iTunesMetadata.plist editor

  5. Fare clic sul segno + verde per creare una nuova voce e immettere UIRequiredDeviceCapabilities come nome della chiave:

    Create a new entry and enter UIRequiredDeviceCapabilities as the key name

  6. Fare clic sul tipo valore Stringa e selezionare Dizionario nell'elenco popup:

    Select Dictionary from the popup list

  7. Fare clic sulla freccia verso il basso a sinistra del nome della proprietà per visualizzare le voci del dizionario:

    Reveal the dictionary entries

  8. Fare clic sul testo Aggiungi una nuova voce, quindi fare clic sul segno + verde per aggiungere una voce al dizionario:

    Add an entry to the dictionary

  9. Immettere armv7 come nome della chiave, selezionare un tipo Booleano e immettere come valore:

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

  10. Ripetere i passaggi precedenti fino a riempire il file iTunesMetadata.plist con tutte le coppie chiave/valore necessarie. Per altre informazioni dettagliate, vedere la sezione Contenuto di iTunesMetadata.plist sopra.

  11. Salvare le modifiche apportate al file con estensione plist.

Uso di un editor di testo normale

Effettua le operazioni seguenti:

  1. In un editor di testo normale creare un nuovo file di testo e denominarlo iTunesMetadata.plist.
  2. Copiare il contenuto di esempio dalla sezione Contenuto di iTunesMetadata.plist sopra.
  3. Incollare il contenuto nel file e modificarlo in base alla necessità.
  4. Salvare il file e tornare a Visual Studio per Mac.
  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file di progetto Xamarin.iOS e scegliere Aggiungi>File esistenti.
  6. Nella finestra di dialogo Apri file selezionare il file iTunesMetadata.plist creato sopra e fare clic sul pulsante OK.
  7. Lasciare l'opzione Azione di compilazione di questo file impostata su Nessuna.

Selezionare in seguito questo file iTunesMetadata.plist durante la preparazione della compilazione del file IPA nell'IDE.

Riepilogo

Questo articolo ha illustrato il file iTunesMetadata.plist che può essere usato per comunicare a iTunes informazioni su un'applicazione iOS distribuita con la modalità ad hoc. Ha descritto la chiave standard nel file con estensione plist e come creare e gestire il file in Visual Studio e Visual Studio per Mac.