Développement d’applications iOS

Vous pouvez utiliser l’API MDX pour activer vos applications mobiles pour Citrix Endpoint Management. Cet article décrit comment intégrer le SDK d’application MDX dans votre bibliothèque d’applications et les étapes requises pour tester, certifier et publier vos applications.

  • Comment utiliser le SDK d’application MDX

  • Voici quelques exemples d’utilisation des API.

  • Appliquer des restrictions aux applications

    Vous pouvez contrôler quand votre application autorise l’accès à certaines fonctionnalités ou actions en fonction de si les appels d’API indiquent que l’application est gérée ou encapsulée. Par exemple, si une application n’est ni gérée ni encapsulée, vous pouvez autoriser un utilisateur à accéder à toutes les fonctionnalités et actions. Si une application est encapsulée mais non gérée, vous pouvez alors restreindre certaines fonctionnalités ou actions. Si une application est encapsulée et gérée, vous pouvez imposer des restrictions supplémentaires à l’application.

    • Effectuer des actions basées sur les paramètres de stratégie de Citrix Endpoint Management

    Supposons que vous souhaitiez afficher une notification aux utilisateurs si un administrateur Citrix Endpoint Management définit la stratégie « Exiger le Wi-Fi » sur « Activé ». Cela signifie que l’application est autorisée à s’exécuter uniquement à partir du réseau de votre organisation. Vous pouvez utiliser l’API pour rechercher le paramètre de stratégie, puis baser vos modifications de code sur la valeur de la stratégie.

    • Effectuer des actions basées sur des stratégies personnalisées

    Vous pouvez utiliser les API pour lire les stratégies personnalisées dans vos applications. Par exemple, supposons que vous souhaitiez permettre aux administrateurs Citrix Endpoint Management d’afficher une notification dans l’application. Pour ce faire, créez une stratégie personnalisée vide ou contenant un message système fourni par un administrateur dans la console Citrix Endpoint Management. Si votre application est gérée, elle peut détecter quand l’administrateur Citrix Endpoint Management modifie la valeur de la stratégie. Si la valeur de la stratégie contient un message, votre application affiche la notification.

Pour les définitions d’API, consultez API pour iOS.

Intégration du SDK dans votre bibliothèque d’applications

Pour ajouter le SDK d’application MDX à vos applications iOS, liez le framework du SDK à votre application comme décrit dans cette section. Le SDK d’application MDX pour iOS, basé sur Objective-C, est une collection de fichiers d’en-tête et une bibliothèque statique.

  1. Si vous n’avez pas encore installé le dernier MDX Toolkit, faites-le maintenant.

    1. Connectez-vous à la page de téléchargements de Citrix Endpoint Management.

    2. Développez XenMobile® Apps and MDX Toolkit.

    3. Localisez la version du MDX Toolkit que vous souhaitez installer et cliquez sur le lien pour lancer le téléchargement.

    4. Ouvrez MDXToolkit.mpkg avec l’outil Finder de macOS sur macOS 10.9.4 ou version ultérieure et Xcode 7 ou version ultérieure.

      Pour Xcode 8 et versions ultérieures, un problème connu existe où le fichier de projet doit être nettoyé avant de pousser l’application vers l’appareil.

      Le chemin d’installation est Applications/Citrix/MDXToolkit.

      Emplacement d'installation

    Les fichiers du SDK d’application MDX se trouvent dans Applications/Citrix/MDXToolkit/data/MDXSDK.

    Après avoir installé le MDX Toolkit sur votre ordinateur, intégrez le framework MDX dans votre projet Xcode.

  2. Ajoutez le dossier data/MDXSDK au projet Apple Xcode. Pour ce faire, vous pouvez faire glisser ce dossier vers le projet Xcode.

  3. Modifiez une ligne de code dans le fichier d’en-tête précompilé du projet d’application pour importer MDX.h depuis MDX.framework, comme illustré dans l’exemple suivant.

        #ifdef__OBJC__
        _
        //import MDX extensions
        #import <AVFoundation/AVFoundation.h>
        #import <SystemConfiguration/SCNetworkReachability.h>
        #import <MDX/MDX.h>
        #endif
    <!--NeedCopy-->
    

    Si vous incluez uniquement la version « Network Only » du framework MDX, vous devez remplacer

    #import <MDX/MDX.h.>
    <!--NeedCopy-->
    

    Par

    #import <MDXNetworkOnly/MDXNetworkOnly.h>
    <!--NeedCopy-->
    

    Si vous encapsulez une application qui émet explicitement un appel à une API exposée par le framework du SDK MDX, les lignes MDX.h et MDXNetworkOnly.h sont facultatives.

    Si une application émet explicitement un appel d’API du SDK MDX, elle doit être liée et intégrer le binaire MDX.framework ou MDXNetworkOnly.framework lors de la compilation de l’application.

    • Une application d’entreprise tierce précompilée qui est encapsulée par le MDX Toolkit ne nécessite aucune modification de build car elle n’effectue aucun appel d’API explicite du SDK MDX.

    Après avoir installé le MDX Toolkit sur votre ordinateur, intégrez le framework MDX dans votre projet Xcode.

  4. Faites glisser le fichier data/MDXSDK/MDX.framework (ou data/MDXSDK/MDXNetworkOnly.framework) vers la section « Embedded Binaries » du panneau des propriétés générales de l’espace de travail de l’application. Ce faisant, vous ajoutez ce framework dynamique aux frameworks inclus dans le bundle d’application installé avec l’application. De plus, le framework est automatiquement ajouté à la liste des frameworks liés à l’application.

