Umschließen von mobilen Android-Apps

In diesem Abschnitt wird beschrieben, wie Citrix Endpoint Management-Administratoren Unternehmensapps von Drittanbietern umschließen und wie Entwickler Apps unabhängiger Softwarehersteller umschließen. Zum Umschließen mobiler Android-Apps verwenden Sie das MDX Toolkit. Dieses enthält eine grafische macOS-Oberfläche und ein Java-Befehlszeilentool. Das Befehlszeilentool bietet Anpassungsoptionen, kann von Skripts zum Automatisieren des Umschließens von Apps referenziert werden und ermöglicht die Voreinstellung einiger MDX-Richtlinien.

Der Dateityp umschlossener Apps ist .mdx. Sie laden die MDX-Datei in die Endpoint Management-Konsole hoch und konfigurieren dort bestimmte App-Details und Richtlinieneinstellungen, die vom Endpoint Management-Store durchgesetzt werden. Wenn Benutzer sich anmelden, wird die App im App-Store angezeigt. Benutzer können die App abonnieren, herunterladen und auf ihren Geräten installieren.

Die folgende Abbildung bietet einen Überblick über die Schritte zum Umschließen von Apps, angefangen bei der Installation des MDX Toolkits bis zum Testen von mobile Produktivitätsapps. Verwandte Themen werden unter der Abbildung aufgeführt.

Workflow beim Umschließen von Apps für Android

Für Details zu Punkt eins, siehe:

Für Details zu Punkt zwei, siehe:

Wichtig:

Stellen Sie sicher, dass die Geräte der Benutzer mit einer Version von Secure Hub aktualisiert wurden, die mit der Version von MDX Toolkit kompatibel ist, die zum Umschließen der Apps verwendet wurde. Andernfalls wird eine Fehlermeldung zur Inkompatibilität angezeigt. Weitere Informationen finden Sie unter Endpoint Management-Kompatibilität.

Umschließen von Apps unabhängiger Softwarehersteller mit der grafischen Oberfläche

Nachfolgend wird das allgemeine Verfahren beim Umschließen einer App eines unabhängigen Softwareherstellers (ISV-App) beschrieben, die über Google Play bereitgestellt werden soll.

  1. Bevor Sie mit dem Toolkit Apps umschließen, erstellen Sie ein Backup der ursprünglichen Version der Apps, damit Sie diese bei Bedarf zur Verfügung haben.

  2. Starten Sie das MDX Toolkit aus dem Ordner mit den iOS-Anwendungen, wählen Sie For Independent Software Vendors (ISVs), und klicken Sie auf Next.

    Bild des MDX Toolkit-Assistenten

  3. Wählen Sie im Bildschirm Deploy from App Store die App aus und klicken Sie auf Next.

  4. Geben Sie im Bildschirm User Settings die App-Store-URL ein, sofern Sie diese bereits kennen. Wenn Sie die URL nicht haben, geben Sie einen Platzhalter ein, wie https://play.google.com/store/apps/details?id=com.citrix. Sie können die URL später Zeitpunkt ändern.

    Wählen Sie für Premium-Apps MDX apps. Wählen Sie für General-Apps App Store apps.

    Bild des Bildschirms "MDX Toolkit User Settings"

  5. Ändern Sie im Bildschirm Verify App Details die Angaben nach Bedarf.

  6. Navigieren Sie zu Ihrem Schlüsselspeicher und klicken Sie auf Create.

    Bild der Option MDX Toolkit App Store URL

  7. Speichern Sie Ihre App.

    Bild der Option "Save MDX"

    Wenn das Umschließen der App abgeschlossen ist, enthält der Dateiname der App _andr.

Umschließen von Android-Unternehmensapps über die Befehlszeile

Sie können intern entwickelte Apps sowie einige Apps von Drittanbietern umschließen. Drittanbieter-Apps sollten Sie direkt beim Hersteller erwerben. Zum Umschließen von Unternehmensapps beginnen Sie mit einer Android-App (.apk). Bevor Sie mit dem Toolkit Apps umschließen, erstellen Sie ein Backup der ursprünglichen Version der Apps, damit Sie diese bei Bedarf zur Verfügung haben.

Das folgende Beispiel zeigt einen einfachen Befehl zum Umschließen mit Standardeinstellungen. Die App wird mit dem bereitgestellten Schlüsselspeicher signiert. Ein Schlüsselspeicher ist eine Datei mit den Zertifikaten zum Signieren von Android-Apps. Wenn der Schlüsselspeicher mehrere private Schlüssel enthält, können Sie den Schlüsselalias festlegen. Sie erstellen einen Schlüsselspeicher einmal. Sie verwenden diesen dann zum Signieren der Apps, die Sie umschließen. Wenn Sie zum Umschließen einer neuen App-Version nicht denselben Schlüsselspeicher wie für die zuvor bereitgestellte Version verwenden, funktionieren Upgrades der App nicht. Die Benutzer müssen die alte Version manuell entfernen, bevor sie die neue Version installieren können.

