Empaquetage des applications mobiles Android

Cet article explique comment les administrateurs de Citrix Endpoint Management™ empaquettent les applications d’entreprise tierces et comment les développeurs empaquettent les applications ISV. Pour empaquetter les applications mobiles Android, utilisez le MDX Toolkit, qui comprend un outil d’interface graphique macOS et un outil de ligne de commande Java. L’outil de ligne de commande offre des options de personnalisation, peut être référencé à partir de scripts qui automatisent le processus d’empaquetage d’applications et vous permet de prérégler certaines stratégies MDX.

Le type de fichier pour une application empaquetée est .mdx. Vous téléchargez le fichier .mdx vers la console Endpoint Management où vous configurez ensuite les détails spécifiques de l’application et les paramètres de stratégie que le magasin Endpoint Management applique. Lorsque les utilisateurs se connectent, l’application apparaît dans le magasin d’applications. Les utilisateurs peuvent alors s’abonner, télécharger et installer l’application sur leur appareil.

  • La figure suivante donne un aperçu des étapes d’empaquetage d’applications, de l’installation du MDX Toolkit aux tests des applications de productivité mobile. Les rubriques connexes sont répertoriées sous le diagramme.

  • Flux d'empaquetage d'applications pour Android

Pour plus de détails sur le numéro un, consultez :

Important :

Assurez-vous que les appareils de vos utilisateurs sont mis à jour avec une version de Secure Hub compatible avec la version du MDX Toolkit utilisée pour empaquetter les applications. Dans le cas contraire, les utilisateurs recevront un message d’erreur concernant l’incompatibilité. Pour plus de détails, consultez Compatibilité Endpoint Management.

Empaquetage d’applications ISV avec l’interface graphique

Les étapes suivantes décrivent le processus général d’empaquetage d’une application ISV que vous déploierez depuis le Google Play Store.

  1. Avant d’utiliser le toolkit pour empaquetter des applications, assurez-vous de sauvegarder la version originale de ces applications afin de pouvoir y revenir si nécessaire.

  2. Démarrez le MDX Toolkit depuis votre dossier Applications iOS, sélectionnez Pour les éditeurs de logiciels indépendants (ISV), puis cliquez sur Suivant.

    Image de l'assistant MDX Toolkit

  3. Dans l’écran Déployer depuis l’App Store, sélectionnez votre application et cliquez sur Suivant.

  4. Dans l’écran Paramètres utilisateur, si vous disposez déjà de l’URL du magasin d’applications, saisissez-la. Si vous n’avez pas l’URL, saisissez un espace réservé tel que https://play.google.com/store/apps/details?id=com.citrix. Vous pourrez mettre à jour l’URL ultérieurement.

    Pour les applications Premium, sélectionnez Applications MDX. Pour les applications Générales, sélectionnez Applications de l’App Store.

    Image de l'écran Paramètres utilisateur du MDX Toolkit

  5. Dans l’écran Vérifier les détails de l’application, mettez à jour les détails si nécessaire.

  6. Accédez à votre keystore et cliquez sur Créer.

    Image de l'option URL de l'App Store du MDX Toolkit

    1. Enregistrez votre application.

    Image de l'option Enregistrer MDX

    Lorsque l’outil d’interface graphique a terminé d’empaquetter une application, le nom du fichier de l’application inclut _andr.

Empaquetage d’applications Android d’entreprise avec la ligne de commande

Vous pouvez utiliser l’empaquetage d’applications d’entreprise pour empaquetter des applications personnalisées (internes) et certaines applications tierces. Vous devez acquérir les applications tierces directement auprès du fournisseur de l’application. Pour l’empaquetage d’applications d’entreprise, commencez par une application Android (.apk). Avant d’utiliser le toolkit pour empaquetter des applications, sauvegardez la version originale de ces applications afin de pouvoir y revenir si nécessaire.

L’exemple suivant montre une commande d’empaquetage d’application de base utilisant les paramètres par défaut. L’application est signée avec le keystore fourni. Un keystore est un fichier qui contient les certificats utilisés pour signer votre application Android. Si le keystore contient plusieurs clés privées, vous pouvez spécifier l’alias de clé. Vous créez un keystore une seule fois. Ensuite, vous pouvez utiliser le keystore pour signer les applications que vous empaquettez. Si vous n’utilisez pas le même keystore pour empaquetter la nouvelle version d’une application que vous avez précédemment déployée, les mises à niveau de cette application ne fonctionneront pas. Les utilisateurs devront supprimer manuellement l’ancienne version avant de pouvoir installer la nouvelle.

