Développement d’applications iOS

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

Comment utiliser le SDK de l’application MDX

Voici quelques exemples d’utilisation de l’API.

  • Placer des restrictions sur les applications

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

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

    Supposons que vous souhaitez afficher une notification pour les utilisateurs si un administrateur Citrix Endpoint Management définit la stratégie Exiger Wi-Fi sur Activé. Cela signifie que l’application est autorisée à être exécutée à l’intérieur du réseau de votre organisation. Vous pouvez utiliser l’API pour rechercher le paramètre de stratégie et baser les modifications de votre code sur la valeur de stratégie.

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

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

Pour les définitions de l’API, consultez la section API pour iOS.

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

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

  1. Si vous n’avez pas encore installé la dernière version du MDX Toolkit, faites-le maintenant.

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

    2. Développez Applications XenMobile et MDX Toolkit.

    3. Recherchez la version de MDX Toolkit que vous souhaitez installer, puis cliquez sur le lien pour lancer le téléchargement.

    4. Ouvrez MDXToolkit.mpkg avec l’outil Finder sur macOS X 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 l’envoi de l’application sur l’appareil.

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

      Emplacement d'installation

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

    Après avoir installé le MDX Toolkit sur votre ordinateur, intégrez l’infrastructure MDX à 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é dans le projet de l’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
    

    Si vous n’incluez que la version réseau de l’infrastructure MDX, vous devez remplacer

    #import <MDX/MDX.h.>
    

    par

    #import <MDXNetworkOnly/MDXNetworkOnly.h>
    

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

    Si une application émet explicitement un appel d’API SDK MDX, elle doit être liée au binaire MDX.Framework ou MDXNetworkOnly.Framework et l’incorporer lorsque l’application est créée.

    Une application d’entreprise tierce préconfigurée et encapsulée par le MDX Toolkit ne nécessite aucune modification de compilation, car elle ne lance aucun appel d’API SDK MDX explicite.

    Après avoir installé le MDX Toolkit sur votre ordinateur, intégrez l’infrastructure MDX à votre projet Xcode.

  4. Faites glisser le fichier « data/MDXSDK/MDX.framework » (ou le fichier « data/MDXSDK/MDXNetworkOnly.framework ») vers la section Embedded Binaries du panneau General de l’espace de travail de l’application. Ce faisant, vous ajoutez cette infrastructure dynamique à l’infrastructure incluse dans le bundle d’application installé avec l’application. L’infrastructure est également automatiquement ajoutée à la liste des infrastructures qui sont liées à l’application.

Vous ne devez ajouter qu’une seule infrastructure MDX.

  1. Faites glisser le fichier « data/MDXSDK/CitrixLogger.framework » vers la section Embedded Binaries du panneau General de l’espace de travail de l’application.

  2. Ajoutez un script d’exécution pour supprimer les architectures des infrastructures incorporées qui n’apparaissent pas dans la liste des architectures valides Xcode. Cela répond à l’exigence d’Apple selon laquelle les infrastructures incorporées ne peuvent pas contenir les architectures iOS Simulator pour les versions d’applications Apple Store. Ce script gère automatiquement toutes les compilations cibles, qu’elles proviennent ou non de l’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
    
  3. Ajoutez un script à exécuter 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 (+) située 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. Veillez à remplacer les variables PACKAGEID, APPTYPE, STOREURL et POLICYFILE par les valeurs qui s’appliquent à votre application. PACKAGEID est un identifiant unique pour votre application, généralement un UUID. Ceci n’est pas obligatoire car le MDX Toolkit génère un ID de package unique chaque fois que l’application est créée. Si vous fournissez un ID de package, assurez-vous qu’il est unique pour chaque nouvelle version d’application que vous encapsulez à l’aide de cette commande.
    • S’il s’agit d’une application Enterprise, utilisez le paramètre -Apptype Enterprise, qui correspond à 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}"
    

    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}"
    
    Paramètres Description
    -in nom du 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 du fichier Chemin de destination pour le fichier .mdx. Utilisez ce fichier pour publier l’application sur le serveur Citrix Endpoint Management.
    -storeURl URL URL du magasin d’applications pour l’application, incorporée dans le fichier .mdx. Impossible d’utiliser ce paramètre avec -StoreURL.
    -appType mot-clé Les mots-clés sont “Enterprise,” “Premium,” and “General.”
    -packageId UUID ID de package unique pour cette application, généralement UUID. Non obligatoire, car le MDX Toolkit génère un ID de package unique chaque fois que l’application est créée. Si vous fournissez un ID de package, 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 voyez la balise XML ci-dessous avec l’UUID. <key>UUID</key> <string>4e38fb18-88b0-4806-acfa-e08bf38ec48d</string>
    -policyXML nom du fichier Chemin d’accès au fichier du modèle de stratégie MDX pour votre application.
    -entitlements nom du fichier Obligatoire (introduit dans la version 10.3.10). Chemin d’accès au fichier de droits de licence pour l’application. Le MDX Toolkit ajoute à ce fichier une entrée de groupe de trousseau d’accès pour com.citrix.mdx. Ceci est nécessaire pour que votre application partage les secrets avec d’autres applications MDX signées avec le même certificat, à l’aide du trousseau iOS.
    -appIdPrefix préfixe Préfixe identifiant d’application - l’identifiant d’équipe associé à votre compte de développeur Apple.
  4. Compilez votre projet et générez les fichiers binaires de l’application.

    • Créez votre application dans Xcode et vérifiez qu’elle est créée correctement.
    • Archivez votre application en sélectionnant Product > Archive.
    • Xcode Organizer s’ouvre automatiquement une fois que votre application est archivée.
    • Sélectionnez votre build archivée dans Organizer, puis cliquez sur Export.
    • Sélectionnez la méthode d’exportation, puis cliquez sur Next.

    Suivez les invites d’exportation de votre application dans un fichier IPA.

  5. Compilez et archivez le projet pour générer le bundle d’application qui contient l’infrastructure MDX incorporée, c’est-à-dire le package .ipa. Xcode génère un fichier MDX correspondant que vous chargez sur le serveur Citrix Endpoint Management. Une fois que les étapes de création et d’archivage de 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. Ensuite, vous pouvez 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"
    
  6. Si vous avez configuré l’application afin qu’elle soit distribuée via le site Web iTunes Connect, vous pouvez également l’envoyer directement vers le magasin d’applications ou TestFlight.

Considérations pour la mise à niveau des applications

Le logiciel Citrix Endpoint Management peut changer de manière significative d’une version à l’autre. Pour bénéficier des dernières fonctionnalités et corrections de bogues, vous devez utiliser la dernière version de l’outil MDX Toolkit pour encapsuler votre application. Veillez à encapsuler le fichier .ipa ou .apk d’origine et non le fichier modifié qui a été préalablement généré par le MDX Toolkit.

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