Empaquetado de aplicaciones móviles Android

Este artículo describe cómo los administradores de Citrix Endpoint Management™ empaquetan aplicaciones empresariales de terceros y cómo los desarrolladores empaquetan aplicaciones de ISV. Para empaquetar aplicaciones móviles Android, usa el MDX Toolkit, que incluye una herramienta de interfaz gráfica de macOS y una herramienta de línea de comandos de Java. La herramienta de línea de comandos tiene opciones de personalización, se puede referenciar desde scripts que automatizan el proceso de empaquetado de aplicaciones y te permite preconfigurar algunas directivas MDX.

El tipo de archivo para una aplicación empaquetada es .mdx. Sube el archivo .mdx a la consola de Endpoint Management, donde luego configuras los detalles específicos de la aplicación y la configuración de directivas que aplica el Store de Endpoint Management. Cuando los usuarios inician sesión, la aplicación aparece en la tienda de aplicaciones. Los usuarios pueden entonces suscribirse, descargar e instalar la aplicación en su dispositivo.

  • La siguiente figura proporciona una descripción general de los pasos de empaquetado de aplicaciones, desde la instalación del MDX Toolkit hasta la prueba de aplicaciones de productividad móvil. Los temas relacionados se enumeran debajo del diagrama.

  • Flujo de empaquetado de aplicaciones para Android

Para obtener detalles sobre el número uno, consulta:

Importante:

Asegúrate de que tus dispositivos de usuario estén actualizados con una versión de Secure Hub que sea compatible con la versión del MDX Toolkit utilizada para empaquetar aplicaciones. De lo contrario, los usuarios recibirán un mensaje de error sobre la incompatibilidad. Para obtener más detalles, consulta Compatibilidad con Endpoint Management.

Empaquetado de aplicaciones de ISV con la interfaz gráfica

Los siguientes pasos describen el proceso general para empaquetar una aplicación de ISV que implementarás desde Google Play Store.

  1. Antes de usar el kit de herramientas para empaquetar aplicaciones, asegúrate de hacer una copia de seguridad de la versión original de esas aplicaciones para poder volver a ellas si es necesario.

  2. Inicia el MDX Toolkit desde tu carpeta de aplicaciones de iOS, selecciona Para proveedores de software independientes (ISV) y luego haz clic en Siguiente.

    Imagen del asistente de MDX Toolkit

  3. En la pantalla Implementar desde App Store, selecciona tu aplicación y haz clic en Siguiente.

  4. En la pantalla Configuración de usuario, si ya tienes la URL de la tienda de aplicaciones, introdúcela. Si no tienes la URL, introduce un marcador de posición como https://play.google.com/store/apps/details?id=com.citrix. Puedes actualizar la URL más tarde.

    Para aplicaciones Premium, selecciona Aplicaciones MDX. Para aplicaciones generales, selecciona Aplicaciones de App Store.

    Imagen de la pantalla Configuración de usuario de MDX Toolkit

  5. En la pantalla Verificar detalles de la aplicación, actualiza los detalles según sea necesario.

  6. Explora tu almacén de claves y haz clic en Crear.

    Imagen de la opción URL de App Store de MDX Toolkit

    1. Guarda tu aplicación.

    Imagen de la opción Guardar MDX

    Cuando la herramienta de GUI termina de empaquetar una aplicación, el nombre del archivo de la aplicación incluye _andr.

Empaquetado de aplicaciones Android empresariales con la línea de comandos

Puedes usar el empaquetado de aplicaciones empresariales para empaquetar aplicaciones personalizadas (internas) y algunas aplicaciones de terceros. Debes adquirir aplicaciones de terceros directamente del proveedor de la aplicación. Para el empaquetado de aplicaciones empresariales, comienza con una aplicación Android (.apk). Antes de usar el kit de herramientas para empaquetar aplicaciones, haz una copia de seguridad de la versión original de esas aplicaciones para poder volver a ellas si es necesario.

El siguiente ejemplo muestra un comando básico de empaquetado de aplicaciones usando la configuración predeterminada. La aplicación se firma con el almacén de claves proporcionado. Un almacén de claves es un archivo que contiene certificados utilizados para firmar tu aplicación Android. Si el almacén de claves contiene varias claves privadas, puedes especificar el alias de clave. Creas un almacén de claves una sola vez. Luego, puedes usar el almacén de claves para firmar las aplicaciones que empaquetas. Si no usas el mismo almacén de claves para empaquetar la nueva versión de una aplicación que implementaste anteriormente, las actualizaciones de esa aplicación no funcionarán. Los usuarios deberán quitar manualmente la versión anterior antes de poder instalar la nueva.

Modifica la información en negrita para tu sistema específico. La barra invertida final significa que el comando continúa en la siguiente línea. Quita estos símbolos antes de ejecutar el comando.

Nota:

Debido a que el directorio /Applications/ está restringido, es posible que debas ejecutar el siguiente comando en modo superusuario. Para hacerlo, agrega sudo delante del comando. Se te pedirá la contraseña de tu equipo al ejecutar desde este directorio restringido.