Vous ne devez ajouter qu’un seul framework MDX.

  1. Faites glisser le fichier data/MDXSDK/CitrixLogger.framework vers la section « Embedded Binaries » du panneau des propriétés générales de l’espace de travail de l’application.

  2. Ajoutez un script d’exécution pour supprimer les architectures des frameworks intégrés qui n’apparaissent pas dans la liste des architectures valides de Xcode. Cela répond à l’exigence d’Apple selon laquelle les frameworks intégrés ne peuvent pas contenir d’architectures de simulateur iOS pour les builds d’applications de l’Apple Store. Ce script gérera automatiquement toutes les cibles de build, qu’il s’agisse de builds non-Apple Store ou de builds de type Apple Store.

    echo "Strip unnecessary archs from Embedded Frameworks"
    cd "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}"
    for file in $(find . -type f -perm +111);
    do
        if ! [[ "$(file "$file")" == *"dynamically linked shared library"* ]];
        then
            continue
        fi
        # Get architectures for current file
        archs="$(lipo -info "${file}" | rev | cut -d ':' -f1 | rev)"
        # Strip any archs from frameworks not valid for current app build
        for arch in $archs;
        do
            if ! [[ "${VALID_ARCHS}" == *"$arch"* ]];
            then
                lipo -remove "$arch" -output "$file" "$file" || exit 1
            fi
        done
    done
    <!--NeedCopy-->
    
      1. Ajoutez un script d’exécution pour ajouter la ligne de commande SDKPrep.
    • Sélectionnez votre projet dans Xcode, puis sélectionnez l’onglet Build Phases. Cliquez sur l’icône plus (+) dans le coin supérieur gauche, puis cliquez sur New Run Script Phase.
    • Ouvrez le nouveau script d’exécution, puis saisissez le texte suivant dans le champ Script. Assurez-vous de modifier les variables PACKAGEID, APPTYPE, STOREURL et POLICYFILE avec des valeurs applicables à votre application. Le PACKAGEID est un identifiant unique pour votre application, généralement un UUID. Ce n’est pas obligatoire, car le MDX Toolkit génère un packageID unique chaque fois que l’application est compilée. Si vous fournissez un packageID, assurez-vous qu’il est unique pour chaque nouvelle version d’application que vous encapsulez à l’aide de cette commande.
    • Si cette application est une application d’entreprise, utilisez le paramètre -Apptype Enterprise qui est la valeur par défaut. Pour les applications ISV, vous pouvez utiliser les valeurs Premium ou General.

    Remarque :

    Les mots-clés pris en charge pour APPTYPE sont Enterprise, Premium et General.

        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}"
    <!--NeedCopy-->
    

    Exemple :

        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}"
    <!--NeedCopy-->
    
