Encapsulation d’applications mobiles Android

28 février 2018

Cet article explique comment les administrateurs XenMobile encapsulent les applications d’entreprise et comment les développeurs encapsulent les applications ISV. Pour encapsuler des applications mobiles Android, utilisez l’outil MDX Toolkit, qui comprend un outil d’interface graphique macOS et un outil de ligne de commande Java. L’outil de ligne de commande propose des options de personnalisation, peut être référencé depuis des scripts qui automatisent le processus de d’encapsulation d’application, et vous permet de prédéfinir des stratégies MDX.

Le type de fichier pour une application encapsulée est .mdx. Vous devez charger le fichier .mdx vers la console XenMobile dans laquelle vous configurez ensuite les détails et les paramètres de stratégie spécifiques à l’application que XenMobile Store doit appliquer. Lorsque les utilisateurs ouvrent une session, l’application s’affiche dans XenMobile Store. Les utilisateurs peuvent s’abonner, télécharger et installer l’application sur leur appareil.

La figure suivante présente les étapes d’encapsulation d’application, de l’installation de l’outil MDX Toolkit aux tests des applications XenMobile. Les rubriques connexes sont répertoriées sous le diagramme.

Flux d'encapsulation d'application pour les applications Android

Pour plus de détails sur la section 1, voir :

Pour plus de détails sur la section 2, voir :

Important : assurez-vous que vos appareils sont mis à jour avec une version de Secure Hub compatible avec la version du MDX Toolkit utilisé pour encapsuler les applications. Si ce n’est pas le cas, les utilisateurs reçoivent un message d’erreur d’incompatibilité. Pour de plus amples informations, consultez la section Compatibilité XenMobile.

Encapsulation d’applications ISV à l’aide de l’interface graphique

Les étapes suivantes décrivent la procédure générale à suivre pour l’encapsulation d’applications ISV que vous déployez à partir de Google Play Store. La procédure générale pour encapsuler des applications d’entreprise est décrite dans la section Encapsulation d’applications d’entreprise à l’aide de l’interface graphique.

  1. Avant d’utiliser le Toolkit pour encapsuler des applications, assurez-vous de sauvegarder la version d’origine de ces applications de façon à ce que vous puissiez y revenir si nécessaire.

  2. Démarrez l’outil MDX Toolkit depuis votre dossier iOS Applications, sélectionnez For Independent Software Vendors (ISVs) (Pour les fournisseurs de logiciels indépendants (ISV)), puis cliquez sur Next.

    Image de l'assistant du MDX Toolkit

  3. Dans l’écran Deploy from App Store, sélectionnez l’application et cliquez sur Next.

  4. Dans l’écran User Settings, si vous disposez déjà de l’adresse URL du magasin d’applications, entrez-la. Si vous n’avez pas l’URL, entrez un espace réservé tel que https://play.google.com/store/apps/details?id=com.xenmobile. Vous pouvez mettre à jour l’adresse URL ultérieurement.

    Pour les applications Premium, sélectionnez MDX apps. Pour les applications General, sélectionnez App Store apps.

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

  5. Dans l’écran Verify App Details (Vérifier les détails de l’application), mettez à jour les détails selon vos besoins.

  6. Accédez à votre keystore, puis cliquez sur Create.

    Image de l'option URL du magasin d'applications MDX Toolkit

  7. Enregistrez votre application.

    Image de l'option Enregistrer MDX

    Lorsque l’outil finit de wrapper l’application, le nom de fichier de l’application contient _andr.

Encapsulation d’applications d’entreprise Android à l’aide de la ligne de commande

Vous pouvez utiliser l’encapsulation d’applications d’entreprise pour encapsuler des applications personnalisées (internes) et certaines applications tierces. Vous devez acquérir des applications tierces directement à partir du fournisseur de l’application. Pour l’encapsulation d’applications d’entreprise, commencez par une application Android (.apk). Avant d’utiliser le Toolkit pour encapsuler des applications, sauvegardez la version d’origine de ces applications de façon à ce que vous puissiez y revenir si nécessaire.