Ändern Sie die fett gedruckten Informationen gemäß Ihrem System. Der nachstehende umgekehrte Schrägstrich bedeutet, dass der Befehl auf der nächsten Zeile weitergeht. Entfernen Sie diese Zeichen, bevor Sie den Befehl ausführen.

Hinweis:

Da der Zugriff auf das Verzeichnis /Applications/ eingeschränkt ist, müssen Sie den folgenden Befehl möglicherweise als Superuser ausführen. Leiten Sie hierfür den Befehl mit sudo ein. Sie werden zur Eingabe des Computerkennworts bei der Ausführung über das zugriffsbeschränkte Verzeichnis aufgefordert.

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

Im Anschluss finden Sie Beispiele für Optionen, die Sie dem oben beschriebenen Befehl nach dem Ändern der fett gedruckten Informationen hinzufügen können:

  • -appName “Wrapped Sample app”
  • -appDesc “This is my newly wrapped Android application.”

Steht der Schlüsselspeicher für das Release während der Entwicklung nicht zur Verfügung, können Sie mit dem folgenden Befehl einen Retailbuild der mobilen App erstellen, die mit Ihrem Schlüssel signiert wird:

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

Einzelheiten zu den Optionen finden Sie unter Befehlsoptionen. Die Inlinedokumentation können Sie mit der Option -help aufrufen.

Umschließen von Android-Apps unabhängiger Softwarehersteller über die Befehlszeile

Bevor Sie mit dem Toolkit Apps umschließen, erstellen Sie ein Backup der ursprünglichen Version der Apps, damit Sie diese bei Bedarf zur Verfügung haben. Zum Umschließen von Apps unabhängiger Softwarehersteller für Android gilt prinzipiell der nachfolgend aufgeführte Befehl.

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

Zum Umschließen der App als ISV-App legen Sie den Parameter -apptype fest:

  • Premium: Zum Umschließen der App als Premium-App, für die einige Citrix Richtlinien auch für nicht verwaltete Benutzer durchgesetzt werden, verwenden Sie folgende Option: -apptype Premium.
  • General: Zum Umschließen der App als General-App, für die keine Citrix Richtlinien für nicht verwaltete Benutzer durchgesetzt werden, verwenden Sie folgende Option: -apptype General

Wenn Sie die umschlossene APK-Datei in Google Play oder auf einen Webserver hochladen möchten und die URL beim Umschließen bereits bekannt ist, verwenden Sie die Option -storeURL. Der apptype-Parameter muss ebenfalls festgelegt werden.

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

Wenn Sie die URL zum Zeitpunkt des Umschließens nicht kennen, können Sie die MDX-Datei später mit folgendem Befehl modifizieren:

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

Wenn Sie die Richtliniendatei angepasst haben, verweisen Sie auf die geänderte Datei:

-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml Einzelheiten zu den Optionen finden Sie unter Befehlsoptionen. Die Inlinedokumentation können Sie mit der Option -help aufrufen.

Befehlsoptionen

wrap-Befehl

  • Help: Zeigt die Hilfe für diesen Befehl an.
  • In: Erforderlich. Pfad und Dateiname der App, die Sie umschließen.
  • Out: Optional. Pfad und Dateiname der resultierenden MDX-Datei. Wenn diese Option ausgelassen wird, erhält die Datei den gleichen Pfad und Dateinamen wie die Eingabedatei und die Erweiterung “.mdx”.
  • AppType: Optional. Standardeinstellung ist MDXOnly. Verwenden Sie für Apps unabhängiger Softwarehersteller entweder “General” oder “Premium”.
  • KeyStore: Pfad zu der Schlüsselspeicherdatei. Erforderlich, wenn die APK-Datei signiert wird.
  • StorePass: Kennwort für den Schlüsselspeicher. Erforderlich, wenn die APK-Datei signiert wird.
  • KeyAlias: Name des bestimmten Schlüssels im Schlüsselspeicher. Erforderlich, wenn die APK-Datei signiert wird.
  • KeyPass: Kennwort für den bestimmten Schlüssel. Erforderlich, wenn die APK-Datei signiert wird.
  • SigAlg: Optional. Beim Signieren zu verwendender Algorithmus.
  • AppName: Optional. App-Name, der, falls möglich, von der App übernommen wird.
  • AppDesc: Optional. App-Beschreibung, die, falls möglich, von der App übernommen wird.
  • MinPlatform: Optional. Die unterstützte SDK-Mindestversion. Standardmäßig leer.
  • MaxPlatform: Optional. Die unterstützte SDK-Höchstversion. Standardmäßig leer.
  • ExcludedDevices: Optional. Liste der Gerätetypen, auf denen die App nicht ausgeführt werden darf. Standardmäßig leer.
  • PolicyXML: Optional. Datei und Pfad der Ersatz-XML-Richtliniendefinition. Standardmäßig die integrierten Richtliniendefinitionen. Beispiel:

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

    Weitere Informationen finden Sie unten unter “Voreinstellen von MDX-Richtlinien für Android-Apps”.

  • StoreURL: Für Apps unabhängiger Softwarehersteller die URL der App im Google App-Store. Standardmäßig leer.