Paramètres Description
-in nom de fichier Chemin d’accès au fichier .app généré par Xcode. Le MDX Toolkit intègre des ressources spécifiques à MDX dans ce fichier.
-out nom de fichier Chemin de destination du fichier .mdx. Utilisez ce fichier pour publier l’application sur le serveur Citrix Endpoint Management.
-storeURl URL URL de l’App Store pour l’application, intégrée dans le fichier .mdx. Impossible d’utiliser ce paramètre avec -StoreURL.
-appType mot-clé Les mots-clés sont « Enterprise », « Premium » et « General ».
-packageId UUID L’ID de package unique pour cette application, généralement un UUID. Ce n’est pas obligatoire, car le MDX Toolkit génère un packageID unique chaque fois que l’application est compilée. Si vous fournissez un packageId, assurez-vous qu’il est unique pour chaque nouvelle version d’application que vous encapsulez à l’aide de cette commande. Un ID unique est associé à chaque profil de provisioning. Si vous ouvrez le profil de provisioning (.mobileprovision) dans un éditeur de texte, vous verrez la balise XML ci-dessous avec l’UUID. <key>UUID</key> <string>4e38fb18-88b0-4806-acfa-e08bf38ec48d</string>
-policyXML nom de fichier Chemin d’accès au fichier de modèle de stratégie MDX pour votre application.
-entitlements nom de fichier Obligatoire (introduit dans la version 10.3.10). Chemin d’accès au fichier d’autorisations pour l’application. Le MDX Toolkit ajoute une entrée de groupe d’accès au trousseau pour com.citrix.mdx à ce fichier. Il est nécessaire pour que votre application partage des secrets avec d’autres applications MDX signées avec le même certificat, en utilisant le trousseau iOS.
-appIdPrefix préfixe Préfixe d’identifiant d’application - l’ID d’équipe associé à votre compte de développeur Apple.
  1. Compilez votre projet et générez les binaires de l’application.

    • Compilez votre application dans Xcode, en vérifiant qu’elle se compile correctement.
    • Archivez votre application en sélectionnant Product > Archive.
  • L’Organisateur Xcode s’ouvre automatiquement après l’archivage de votre application.
    • Sélectionnez votre build archivée dans l’Organisateur, puis cliquez sur Exporter.
    • Sélectionnez la méthode d’exportation applicable, puis cliquez sur Suivant.

    Suivez les invites pour exporter votre application vers un fichier IPA.

  1. Compilez et archivez le projet pour générer le bundle d’application qui contient le Framework MDX intégré, qui est le package .ipa. Xcode génère un fichier MDX correspondant que vous téléchargez sur le serveur Citrix Endpoint Management. Une fois que les étapes de build et d’archivage Xcode ont créé le bundle IPA, exécutez la commande SetInfo sur le fichier MDX. Exécutez également l’option de commande -embedBundle pour insérer le fichier IPA final dans le fichier MDX. Après cela, vous pouvez télécharger l’application sur Citrix Endpoint Management.

    /Applications/Citrix/MDXToolkit/CGAppCLPrepTool SdkPrep -in "${CODESIGNING_FOLDER_PATH}" -out "/Users/<UserName>/Downloads/${EXECUTABLE_NAME}_${DATE}.mdx" " -embedBundle "/Users/deva/Desktop/{EXECUTABLE_NAME}.ipa"
    <!--NeedCopy-->
    
  2. Si vous avez configuré l’application pour la distribution via le site web iTunes Connect, vous pouvez également la soumettre directement à l’App Store ou à TestFlight.

Considérations relatives à la mise à niveau des applications

Le logiciel Citrix Endpoint Management peut changer considérablement entre les versions. Pour profiter des dernières fonctionnalités et corrections de bogues, vous devez utiliser la dernière version du MDX Toolkit pour encapsuler votre application. Assurez-vous d’encapsuler votre fichier .ipa ou .apk d’origine, et non le fichier modifié précédemment généré par le MDX Toolkit.

Assurez-vous d’utiliser la version correspondante du SDK d’application MDX.

Développement d’applications iOS