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>
copyright
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:
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….
En el cuadro de diálogo Nuevo archivo, seleccione iOS>Lista de propiedades:
Escriba
iTunesMetadata
para el Nombre y haga clic en el botón Nuevo.Haga doble clic en el archivo
iTunesMetadata.plist
en el Explorador de soluciones para abrirlo para su edición:Haga clic en el + verde para crear una nueva entrada y escriba
UIRequiredDeviceCapabilities
como nombre de clave:Haga clic en el tipo de valor Cadena y seleccione Diccionario en la lista emergente:
Haga clic en el control situado a la izquierda del nombre de la propiedad para mostrar las entradas del diccionario:
Haga clic en el texto Agregar nueva entrada y luego haga clic en el + verde para agregar una entrada al diccionario:
Escriba
armv7
para el nombre de clave, seleccione un tipo de booleano y escriba Sí como valor: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).Guarde los cambios en el archivo plist.
Uso de un editor de texto sin formato
Haga lo siguiente:
- En un editor de texto sin formato, cree un nuevo archivo de texto y asígnele el nombre
iTunesMetadata.plist
. - Copie el contenido del ejemplo de la sección anterior Contenido de iTunesMetadata.plist.
- Pegue el contenido en el archivo y edítelo según sea necesario.
- Guarde el archivo y vuelva a Visual Studio para Mac.
- 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...
- En el cuadro de diálogo Abrir archivo, seleccione el archivo
iTunesMetadata.plist
que creó arriba y haga clic en el botón Aceptar. - 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.