Modifiez les informations en gras pour votre système spécifique. La barre oblique inverse finale indique que la commande continue sur la ligne suivante. Veuillez supprimer ces symboles avant d’exécuter la commande.

Remarque :

Étant donné que le répertoire /Applications/ est restreint, vous devrez peut-être exécuter la commande suivante en mode super utilisateur. Pour ce faire, ajoutez sudo devant la commande. Il vous sera demandé le mot de passe de votre ordinateur lors de l’exécution à partir de ce répertoire restreint.

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-->
  • Voici des exemples d’options que vous pouvez ajouter à la commande précédente, après avoir modifié les informations en gras :

  • -appName « Application exemple empaquetée »
  • -appDesc « Ceci est ma nouvelle application Android empaquetée. »

De plus, si le keystore de publication n’est pas disponible pendant le développement, utilisez la commande suivante pour créer une version commerciale d’une application mobile signée avec votre clé :

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-->
  • Pour plus de détails sur les options, consultez Options de commande. Pour la documentation en ligne, utilisez l’option -help.

  • Habillage d’applications Android ISV avec la ligne de commande

  • Avant d’utiliser le kit d’outils pour habiller des applications, assurez-vous de sauvegarder la version originale de ces applications afin de pouvoir y revenir si nécessaire. Pour générer des applications ISV habillées pour Android, commencez par la commande d’habillage de base suivante.
-  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-->
  • Pour habiller une application en tant qu’application ISV, vous devez définir le paramètre -apptype comme suit :

  • Premium : Pour habiller une application en tant qu’application Premium, dans laquelle certaines stratégies Citrix® sont appliquées même pour les utilisateurs non gérés, ajoutez l’option suivante : -apptype Premium
  • Général : Pour habiller une application en tant qu’application Générale, qui ne contient aucune application de stratégie Citrix pour un utilisateur non géré, ajoutez l’option suivante : -apptype General

  • Si vous devez télécharger le fichier .apk habillé sur le Google Play Store ou un serveur web et que l’URL est connue au moment de l’habillage, ajoutez l’option -storeURL. Assurez-vous également de définir le paramètre apptype.

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

  • Si vous ne connaissez pas l’URL au moment de l’habillage, vous pouvez modifier le fichier .mdx ultérieurement avec la commande suivante :
-  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 vous avez personnalisé le fichier de stratégie, assurez-vous de pointer vers votre fichier modifié :

  • -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml Pour plus de détails sur les options, consultez Options de commande. Pour la documentation en ligne, utilisez l’option -help.

Options de commande

Commande wrap

  • Help : Affiche l’aide pour cette commande.
  • In : Obligatoire. Chemin et nom de fichier de l’application que vous habillez.
  • Out : Facultatif. Chemin et nom de fichier du fichier .mdx résultant. Si cette option est omise, le fichier a le même chemin et nom de fichier que le fichier d’entrée et a une extension .mdx.
  • AppType : Facultatif. Par défaut, MDXOnly. Pour générer des applications ISV, utilisez Général ou Premium.
  • KeyStore : Chemin d’accès au fichier de magasin de clés. Obligatoire si vous signez le fichier .apk.
  • StorePass : Mot de passe du magasin de clés. Obligatoire si vous signez le fichier .apk.
  • KeyAlias : Nom de la clé spécifique dans le magasin de clés. Obligatoire si vous signez le fichier .apk.
  • KeyPass : Mot de passe de la clé spécifique. Obligatoire si vous signez le fichier .apk.
  • SigAlg : Facultatif. Algorithme à utiliser lors de la signature.
  • AppName : Facultatif. Nom de l’application, obtenu à partir de l’application si possible.
  • AppDesc : Facultatif. Description de l’application, obtenue à partir de l’application si possible.
  • MinPlatform : Facultatif. Niveau SDK minimum pris en charge. Par défaut, vide.
  • MaxPlatform : Facultatif. Niveau SDK maximum pris en charge. Par défaut, vide.
  • ExcludedDevices : Facultatif. Liste des types d’appareils sur lesquels l’application n’est pas autorisée à s’exécuter. Par défaut, vide.
  • PolicyXML : Facultatif. Fichier et chemin de définition de stratégie XML de remplacement. Par défaut, les définitions de stratégie intégrées. Exemple :

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

    Pour plus de détails, consultez la section suivante, Présélection des stratégies MDX pour les applications Android.

  • StoreURL : Pour les applications ISV, l’URL de l’application dans le Google App Store. Par défaut, vide.

