Product Documentation

Entwickeln von iOS-Apps

Dec 20, 2017

Sie können mobile Apps für XenMobile mit der Worx-API aktivieren. In diesem Artikel wird beschrieben, wie Sie das Worx App SDK in Ihre App-Bibliothek integrieren und Ihre Apps testen, zertifizieren und veröffentlichen.

Quicklinks zu Themen in diesem Artikel

Verwenden des Worx App SDKs

Hier werden einige Beispiele zur Verwendung der APIs vorgestellt.

Festlegen von Einschränkungen für Apps
Sie können den Zugriff auf bestimmte Features oder Aktionen für eine App basierend darauf steuern, ob API-Aufrufe darauf hinweisen, dass die App verwaltet oder umschlossen ist. Beispielsweise können Sie den Zugriff auf alle Features und Aktionen zulassen, sofern eine App nicht verwaltet oder umschlossen ist. Ist eine App umschlossen aber nicht verwaltet, können Sie den Zugriff auf bestimmte Features oder Aktionen einschränken. Für umschlossene und verwaltete Apps können Sie zusätzliche Einschränkungen festlegen.
Ausführen von Aktionen basierend auf XenMobile-Richtlinieneinstellungen
Angenommen, Sie möchten, dass Benutzern eine Benachrichtigung angezeigt wird, wenn ein XenMobile-Administrator die Richtlinie "WiFi erforderlich" aktiviert. Das bedeutet, dass die App nur im Netzwerk Ihres Unternehmens ausgeführt werden darf. Sie können die API die Richtlinieneinstellung prüfen lassen und dann Ihre Codeänderungen auf dem Richtlinienwert basierend programmieren.
Ausführen von Aktionen basierend auf der benutzerdefinierten Richtlinien
Sie können die APIs zum Lesen benutzerdefinierter Richtlinien in Ihren Apps verwenden. Angenommen, XenMobile-Administratoren sollen die Berechtigung erhalten, eine Benachrichtigung in der App anzuzeigen. Dazu erstellen Sie eine benutzerdefinierte Richtlinie, die leer ist oder eine Systemmeldung enthält, die von einem Administrator in der XenMobile-Konsole bereitgestellt wird. Wird die App verwaltet, kann sie erkennen, wenn ein XenMobile-Administrator den Richtlinienwert ändert. Enthält der Richtlinienwert eine Nachricht, wird diese von der App angezeigt.

Informationen zu API-Definitionen finden Sie unter Worx-API für iOS.

Integrieren des SDKs in die App Bibliothek

Zum Hinzufügen des Worx App SDKs zu Ihren iOS-Apps verbinden Sie das SDK-Framework wie nachfolgend beschrieben mit Ihrer App. Das Worx App SDK für iOS basiert auf Objective-C und besteht aus einer Sammlung von Headerdateien und einer statischen Bibliothek.

1. Wenn Sie das aktuelle MDX Toolkit noch nicht installiert haben, tun Sie dies jetzt.

a. Melden Sie sich bei der XenMobile-Downloadseite an.

b. Erweitern Sie XenMobile Apps and MDX Toolkit.

c. Suchen Sie die gewünschte MDX Toolkit-Version und klicken Sie auf deren Link, um den Download auszuführen.

d. Öffnen Sie MDXToolkit.mpkg mit dem macOS-Finder unter macOS 10.9.4 oder höher und Xcode 7 oder höher.

Für Xcode 8 und höher besteht ein bekanntes Problem, bei dem die Projektdatei bereinigt werden muss, bevor die App per Push auf dem Gerät bereitgestellt werden kann.

Der Installationspfad ist Applications/Citrix/MDXToolkit.

Installationsverzeichnis

 

Die Worx App SDK-Dateien sind in Applications/Citrix/MDXToolkit/data/MDXSDK.

Integrieren Sie nach der Installation des MDX Toolkits das Worx Framework in Ihr Xcode-Projekt.

2. Fügen Sie dem Apple Xcode-Projekt den Ordner "data//MDXSDK" hinzu. Ziehen Sie hierfür den Ordner mit der Maus auf das Xcode-Projekt.

3. Ändern Sie wie im folgenden Beispiel eine Codezeile in der vorkompilierten Headerdatei im App-Projekt zum Importieren von WorxEnable.h aus Worx.framework:

Befehl Kopieren

#ifdef__OBJC__
_
//import MDX extensions
#import <AVFoundation/AVFoundation.h>
#import <SystemConfiguration/SCNetworkReachability.h>
#import <Worx/WorxEnable.h>
#endif

