Verpacken von Android-Mobil-Apps
Dieser Artikel beschreibt, wie Citrix Endpoint Management™-Administratoren Drittanbieter-Unternehmens-Apps verpacken und wie Entwickler ISV-Apps verpacken. Zum Verpacken von Android-Mobil-Apps verwenden Sie das MDX Toolkit, das ein macOS-Grafikoberflächen-Tool und ein Java-Befehlszeilen-Tool umfasst. Das Befehlszeilen-Tool bietet Anpassungsoptionen, kann von Skripten referenziert werden, die den App-Verpackungsprozess automatisieren, und ermöglicht es Ihnen, einige MDX-Richtlinien voreinzustellen.
Der Dateityp für eine verpackte App ist .mdx. Sie laden die .mdx-Datei in die Endpoint Management-Konsole hoch, wo Sie dann spezifische App-Details und Richtlinieneinstellungen konfigurieren, die der Endpoint Management Store durchsetzt. Wenn sich Benutzer anmelden, erscheint die App im App Store. Benutzer können die App dann abonnieren, herunterladen und auf ihrem Gerät installieren.
-
Die folgende Abbildung bietet einen Überblick über die Schritte zum Verpacken von Apps, von der Installation des MDX Toolkits bis zum Testen mobiler Produktivitäts-Apps. Verwandte Themen sind unter dem Diagramm aufgeführt.
-

Details zu Nummer eins finden Sie unter:
- Systemanforderungen
- Weitere Anforderungen für das Verpacken von Android-Mobil-Apps
- Endpoint Management-Kompatibilität
-
Details zu Nummer zwei finden Sie unter:
- ISV Android-App-Verpackung mit der Befehlszeile
- Enterprise Android-App-Verpackung mit der Befehlszeile
- Befehlsoptionen
- Voreinstellen von MDX-Richtlinien für Android-Apps
- Identifizieren von Android-App-Verpackungsfehlern
- Sammeln von App-Protokollen über die Befehlszeile
- Hinzufügen einer MDX-App
Wichtig:
Stellen Sie sicher, dass Ihre Benutzergeräte mit einer Version von Secure Hub aktualisiert sind, die mit der zum Verpacken von Apps verwendeten Version des MDX Toolkits kompatibel ist. Andernfalls erhalten Benutzer eine Fehlermeldung bezüglich der Inkompatibilität. Details finden Sie unter Endpoint Management-Kompatibilität.
ISV-App-Verpackung mit der grafischen Benutzeroberfläche
Die folgenden Schritte beschreiben den allgemeinen Prozess zum Verpacken einer ISV-App, die Sie aus dem Google Play Store bereitstellen werden.
-
Bevor Sie das Toolkit zum Verpacken von Apps verwenden, sichern Sie unbedingt die Originalversion dieser Apps, damit Sie bei Bedarf darauf zurückgreifen können.
-
Starten Sie das MDX Toolkit aus Ihrem iOS-Anwendungsordner, wählen Sie For Independent Software Vendors (ISVs) aus und klicken Sie dann auf Next.

-
Wählen Sie im Bildschirm Deploy from App Store Ihre App aus und klicken Sie auf Next.
-
Wenn Sie im Bildschirm User Settings bereits die App Store-URL haben, geben Sie diese ein. Wenn Sie die URL nicht haben, geben Sie einen Platzhalter wie
https://play.google.com/store/apps/details?id=com.citrixein. Sie können die URL später aktualisieren.Wählen Sie für Premium-Apps MDX apps. Wählen Sie für allgemeine Apps App Store apps.

-
Aktualisieren Sie im Bildschirm Verify App Details die Details nach Bedarf.
-
Navigieren Sie zu Ihrem Keystore und klicken Sie auf Create.

-
- Speichern Sie Ihre App.