java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
wrap \
-in ~/Desktop/SampleApps/Sample.apk \
-out ~/Desktop/SampleApps/Sample.mdx \
-keystore ~/Desktop/MyCompany.keystore \
-storepass MyKeystorePassword \
-keyalias MyCompanyKeyAlias \
-keypass MyKeyAliasPassword
<!--NeedCopy-->
  • Los siguientes son ejemplos de opciones que puedes agregar al comando anterior, después de modificar la información en negrita:

  • -appName “Aplicación de ejemplo empaquetada”
  • -appDesc “Esta es mi aplicación Android recién empaquetada.”

Además, si el almacén de claves de lanzamiento no está disponible durante el desarrollo, usa el siguiente comando para crear una compilación comercial de una aplicación móvil que esté firmada con tu clave:

java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
wrap \
-in ~/Desktop/SampleApps/Sample.apk \
-out ~/Desktop/SampleApps/Sample.mdx \
-keystore ~/Desktop/MyCompany.keystore \
-storepass MyKeystorePassword \
-keyalias MyCompanyKeyAlias \
-keypass MyKeyAliasPassword \
-  -createCert
<!--NeedCopy-->
  • Para obtener detalles sobre las opciones, consulta Opciones de comando. Para la documentación en línea, usa la opción -help.

  • Ajuste de aplicaciones Android ISV con la línea de comandos

  • Antes de usar el kit de herramientas para ajustar aplicaciones, asegúrate de hacer una copia de seguridad de la versión original de esas aplicaciones para poder volver a ellas si es necesario. Para generar aplicaciones ISV ajustadas para Android, comienza con el siguiente comando básico de ajuste.
-  java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
-  wrap \
-  -in ~/Desktop/SampleApps/Sample.apk \
-  -out ~/Desktop/SampleApps/Sample.mdx \
-  -keystore ~/Desktop/MyCompany.keystore \
-storepass MyKeystorePassword \
-keyalias MyCompanyKeyAlias \
-  -keypass MyKeyAliasPassword \
-createCert
<!--NeedCopy-->
  • Para ajustar una aplicación como una aplicación ISV, debes establecer el parámetro -apptype de la siguiente manera:

  • Premium: Para ajustar una aplicación como una aplicación Premium, en la que se aplican algunas directivas de Citrix® incluso para usuarios no administrados, agrega la siguiente opción: -apptype Premium
  • General: Para ajustar una aplicación como una aplicación General, que no contiene ninguna aplicación de directivas de Citrix para un usuario no administrado, agrega la siguiente opción: -apptype General

  • Si necesitas cargar el archivo .apk ajustado a Google Play Store o a un servidor web y la URL se conoce al ajustar, agrega la opción -storeURL. Asegúrate también de establecer el parámetro apptype.

  • -storeURL "https://play.google.com/store/apps/details?id=com.zenprise"

  • Si no conoces la URL en el momento del ajuste, puedes modificar el archivo .mdx más tarde con el siguiente comando:
-  java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
-  setinfo \
-  -in ~/Desktop/SampleApps/Sample.mdx \
-  -out ~/Desktop/SampleApps/wrapped/Sample.mdx \
-  -storeURL \
-  “https://play.google.com/store/apps/details?id=com.zenprise”
<!--NeedCopy-->
  • Si personalizaste el archivo de directivas, asegúrate de apuntar a tu archivo modificado:

  • -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml Para obtener detalles sobre las opciones, consulta Opciones de comando. Para la documentación en línea, usa la opción -help.

Opciones de comando

Comando wrap

  • Help: Muestra la ayuda para este comando.
  • In: Obligatorio. Ruta y nombre de archivo de la aplicación que estás ajustando.
  • Out: Opcional. Ruta y nombre de archivo para el archivo .mdx resultante. Si se omite esta opción, el archivo tendrá la misma ruta y nombre de archivo que el archivo de entrada y tendrá una extensión .mdx.
  • AppType: Opcional. El valor predeterminado es MDXOnly. Para generar aplicaciones ISV, usa General o Premium.
  • KeyStore: Ruta al archivo de almacén de claves. Obligatorio si se firma el archivo .apk.
  • StorePass: Contraseña del almacén de claves. Obligatorio si se firma el archivo .apk.
  • KeyAlias: Nombre de la clave específica en el almacén de claves. Obligatorio si se firma el archivo .apk.
  • KeyPass: Contraseña de la clave específica. Obligatorio si se firma el archivo .apk.
  • SigAlg: Opcional. Algoritmo a usar al firmar.
  • AppName: Opcional. Nombre de la aplicación, obtenido de la aplicación si es posible.
  • AppDesc: Opcional. Descripción de la aplicación, obtenida de la aplicación si es posible.
  • MinPlatform: Opcional. Nivel mínimo de SDK compatible. El valor predeterminado es en blanco.
  • MaxPlatform: Opcional. Nivel máximo de SDK compatible. El valor predeterminado es en blanco.
  • ExcludedDevices: Opcional. Lista de tipos de dispositivos en los que no se permite ejecutar la aplicación. El valor predeterminado es en blanco.
  • PolicyXML: Opcional. Archivo y ruta de definición de directivas XML de reemplazo. El valor predeterminado son las definiciones de directivas integradas. Ejemplo:

    -policyxml/Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    Para obtener detalles, consulta Preestablecer directivas MDX para aplicaciones Android, a continuación.

  • StoreURL: Para aplicaciones ISV, la URL de la aplicación en Google App Store. El valor predeterminado es en blanco.