sign-Befehl

  • Help: Zeigt die Hilfe für diesen Befehl an.
  • In: Erforderlich. Pfad und Dateiname der App, die Sie umschließen.
  • Out: Optional. Pfad und Dateiname der resultierenden MDX-Datei. Wenn diese Option ausgelassen wird, erhält die Datei den gleichen Pfad und Dateinamen wie die Eingabedatei und die Erweiterung “.mdx”.
  • KeyStore: Erforderlich. Pfad zu der Schlüsselspeicherdatei.
  • StorePass: Erforderlich. Kennwort für den Schlüsselspeicher.
  • KeyAlias: Erforderlich. Name des Schlüssels im Schlüsselspeicher.
  • KeyPass: Erforderlich. Kennwort für den Schlüssel.
  • SigAlg: Optional. Beim Signieren zu verwendender Algorithmus.

setinfo-Befehl

  • Help: Zeigt die Hilfe für diesen Befehl an.
  • In: Erforderlich. Pfad und Dateiname der App, die geändert werden soll.
  • Out: Ausgabepfad oder Dateiname müssen sich bei setinfo vom Original unterscheiden.
  • AppType: Optional. Standardeinstellung ist MDXOnly. Verwenden Sie für Apps unabhängiger Softwarehersteller entweder “General” oder “Premium”.
  • KeyStore: Pfad zu der Schlüsselspeicherdatei. Erforderlich, wenn die APK-Datei signiert wird.
  • StorePass: Kennwort für den Schlüsselspeicher. Erforderlich, wenn die APK-Datei signiert wird.
  • KeyAlias: Name des bestimmten Schlüssels im Schlüsselspeicher. Erforderlich, wenn die APK-Datei signiert wird.
  • KeyPass: Kennwort für den bestimmten Schlüssel. Erforderlich, wenn die APK-Datei signiert wird.
  • SigAlg: Optional. Beim Signieren zu verwendender Algorithmus.
  • AppName: Optional. App-Name, der, falls möglich, von der App übernommen wird.
  • AppDes: Optional. App-Beschreibung, die, falls möglich, von der App übernommen wird.
  • MinPlatform: Optional. Die unterstützte SDK-Mindestversion. Standardmäßig leer.
  • MaxPlatform: Optional. Die unterstützte SDK-Höchstversion. Standardmäßig leer.
  • ExcludedDevices: Optional. Liste der Gerätetypen, auf denen die App nicht ausgeführt werden darf. Standardmäßig leer.
  • StoreURL: Für Apps unabhängiger Softwarehersteller die URL der App im Google App-Store. Standardmäßig leer.
  • PolicyXML: Optional. Datei und Pfad der Ersatz-XML-Richtliniendefinition. Standardmäßig die integrierten Richtliniendefinitionen. Beispiel:

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

    Weitere Informationen finden Sie unten unter “Voreinstellen von MDX-Richtlinien für Android-Apps”.

Voreinstellen von MDX-Richtlinien für Android-Apps

Für Apps, die Sie mit dem Befehlszeilentool des MDX Toolkits umschließen, können Sie einige MDX-Richtlinien voreinstellen. Sie können außerdem Richtlinien in der Citrix Endpoint Management-Konsole konfigurieren, wenn Sie die Apps hinzufügen.

  1. Ändern Sie Richtlinienwerte in der Richtlinien-XML-Datei.

    Vom MDX Toolkit-Installationsprogramm wird folgende Richtliniendatei erstellt: Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    Hinweis:

    Für iOS und Android werden unterschiedliche Richtliniendateien verwendet. Zum Vorgeben von Richtlinien für beide Plattformen müssen Sie beide Richtlinien-XML-Dateien ändern.

  2. Beim Umschließen einer App mit der Befehlszeile verwenden Sie:

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

Identifizieren von Fehlern beim Umschließen von Android-Apps

Wenn beim Umschließen von Android-Apps ein Fehler auftritt, können Sie diesen anhand der Protokolle des MDX Toolkits identifizieren. Sie müssen Administratorrechte zum Anzeigen der Protokolle des MDX Toolkits haben.

Wenn Sie das MDX Toolkit ausführen, wird eine Protokolldatei im folgenden Verzeichnis gespeichert: Applications/CitrixMDXToolkit/Logs/Citrix.log. Standardmäßig speichert das Tool Warnungen und Fehler im Protokoll.

Sammeln von App-Protokollen über die Befehlszeile

  1. Installieren Sie Android Debug Bridge von der Android Developer-Website. Weitere Informationen finden Sie unter Android Debug Bridge.
  2. Geben Sie den folgenden Befehl ein, um vorhandene Protokolle zu löschen: “adb logcat -c”
  3. Reproduzieren Sie das Problem.
  4. Geben Sie den folgenden Befehl ein, um alle Protokolle in einer Datei zu erfassen: adb logcat -d > Name_of_Log_File.txt