Wenn das GUI-Tool das Verpacken einer App abgeschlossen hat, enthält der Dateiname der App _andr.
Enterprise Android-App-Verpackung mit der Befehlszeile
Sie können die Enterprise-App-Verpackung verwenden, um benutzerdefinierte (interne) Apps und einige Drittanbieter-Apps zu verpacken. Drittanbieter-Apps sollten Sie direkt vom App-Anbieter beziehen. Für die Enterprise-App-Verpackung beginnen Sie mit einer Android-Anwendung (.apk). Bevor Sie das Toolkit zum Verpacken von Apps verwenden, sichern Sie die Originalversion dieser Apps, damit Sie bei Bedarf darauf zurückgreifen können.
Das folgende Beispiel zeigt einen grundlegenden Befehl zum Verpacken von Apps mit Standardeinstellungen. Die App wird mit dem bereitgestellten Keystore signiert. Ein Keystore ist eine Datei, die Zertifikate enthält, die zum Signieren Ihrer Android-App verwendet werden. Wenn der Keystore mehrere private Schlüssel enthält, können Sie den Schlüsselalias angeben. Sie erstellen einen Keystore einmal. Dann können Sie den Keystore verwenden, um die Apps zu signieren, die Sie verpacken. Wenn Sie nicht denselben Keystore verwenden, um die neue Version einer zuvor bereitgestellten App zu verpacken, funktionieren Upgrades dieser App nicht. Benutzer müssen die alte Version manuell entfernen, bevor sie die neue installieren können.
Ändern Sie die fettgedruckten Informationen für Ihr spezifisches System. Der nachgestellte Backslash bedeutet, dass der Befehl in der nächsten Zeile fortgesetzt wird. Bitte entfernen Sie diese Symbole, bevor Sie den Befehl ausführen.
Hinweis:
Da das Verzeichnis „/Applications/“ eingeschränkt ist, müssen Sie den folgenden Befehl möglicherweise im Superuser-Modus ausführen. Fügen Sie dazu „sudo“ vor dem Befehl ein. Sie werden nach Ihrem Computerpasswort gefragt, wenn Sie aus diesem eingeschränkten Verzeichnis ausführen.
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 Folgenden sind Beispiele für Optionen aufgeführt, die Sie dem vorhergehenden Befehl hinzufügen können, nachdem Sie die fettgedruckten Informationen geändert haben:
- -appName „Verpackte Beispiel-App“
- -appDesc „Dies ist meine neu verpackte Android-Anwendung.“
Wenn der Release-Keystore während der Entwicklung nicht verfügbar ist, verwenden Sie zusätzlich den folgenden Befehl, um einen Retail-Build einer mobilen App zu erstellen, die mit Ihrem Schlüssel signiert ist:
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-->
-
Details zu den Optionen finden Sie unter Befehlsoptionen. Für die Inline-Dokumentation verwenden Sie die Option -help.
-
ISV-Android-App-Wrapping über die Befehlszeile
- Bevor Sie das Toolkit zum Wrappen von Apps verwenden, sichern Sie die Originalversion dieser Apps, damit Sie bei Bedarf darauf zurückgreifen können. Um gewrappte ISV-Anwendungen für Android zu generieren, beginnen Sie mit dem folgenden grundlegenden Wrapping-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-->
-
Um eine App als ISV-App zu wrappen, müssen Sie den Parameter -apptype wie folgt festlegen:
- Premium: Um eine App als Premium-App zu wrappen, bei der einige Citrix®-Richtlinien auch für nicht verwaltete Benutzer erzwungen werden, fügen Sie die folgende Option hinzu: -apptype Premium
-
General: Um eine App als General-App zu wrappen, die keine Citrix-Richtlinienerzwingung für einen nicht verwalteten Benutzer enthält, fügen Sie die folgende Option hinzu: -apptype General
-
Wenn Sie die gewrappte .apk-Datei in den Google Play Store oder auf einen Webserver hochladen müssen und die URL beim Wrappen bekannt ist, fügen Sie die Option -storeURL hinzu. Stellen Sie sicher, dass Sie auch den Parameter apptype festlegen.
-
-storeURL "https://play.google.com/store/apps/details?id=com.zenprise" - Wenn Sie die URL zum Zeitpunkt des Wrappings nicht kennen, können Sie die .mdx-Datei später mit dem folgenden Befehl ändern:
- 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, stellen Sie sicher, dass Sie auf Ihre geänderte Datei verweisen:
-
-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xmlDetails zu den Optionen finden Sie unter Befehlsoptionen. Für die Inline-Dokumentation verwenden Sie die Option -help.
Befehlsoptionen
wrap-Befehl
- Help: Zeigt die Hilfe für diesen Befehl an.
- In: Erforderlich. Pfad und Dateiname der App, die Sie wrappen.
- Out: Optional. Pfad und Dateiname für die resultierende .mdx-Datei. Wenn diese Option weggelassen wird, hat die Datei denselben Pfad und Dateinamen wie die Eingabedatei und die Erweiterung .mdx.
- AppType: Optional. Standardmäßig MDXOnly. Um ISV-Apps zu generieren, verwenden Sie entweder General oder Premium.
- KeyStore: Pfad zur Keystore-Datei. Erforderlich, wenn die .apk-Datei signiert wird.
- StorePass: Kennwort für den Keystore. Erforderlich, wenn die .apk-Datei signiert wird.
- KeyAlias: Name des spezifischen Schlüssels im Keystore. Erforderlich, wenn die .apk-Datei signiert wird.
- KeyPass: Kennwort für den spezifischen Schlüssel. Erforderlich, wenn die .apk-Datei signiert wird.
- SigAlg: Optional. Algorithmus, der beim Signieren verwendet werden soll.
- AppName: Optional. Anwendungsname, wenn möglich aus der App abgerufen.
- AppDesc: Optional. Anwendungsbeschreibung, wenn möglich aus der App abgerufen.
- MinPlatform: Optional. Mindest-SDK-Level, der unterstützt wird. Standardmäßig leer.
- MaxPlatform: Optional. Maximal unterstützter SDK-Level. Standardmäßig leer.
- ExcludedDevices: Optional. Liste der Gerätetypen, auf denen die App nicht ausgeführt werden darf. Standardmäßig leer.
-
PolicyXML: Optional. Ersatz-XML-Richtliniendefinitionsdatei und -pfad. Standardmäßig die integrierten Richtliniendefinitionen. Beispiel:
-policyxml/Applications/Citrix/MDXToolkit/data/policy_metadata.xmlWeitere Details finden Sie unter Voreinstellen von MDX-Richtlinien für Android-Apps, im nächsten Abschnitt.
- StoreURL: Für ISV-Apps 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 wrappen.
- Out: Optional. Pfad und Dateiname für die resultierende .mdx-Datei. Wenn diese Option weggelassen wird, hat die Datei denselben Pfad und Dateinamen wie die Eingabedatei und die Erweiterung .mdx.
- KeyStore: Erforderlich. Pfad zur Keystore-Datei.
- StorePass: Erforderlich. Kennwort für den Keystore.
- KeyAlias: Erforderlich. Name des spezifischen Schlüssels im Keystore.
- KeyPass: Erforderlich. Kennwort für den spezifischen Schlüssel.
- SigAlg: Optional. Algorithmus, der beim Signieren verwendet werden soll.
setinfo-Befehl
- Help: Zeigt die Hilfe für diesen Befehl an.
- In: Erforderlich. Pfad und Dateiname der zu ändernden App.
- Out: Für setinfo muss sich der Ausgabepfad oder Dateiname vom Original unterscheiden.
- AppType: Optional. Standardmäßig MDXOnly. Um ISV-Apps zu generieren, verwenden Sie entweder General oder Premium.
- KeyStore: Pfad zur Keystore-Datei. Erforderlich, wenn die .apk-Datei signiert wird.
- StorePass: Kennwort für den Keystore. Erforderlich, wenn die .apk-Datei signiert wird.
- KeyAlias: Name des spezifischen Schlüssels im Keystore. Erforderlich, wenn die .apk-Datei signiert wird.
- KeyPass: Kennwort für den spezifischen Schlüssel. Erforderlich, wenn die .apk-Datei signiert wird.
- SigAlg: Optional. Algorithmus, der beim Signieren verwendet werden soll.
- AppName: Optional. Anwendungsname, wenn möglich aus der App abgerufen.
- AppDes: Optional. Anwendungsbeschreibung, wenn möglich aus der App abgerufen.
- MinPlatform: Optional. Mindest-SDK-Level, der unterstützt wird. Standardmäßig leer.
- MaxPlatform: Optional. Maximal unterstützter SDK-Level. Standardmäßig leer
- ExcludedDevices: Optional. Liste der Gerätetypen, auf denen die App nicht ausgeführt werden darf. Standardmäßig leer.
- StoreURL: Für ISV-Apps die URL der App im Google App Store. Standardmäßig leer.
-
PolicyXML: Optional. Ersatz-XML-Richtliniendefinitionsdatei und -pfad. Standardmäßig die integrierten Richtliniendefinitionen. Beispiel:
-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xmlWeitere Details finden Sie unter Voreinstellen von MDX-Richtlinien für Android-Apps, im nächsten Abschnitt.
Voreinstellen von MDX-Richtlinien für Android-Apps
Für Apps, die Sie mit dem MDX Toolkit-Befehlszeilentool wrappen, können Sie einige MDX-Richtlinien voreinstellen. Sie können Richtlinien auch in der Citrix Endpoint Management-Konsole konfigurieren, wenn Sie die Apps hinzufügen.
-
Aktualisieren Sie die Richtlinienwerte in der Richtlinien-XML-Datei.
Der MDX Toolkit-Installer erstellt diese Richtliniendatei: Applications/Citrix/MDXToolkit/data/policy_metadata.xml
Hinweis
Beachten Sie, dass sich die Richtliniendateien für Android und iOS unterscheiden. Um Richtlinien für beide Plattformen voreinzustellen, müssen Sie deren jeweilige Richtlinien-XML-Dateien aktualisieren.
-
Wenn Sie die App über die Befehlszeile wrappen, fügen Sie Folgendes ein:
-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml
Identifizieren von Android-App-Wrapping-Fehlern
Wenn beim Wrappen einer Android-App ein Fehler auftritt, können Sie die MDX Toolkit-Protokolle verwenden, um den Fehler zu identifizieren. Sie müssen über Administratorrechte verfügen, um die MDX Toolkit-Protokolle anzuzeigen.
Wenn Sie das MDX Toolkit ausführen, speichert das Tool eine Protokolldatei am folgenden Speicherort: Applications/CitrixMDXToolkit/Logs/Citrix.log. Standardmäßig speichert das Tool Warnungen und Fehler im Protokoll.
Sammeln von App-Protokollen über die Befehlszeile
- Installieren Sie die Android Debug Bridge von der Android Developer-Website. Weitere Details finden Sie unter Android Debug Bridge.
- Geben Sie den folgenden Befehl ein, um vorhandene Protokolle zu löschen: “adb logcat -c”
- Reproduzieren Sie das Problem.
- Geben Sie den folgenden Befehl ein, um die Protokolle in einer Datei zu erfassen: adb logcat -d > Name_of_Log_File.txt
In diesem Artikel
- ISV-App-Verpackung mit der grafischen Benutzeroberfläche
- Enterprise Android-App-Verpackung mit der Befehlszeile
- ISV-Android-App-Wrapping über die Befehlszeile
- Befehlsoptionen
- Voreinstellen von MDX-Richtlinien für Android-Apps
- Identifizieren von Android-App-Wrapping-Fehlern
- Sammeln von App-Protokollen über die Befehlszeile