L’exemple suivant illustre une commande d’encapsulation 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 fois. Puis, vous pouvez utiliser le keystore pour signer les applications que vous encapsulez. Si vous n’utilisez pas le même keystore pour encapsuler la nouvelle version d’une application que vous avez déjà 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 version.

Modifiez les informations en gras pour votre système. La barre oblique inverse de fin indique que la commande continue à 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. Vous serez invité à entrer votre mot de passe d’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

Les exemples suivants sont des options que vous pouvez ajouter à la commande précédente, après modification des informations en gras :

  • -appName “application encapsulée exemple”
  • -appDesc “Ceci est mon application Android nouvellement encapsulée.”

En outre, si le keystore n’est pas disponible lors du 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

Pour de plus amples informations sur les options disponibles, consultez la section Options de commande. Pour la documentation en ligne, utilisez l’option –help.

Encapsulation d’applications Android ISV à l’aide de la ligne de commande

Avant d’utiliser le Toolkit pour encapsuler des applications, assurez-vous de sauvegarder la version d’origine de ces applications de façon à ce que vous puissiez y revenir si nécessaire. Pour générer des applications ISV encapsulées pour Android, démarrez avec la commande d’encapsulation 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

Pour encapsuler une application en tant qu’application ISV, vous devez définir le paramètre –apptype comme suit :

  • Premium: pour encapsuler 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.
  • General: pour encapsuler une application en tant qu’application General, qui ne contient aucune application de stratégie Citrix pour un utilisateur non géré, ajoutez l’option suivante : -apptype General

Si vous avez besoin de télécharger le fichier .apk encapsulé pour Google Play Store ou le serveur Web et que l’adresse URL est connue lors de l’encapsulation, ajoutez l’option -storeURL. Assurez-vous de définir également le paramètre apptype.

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

Si vous ne connaissez pas l’adresse URL lors de l’encapsulation, vous pouvez modifier le fichier .MDX ultérieurement à l’aide de 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”

Si vous avez personnalisé le fichier de stratégie, assurez-vous de pointer vers le fichier modifié :

-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml Pour de plus amples informations sur les options disponibles, consultez la section Options de commande. Pour la documentation en ligne, utilisez l’option –help.

Options de commande

commande wrap

  • Help: affiche l’aide de cette commande.
  • In: obligatoire. Chemin d’accès et nom de fichier de l’application en cours d’encapsulation.
  • Out: facultatif. Chemin d’accès et nom de fichier pour le fichier .mdx. Si cette option est omise, le fichier porte le même chemin d’accès et nom de fichier que le fichier d’entrée, avec une extension .mdx.
  • AppType: facultatif. La valeur par défaut est MDXOnly. Pour générer des applications ISV, utilisez soit General soit Premium.
  • KeyStore: chemin d’accès au fichier de keystore. Requis pour la signature du fichier .apk.
  • StorePass: mot de passe du keystore. Requis pour la signature du fichier .apk.
  • KeyAlias: nom de la clé dans le keystore. Requis pour la signature du fichier .apk.
  • KeyPass: mot de passe pour la clé. Requis pour la signature du fichier .apk.
  • SigAlg: facultatif. Algorithme à utiliser pour la signature.
  • AppName: facultatif. Nom de l’application, obtenu depuis l’application, si possible.
  • AppDesc: facultatif. Description de l’application, obtenue depuis l’application, si possible.
  • MinPlatform: facultatif. Niveau de SDK minimal pris en charge. Valeur par défaut : vide.
  • MaxPlatform: facultatif. Niveau de SDK maximal pris en charge. Valeur par défaut : vide.
  • ExcludedDevices: facultatif. Liste des types d’appareil sur lesquels l’application n’est pas autorisée à être exécutée. Valeur par défaut : vide.
  • PolicyXML: facultatif. Fichier de définition et chemin d’accès de stratégie XML de remplacement. Valeur par défaut : définitions de stratégie intégrées. Exemple :

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

    Pour de plus amples informations, veuillez consulter la section suivante, « Prédéfinition de stratégies MDX pour applications Android ».

  • StoreURL: pour les applications ISV, adresse URL de l’application dans Google App Store. Valeur par défaut : vide.