4. Fügen Sie der Einstellung "other linker flags" folgende Einträge hinzu, sofern sie nicht bereits vorhanden sind:

  • –lsqlite3
  • –ObjC
  • –lxml2
  • -u _FIPS_text_start
  • -u _FIPS_text_end
  • -u _FIPS_rodata_start
  • -u _FIPS_rodata_end

5. Fügen Sie die folgenden Frameworks und Bibliotheken hinzu:

  • AssetsLibrary.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • CFNetwork.framework
  • CoreData.framework
  • CoreLocation.framework
  • CoreTelephony.framework
  • JavaScriptCore.framework
  • LocalAuthentication.framework
  • MessageUI.framework
  • MobileCoreServices.framework
  • Photos.Framework
  • QuickLook.framework
  • Security.Framework
  • Social.Framework
  • SystemConfiguration.framework
  • Libresolv.tbd
  • Libstdc++.tbd
  • Libz.tbd
Die folgende Tabelle enthält eine Liste der Bibliotheken, die einen Konflikt mit ähnlichen Bibliotheken in iOS-Apps verursachen können. Citrix empfiehlt die Verwendung der Citrix Versionen dieser Bibliotheken zur Vermeidung von Konflikten.

Bibliothek Konfliktstatus
OpenSSL 1.0.1H Keine größeren Änderungen, mit FIPS -Unterstützung. Verursacht Konflikte.
Thrift Keine größeren Änderungen, jedoch einige interne Verbesserungen. Verursacht Konflikte.

7. Setzen Sie in den Buildeinstellungen "Strip Style" auf Non-Global Symbols und "Enable Bitcode" auf No.

8. Führen Sie ein Skript aus, um die SDKPrep-Befehlszeile hinzuzufügen.

  • Wählen Sie Ihr Projekt in Xcode und wählen Sie dann die Registerkarte BuildPhases. Klicken Sie oben links auf das Pluszeichen (+) und klicken Sie dann auf New Run Script Phase.
  • Öffnen Sie das neue Ausführungsskript und tippen Sie den unten aufgeführten Text in das Feld Script ein. Ändern Sie die Variablen PACKAGEID, APPTYPE, STOREURL und POLICYFILE gemäß den Werten für Ihre App. PACKAGEID ist ein eindeutiger Bezeichner für die App, normalerweise die UUID. Dies ist nicht erforderlich, da das MDX Toolkit eine eindeutige Paket-ID generiert, wenn die Anwendung erstellt wird. Wenn Sie eine Paket-ID angeben, stellen Sie sicher, dass diese für jede neue Version der App, die Sie mit diesem Befehl umschließen, eindeutig ist.
  • Wenn es sich um eine Unternehmensapp handelt, verwenden Sie den Standardparameter -Apptype Enterprise. Für Apps unabhängiger Softwarehersteller können Sie die Werte "Premium" oder "General" verwenden.

Hinweis: Für APPTYPE werden die Schlüsselwörter "Enterprise", "Premium" und "General" unterstützt.

command Kopieren

export PACKAGEID="your-project-PackageID"
export APPTYPE="keyword"
export STOREURL="http://your-store-URL"
export DATE=`date +%Y-%m-%d_%H-%M-%S`
export POLICYFILE=${SRCROOT}/${EXECUTABLE_NAME}/${EXECUTABLE_NAME}_policy_metadata.xml
/Applications/Citrix/MDXToolkit/CGAppCLPrepTool SdkPrep -in "${CODESIGNING_FOLDER_PATH}" -out "/Users/<UserName>/Downloads/${EXECUTABLE_NAME}_${DATE}.mdx" -storeUrl "${STOREURL}" -appIdPrefix "ABCDEFGH" -packageId "${PACKAGEID}" -policyXML "${POLICYFILE}" -appType "${APPTYPE}" -entitlements "${CODE_SIGN_ENTITLEMENTS}"

Beispiel:

Befehl Kopieren

export PACKAGEID="a96d6ed5-6632-4739-b9b6-9ad9d5600732"
export APPTYPE="Enterprise
export STOREURL="http://example.com/12345"
export DATE=`date +%Y-%m-%d_%H-%M-%S`
export POLICYFILE=${SRCROOT}/${EXECUTABLE_NAME}/${EXECUTABLE_NAME}_policy_metadata.xml
/Applications/Citrix/MDXToolkit/CGAppCLPrepTool SdkPrep -in "${CODESIGNING_FOLDER_PATH}" -out "/Users/<UserName>/Downloads/${EXECUTABLE_NAME}_${DATE}.mdx" -storeUrl "${STOREURL}" -appIdPrefix "ABCDEFGH" -packageId "${PACKAGEID}" -policyXML "${POLICYFILE}" -appType "${APPTYPE}" -entitlements "${CODE_SIGN_ENTITLEMENTS}"