Commande sign

  • Help : Affiche l’aide pour cette commande.
  • In : Obligatoire. Chemin et nom de fichier de l’application que vous habillez.
  • Out : Facultatif. Chemin et nom de fichier du fichier .mdx résultant. Si cette option est omise, le fichier a le même chemin et nom de fichier que le fichier d’entrée et a une extension .mdx.
  • KeyStore : Obligatoire. Chemin d’accès au fichier de magasin de clés.
  • StorePass : Obligatoire. Mot de passe du magasin de clés.
  • KeyAlias : Obligatoire. Nom de la clé spécifique dans le magasin de clés.
  • KeyPass : Obligatoire. Mot de passe de la clé spécifique.
  • SigAlg : Facultatif. Algorithme à utiliser lors de la signature.

Commande setinfo

  • Help : Affiche l’aide pour cette commande.
  • In : Obligatoire. Chemin et nom de fichier de l’application à modifier.
  • Out : Pour setinfo, le chemin ou le nom de fichier de sortie doit être différent de l’original.
  • AppType : Facultatif. Par défaut, MDXOnly. Pour générer des applications ISV, utilisez Général ou Premium.
  • KeyStore : Chemin d’accès au fichier de magasin de clés. Obligatoire si vous signez le fichier .apk.
  • StorePass : Mot de passe du magasin de clés. Obligatoire si vous signez le fichier .apk.
  • KeyAlias : Nom de la clé spécifique dans le magasin de clés. Obligatoire si vous signez le fichier .apk.
  • KeyPass : Obligatoire. Mot de passe de la clé spécifique.
  • SigAlg : Facultatif. Algorithme à utiliser lors de la signature.
  • AppName : Facultatif. Nom de l’application, obtenu à partir de l’application si possible.
  • AppDes : Facultatif. Description de l’application, obtenue à partir de l’application si possible.
  • MinPlatform : Facultatif. Niveau SDK minimum pris en charge. Par défaut, vide.
  • MaxPlatform : Facultatif. Niveau SDK maximum pris en charge. Par défaut, vide.
  • ExcludedDevices : Facultatif. Liste des types d’appareils sur lesquels l’application n’est pas autorisée à s’exécuter. Par défaut, vide.
  • StoreURL : Pour les applications ISV, l’URL de l’application dans le Google App Store. Par défaut, vide.
  • PolicyXML : Facultatif. Fichier et chemin de définition de stratégie XML de remplacement. Par défaut, les définitions de stratégie intégrées. Exemple :

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

    Pour plus de détails, consultez la section suivante, Présélection des stratégies MDX pour les applications Android.

Présélection des stratégies MDX pour les applications Android

Pour les applications que vous habillez avec l’outil de ligne de commande MDX Toolkit, vous pouvez présélectionner certaines stratégies MDX. Vous pouvez également configurer des stratégies dans la console Citrix Endpoint Management lorsque vous ajoutez les applications.

  1. Mettez à jour les valeurs de stratégie dans le fichier XML de stratégie.

    L’installateur MDX Toolkit crée ce fichier de stratégie : Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    Remarque

    Sachez que les fichiers de stratégie pour Android et iOS sont différents. Pour présélectionner des stratégies pour ces deux plateformes, vous devez mettre à jour leurs fichiers XML de stratégie respectifs.

  2. Lorsque vous habillez l’application avec la ligne de commande, incluez

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

Identification des erreurs d’habillage d’applications Android

Si vous rencontrez une erreur lors de l’habillage d’une application Android, vous pouvez utiliser les journaux du MDX Toolkit pour identifier l’erreur. Vous devez disposer des droits d’administrateur pour afficher les journaux du MDX Toolkit.

Lorsque vous exécutez le MDX Toolkit, l’outil enregistre un fichier journal à l’emplacement suivant : Applications/CitrixMDXToolkit/Logs/Citrix.log. Par défaut, l’outil enregistre les avertissements et les erreurs dans le journal.

Collecte des journaux d’application à partir de la ligne de commande

  1. Installez l’Android Debug Bridge à partir du site web Android Developer. Pour plus de détails, consultez Android Debug Bridge.
  2. Entrez la commande suivante pour effacer les journaux existants : “adb logcat -c”
  3. Reproduisez le problème.
  4. Entrez la commande suivante pour capturer les journaux dans un fichier : adb logcat -d > Name_of_Log_File.txt