Compartir vía


Archivo iTunesMetadata.plist en aplicaciones Xamarin.iOS

En este artículo se habla sobre el archivo iTunesMetadata.plist usado para proporcionar información a iTunes sobre una aplicación de iOS con distribución ad hoc para pruebas o implementación empresarial.

Cuando se crea una aplicación de iOS en iTune Connect (ya sea para su venta o su distribución gratuita desde iTunes App Store), el desarrollador puede especificar información como el género de la aplicación, el subgénero, el aviso sobre derechos de autor, los dispositivos iOS admitidos y los requisitos del dispositivo. En el caso de las aplicaciones de iOS que se proporcionan a evaluadores o usuarios empresariales mediante distribución ad hoc, falta esta información.

Para proporcionar la información que falta en una distribución ad hoc, se puede crear un archivo iTunesMetadata.plist opcional e incluirlo en el archivo IPA de las aplicaciones. Este archivo plist es un archivo XML con un formato especial (vea Property List Programming Guide (Guía de programación de la lista de propiedades) para obtener más información) que contiene pares de clave/valor que definen la información sobre una aplicación de iOS determinada.

Contenido de iTunesMetadata.plist

El siguiente es un ejemplo de un archivo iTunesMetadata.plist típico usado para definir la información de iTunes para una distribución 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>

Los valores de las claves individuales se explicarán detalladamente a continuación.

UIRequiredDeviceCapabilities

La clave UIRequiredDeviceCapabilities permite a iTunes saber qué características específicas de dispositivo necesita una aplicación de iOS para poder instalarse en un dispositivo iOS determinado. Se proporciona como un diccionario (<dict>...</dict>) de características (<key>...</key>) y un valor booleano para cada característica. Si el valor de una característica es true, esa característica debe estar presente. Si es false, la característica no tiene que estar presente en el dispositivo. Por ejemplo:

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

Especifica que el dispositivo iOS debe admitir el conjunto de instrucciones ARM7 y tener una cámara frontal para que esta aplicación se pueda instalar en él. Para obtener una lista completa de valores permitidos, vea la documentación UIRequiredDeviceCapabilities de Apple.

artistName y playlistArtistName

Use las claves artistName y playlistArtistName para definir el nombre de la empresa que ha creado la aplicación de iOS que se mostrará en iTunes. Ejemplo:

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

bundleDisplayName, itemName y playlistName

Use las claves bundleDisplayName, itemName y playlistName para definir el nombre de la aplicación de iOS que se mostrará en iTunes. Ejemplo:

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

bundleShortVersionString y bundleVersion

Use las claves bundleShortVersionString y bundleVersion para definir el número de versión de la aplicación de iOS que se mostrará en iTunes. Ejemplo:

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

softwareVersionBundleId

Use la clave softwareVersionBundleId para especificar el identificador de paquete de la aplicación de iOS. Ejemplo:

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

Use la clave copyright para definir el aviso sobre derechos de autor que se muestra en iTunes. Ejemplo:

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

releaseDate

Use la clave releaseDate para proporcionar una fecha de lanzamiento para la aplicación de iOS que se mostrará en iTunes. Ejemplo:

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

softwareIconNeedsShine

Use la clave softwareIconNeedsShine para indicar a iTunes si el icono de la aplicación de iOS necesita un resaltado de brillo para iOS 6 (y anterior). Ejemplo:

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

gameCenterEnabled y gameCenterEverEnabled

Use las claves gameCenterEnabled y gameCenterEverEnabled para indicar a iTunes si esta aplicación de iOS es compatible con Game Center de Apple. Ejemplo:

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

genre, genreId y subgenres

Use las claves genre y genreId para indicar a iTunes a qué género pertenece la aplicación de iOS. Ejemplo:

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

Opcionalmente, se puede usar la clave subgenres para definir hasta dos subgéneros para la aplicación de iOS. Ejemplo:

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

En el caso de las aplicaciones de iOS, Apple actualmente define los géneros e identificadores de género siguientes:

Id. de género Nombre de género
6000 Negocio
6001 Tiempo
6002 Sectores públicos
6003 Viajes
6004 Deportes
6005 Redes sociales
6006 Referencia
6007 Productividad
6008 Fotos y vídeos
6009 Noticias
6010 Navegación
6011 Música
6012 Estilo de vida
6013 Salud y bienestar
6014 Juegos
6015 Finance
6016 Entretenimiento
6017 Education
6018 Libros
6020 Medicina
6021 Quiosco
6022 Catálogos

Subgéneros de juegos (6014):

Id. de género Nombre de género
7001 Action
7002 Adventure
7003 Arcade
7004 Tablero
7005 Tarjeta
7006 Casino
7007 Dados
7008 Educativos
7009 Familia
7010 Infantiles
7011 Música
7012 Puzle
7013 Carreras
7014 Juegos de rol
7015 Simulation
7016 Deportes
7017 Estrategia
7018 Trivia
7019 Word