Comando sign

  • Help: Muestra la ayuda para este comando.
  • In: Obligatorio. Ruta y nombre de archivo de la aplicación que estás ajustando.
  • Out: Opcional. Ruta y nombre de archivo para el archivo .mdx resultante. Si se omite esta opción, el archivo tendrá la misma ruta y nombre de archivo que el archivo de entrada y tendrá una extensión .mdx.
  • KeyStore: Obligatorio. Ruta al archivo de almacén de claves.
  • StorePass: Obligatorio. Contraseña del almacén de claves.
  • KeyAlias: Obligatorio. Nombre de la clave específica en el almacén de claves.
  • KeyPass: Obligatorio. Contraseña de la clave específica.
  • SigAlg: Opcional. Algoritmo a usar al firmar.

Comando setinfo

  • Help: Muestra la ayuda para este comando.
  • In: Obligatorio. Ruta y nombre de archivo de la aplicación a modificar.
  • Out: Para setinfo, la ruta o el nombre de archivo de salida deben ser diferentes del original.
  • AppType: Opcional. El valor predeterminado es MDXOnly. Para generar aplicaciones ISV, usa General o Premium.
  • KeyStore: Ruta al archivo de almacén de claves. Obligatorio si se firma el archivo .apk.
  • StorePass: Contraseña del almacén de claves. Obligatorio si se firma el archivo .apk.
  • KeyAlias: Nombre de la clave específica en el almacén de claves. Obligatorio si se firma el archivo .apk.
  • KeyPass: Contraseña de la clave específica. Obligatorio si se firma el archivo .apk.
  • SigAlg: Opcional. Algoritmo a usar al firmar.
  • AppName: Opcional. Nombre de la aplicación, obtenido de la aplicación si es posible.
  • AppDes: Opcional. Descripción de la aplicación, obtenida de la aplicación si es posible.
  • MinPlatform: Opcional. Nivel mínimo de SDK compatible. El valor predeterminado es en blanco.
  • MaxPlatform: Opcional. Nivel máximo de SDK compatible. El valor predeterminado es en blanco
  • ExcludedDevices: Opcional. Lista de tipos de dispositivos en los que no se permite ejecutar la aplicación. El valor predeterminado es en blanco.
  • StoreURL: Para aplicaciones ISV, la URL de la aplicación en Google App Store. El valor predeterminado es en blanco.
  • PolicyXML: Opcional. Archivo y ruta de definición de directivas XML de reemplazo. El valor predeterminado son las definiciones de directivas integradas. Ejemplo:

    -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    Para obtener detalles, consulta Preestablecer directivas MDX para aplicaciones Android, a continuación.

Preestablecer directivas MDX para aplicaciones Android

Para las aplicaciones que ajustas con la herramienta de línea de comandos MDX Toolkit, puedes preestablecer algunas directivas MDX. También puedes configurar directivas en la consola de Citrix Endpoint Management al agregar las aplicaciones.

  1. Actualiza los valores de las directivas en el archivo XML de directivas.

    El instalador de MDX Toolkit crea este archivo de directivas: Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    Nota

    Ten en cuenta que los archivos de directivas para Android e iOS difieren. Para preestablecer directivas para ambas plataformas, debes actualizar sus respectivos archivos XML de directivas.

  2. Cuando ajustes la aplicación con la línea de comandos, incluye

    -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml

Identificación de errores de ajuste de aplicaciones Android

Si encuentras un error al ajustar una aplicación Android, puedes usar los registros de MDX Toolkit para identificar el error. Debes tener derechos de administrador para ver los registros de MDX Toolkit.

Cuando ejecutas MDX Toolkit, la herramienta guarda un archivo de registro en la siguiente ubicación: Applications/CitrixMDXToolkit/Logs/Citrix.log. Por defecto, la herramienta guarda advertencias y errores en el registro.

Recopilación de registros de aplicaciones desde la línea de comandos

  1. Instala Android Debug Bridge desde el sitio web de Android Developer. Para obtener detalles, consulta Android Debug Bridge.
  2. Introduce el siguiente comando para borrar los registros existentes: “adb logcat -c”
  3. Reproduce el problema.
  4. Introduce el siguiente comando para capturar los registros en un archivo: adb logcat -d > Name_of_Log_File.txt