commande sign

  • Help: affiche l’aide de cette commande.
  • In: obligatoire. Chemin d’accès et nom de fichier de l’application en cours d’encapsulation.
  • Out: facultatif. Chemin d’accès et nom de fichier pour le fichier .mdx. Si cette option est omise, le fichier porte le même chemin d’accès et nom de fichier que le fichier d’entrée, avec une extension .mdx.
  • KeyStore: obligatoire. Chemin d’accès au fichier de keystore.
  • StorePass: obligatoire. Mot de passe du keystore.
  • KeyAlias: obligatoire. Nom de la clé dans le keystore.
  • KeyPass: obligatoire. Mot de passe pour la clé.
  • SigAlg: facultatif. Algorithme à utiliser pour la signature.

commande setinfo

  • Help: affiche l’aide de cette commande.
  • In: obligatoire. Chemin d’accès et nom de fichier de l’application à modifier.
  • Out: pour setinfo, le nom de fichier ou le chemin de sortie doit être différent de celui d’origine.
  • AppType: facultatif. La valeur par défaut est MDXOnly. Pour générer des applications ISV, utilisez soit General soit Premium.
  • KeyStore: chemin d’accès au fichier de keystore. Requis pour la signature du fichier .apk.
  • StorePass: mot de passe du keystore. Requis pour la signature du fichier .apk.
  • KeyAlias: nom de la clé dans le keystore. Requis pour la signature du fichier .apk.
  • KeyPass: mot de passe pour la clé. Requis pour la signature du fichier .apk.
  • SigAlg: facultatif. Algorithme à utiliser pour la signature.
  • AppName: facultatif. Nom de l’application, obtenu depuis l’application, si possible.
  • AppDes: facultatif. Description de l’application, obtenue depuis l’application, si possible.
  • MinPlatform: facultatif. Niveau de SDK minimal pris en charge. Valeur par défaut : vide.
  • MaxPlatform: facultatif. Niveau de SDK maximal pris en charge. Valeur par défaut : vide.
  • ExcludedDevices: facultatif. Liste des types d’appareil sur lesquels l’application n’est pas autorisée à être exécutée. Valeur par défaut : vide.
  • StoreURL: pour les applications ISV, adresse URL de l’application dans Google App Store. Valeur par défaut : vide.
  • PolicyXML: facultatif. Fichier de définition et chemin d’accès de stratégie XML de remplacement. Valeur par défaut : définitions de stratégie intégrées. Exemple :

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

    Pour de plus amples informations, veuillez consulter la section suivante, « Prédéfinition de stratégies MDX pour applications Android ».

Prédéfinition de stratégies MDX pour applications Android

Pour les applications que vous encapsulez avec l’outil de ligne de commande MDX Toolkit, vous pouvez prédéfinir certaines stratégies MDX. Vous pouvez également configurer des stratégies dans la console XenMobile lorsque vous ajoutez les applications.

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

    Le programme d’installation de MDX Toolkit crée ce fichier de stratégie : Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    Remarque :

    veuillez noter que les fichiers de stratégie iOS diffèrent des fichiers Android. Pour prédéfinir des stratégies pour ces deux plates-formes, vous devez mettre à jour leurs fichiers de stratégie XML respectifs.

  2. Lorsque vous encapsulez l’application à l’aide de la ligne de commande, vous devez inclure

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

Identification des erreurs d’encapsulation des applications Android

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

Lorsque vous exécutez le MDX Toolkit, l’outil enregistre un fichier journal dans 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 le Android Debug Bridge à partir du site Web Android Developer.
  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