Subgéneros de kiosko (6021):

Id. de género Nombre de género
13001 Noticias y política
13002 Moda y estilo
13003 Casa y jardín
13004 Exterior y naturaleza
13005 Deportes y ocio
13006 Automoción
13007 Arte y fotografía
13008 Novias y bodas
13009 Negocios e inversiones
13010 Revistas infantiles
13011 Equipos e Internet
13012 Cocina, comida y bebida
13013 Manualidades y aficiones
13014 Electrónica y audio
13015 Entretenimiento
13017 Salud, mente y cuerpo
13018 Historial
13019 Revistas literarias y diarios
13020 Intereses masculinos
13021 Películas y música
13023 Familia
13024 Mascotas
13025 Profesiones y oficios
13026 Noticias regionales
13027 Ciencia
13028 Adolescentes
13029 Viajes y regiones
13030 Intereses femeninos

softwareSupportedDeviceIds

Use la clave softwareSupportedDeviceIds para indicar a iTunes con qué dispositivos iOS es compatible esta aplicación de iOS. Ejemplo:

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

Donde están disponibles los valores siguientes:

  • 1 – Dispositivos iPhone clásicos
  • 2 – iPod Touch
  • 4 – iPad
  • 9 – Dispositivos iPhone modernos

Claves estándar

Las claves siguientes están incluidas en todos los archivos iTunesMetadata.plist de las aplicaciones de iOS y siempre tienen los mismos 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>

Creación de un archivo iTunesMetadata.plist

Al trabajar con un archivo iTunesMetadata.plist en Visual Studio para Mac, tiene dos opciones:

  • Crear y mantener el archivo mediante el editor de plist visual de Visual Studio para Mac.
  • Crear y mantener el archivo en un editor de texto sin formato.

Ambas opciones se explicarán en detalle a continuación.

Con el editor de plist visual

Haga lo siguiente:

  1. En el Explorador de soluciones, haga clic con el botón derecho en el archivo de proyecto de Xamarin.iOS y seleccione Agregar>Nuevo archivo….

  2. En el cuadro de diálogo Nuevo archivo, seleccione iOS>Lista de propiedades:

    Select iOS Property List

  3. Escriba iTunesMetadata para el Nombre y haga clic en el botón Nuevo.

  4. Haga doble clic en el archivo iTunesMetadata.plist en el Explorador de soluciones para abrirlo para su edición:

    The iTunesMetadata.plist editor

  5. Haga clic en el + verde para crear una nueva entrada y escriba UIRequiredDeviceCapabilities como nombre de clave:

    Create a new entry and enter UIRequiredDeviceCapabilities as the key name

  6. Haga clic en el tipo de valor Cadena y seleccione Diccionario en la lista emergente:

    Select Dictionary from the popup list

  7. Haga clic en el control situado a la izquierda del nombre de la propiedad para mostrar las entradas del diccionario:

    Reveal the dictionary entries

  8. Haga clic en el texto Agregar nueva entrada y luego haga clic en el + verde para agregar una entrada al diccionario:

    Add an entry to the dictionary

  9. Escriba armv7 para el nombre de clave, seleccione un tipo de booleano y escriba como valor:

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

  10. Repita los pasos anteriores hasta que haya rellenado el archivo iTunesMetadata.plist con todos los pares clave-valor necesarios (vea la sección anterior Contenido de iTunesMetadata.plist para obtener más información).

  11. Guarde los cambios en el archivo plist.

Uso de un editor de texto sin formato

Haga lo siguiente:

  1. En un editor de texto sin formato, cree un nuevo archivo de texto y asígnele el nombre iTunesMetadata.plist.
  2. Copie el contenido del ejemplo de la sección anterior Contenido de iTunesMetadata.plist.
  3. Pegue el contenido en el archivo y edítelo según sea necesario.
  4. Guarde el archivo y vuelva a Visual Studio para Mac.
  5. En el Explorador de soluciones, haga clic con el botón derecho en el archivo de proyecto de Xamarin.iOS y seleccione Agregar>Archivos existentes...
  6. En el cuadro de diálogo Abrir archivo, seleccione el archivo iTunesMetadata.plist que creó arriba y haga clic en el botón Aceptar.
  7. Deje la Acción de compilación de este archivo establecida en Ninguna.

Luego, seleccione este archivo iTunesMetadata.plist al prepararse para crear su IPA en el IDE.

Resumen

En este artículo se ha tratado el archivo iTunesMetadata.plist que se puede usar para informar a iTunes sobre una aplicación de iOS distribuida ad hoc. Se ha hablado de la clave estándar del archivo plist y de cómo crear y mantener el archivo en Visual Studio y Visual Studio para Mac.