Parameters Description

-in Dateiname

Pfad der von Xcode generierten App-Datei. Das MDX Toolkit bettet MDX-spezifische Ressourcen in diese Datei ein.

-out Dateiname

Zielpfad für die MDX-Datei. Verwenden Sie diese Datei zur Veröffentlichung auf XenMobile Server.

-storeURl URL

In die MDX-Datei eingebettete App-Store-URL für die App. Sie können diesen Parameter nicht zusammen mit "-StoreURL" verwenden.

-appType Schlüsselwort

Gültige Schlüsselwörter sind"Enterprise", "Premium" und "General".

-packageId UUID

Eindeutige Paket-ID für die App (normalerweise eine UUID). Nicht erforderlich, da das MDX Toolkit eine eindeutige Paket-ID generiert, wenn die Anwendung erstellt wird. Wenn Sie eine Paket-ID angeben, stellen Sie sicher, dass diese für jede neue Version der App, die Sie mit diesem Befehl umschließen, eindeutig ist.

Jeden Provisioningprofil ist eine eindeutige ID zugeordnet. Wenn Sie das Provisioningprofil (.mobileprovision) in einem Texteditor öffnen, sehen Sie den folgenden XML-Tag mit der UUID.
UUID
4e38fb18-88b0-4806-acfa-e08bf38ec48d 

 

-policyXML Dateiname

Pfad der MDX-Richtlinienvorlagendatei für die App.

-entitlements Dateiname

Erforderlich (eingeführt in Version 10.3.10). Pfad der Berechtigungsdatei für die App. Das MDX Toolkit fügt dieser Datei einen Eintrag der Schlüsselbundverwaltungsgruppe für com.citrix.mdx hinzu. Dieser wird von der App zur gemeinsamen Verwendung von Schlüsseln mit anderen MDX-Apps benötigt, die mit dem gleichen Zertifikat und dem iOS-Schlüsselbund signiert wurden.

-appIdPrefix Präfix

App-ID-Präfix: die Team-ID Ihres Apple Developer-Kontos

9. Kompilieren Sie das Projekt und generieren Sie die App-Binärdateien.

  • Erstellen Sie die App in Xcode und vergewissern Sie sich, dass der Build ordnungsgemäß erstellt wird.
  • Archivieren Sie die App durch Auswählen von "Product > Archive".
  • Wenn die App archiviert ist, öffnet sich Xcode Organizer automatisch.
  • Wählen Sie in Organizer den archivierten Build und klicken Sie auf Export.
  • Wählen Sie die geeignete Exportmethode und klicken Sie auf "Next".

Folgen Sie den Anweisungen zum Exportieren der App in eine IPA-Datei.

10. Kompilieren und archivieren Sie das Projekt, um das App-Paket zu erstellen, welches das eingebettete Worx-Framework enthält (IPA-Paket). Xcode generiert eine zugehörige MDX-Datei, die Sie auf XenMobile Server hochladen. Wenn nach Xcode-Build und -Archivierung das IPA-Paket erstellt wird, führen Sie den Befehl SetInfo an der MDX-Datei aus. Führen Sie zudem die Befehlsoption -embedBundle aus, um die IPA-Datei in die MDX-Datei einzufügen. Anschließend können Sie die App in XenMobile hochladen.

command Kopieren

/Applications/Citrix/MDXToolkit/CGAppCLPrepTool SdkPrep -in "${CODESIGNING_FOLDER_PATH}" -out "/Users/<UserName>/Downloads/${EXECUTABLE_NAME}_${DATE}.mdx" " -embedBundle "/Users/deva/Desktop/{EXECUTABLE_NAME}.ipa" 

11. Sie können die App auch direkt an den App-Store oder TestFlight übermitteln, sofern Sie die App für die Bereitstellung über die iTunes Connect-Website konfiguriert haben.

Überlegungen zu App-Upgrades

Die XenMobile-Software kann sich von Version zu Version erheblich ändern. Um in den Genuss der neuesten Features und Fehlerbehebungen zu kommen, müssen Sie Ihre Apps mit der jeweils aktuellen Version des MDX Toolkits umschließen. Umschließen Sie die ursprüngliche IPA- bzw. APK-Datei und nicht die geänderte, zuvor mit dem MDX Toolkit generierte Datei.

Verwenden Sie die entsprechende Version des Worx App SDKs.