Utilisation de mtouch pour grouper des applications Xamarin.iOS

Les applications iPhone sont livrées en tant qu’offres groupées d’applications. Il s’agit de répertoires avec l’extension .app qui contiennent votre code, données, fichiers de configuration et un manifeste utilisé par l’iPhone pour en savoir plus sur votre application.

Le processus de transformation d’un fichier exécutable .NET dans une application est principalement piloté par la commande mtouch, un outil qui intègre plusieurs étapes requises pour activer l’application dans une offre groupée. Cet outil est également utilisé pour lancer votre application dans le simulateur et déployer le logiciel sur un appareil de tactiles iPhone ou iPod Touch réel.

Instructions Détaillé

Vérifiez la page de votre manuel mtouch(1) avec toutes les utilisations possibles de l’outil mtouch.

Installation

Sur un Mac, mtouch est fourni avec Xamarin.iOS. Cet outil se trouve dans le répertoire suivant :

/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin

Pour rendre mtouch pratique à utiliser, ajoutez son répertoire parent à la variable d’environnement PATH de votre système.

Par exemple, pour ce faire dans Bash, ajoutez la ligne suivante à la fin de votre fichier ~/.bash_profile :

export PATH=$PATH:/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin

Avertissement

Pour utiliser mtouch, ne comptez pas sur l’existence de /Developer/MonoTouch/usr/bin, un lien symbolique qui pointe vers /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin. Ce lien symbolique existe uniquement pour maintenir la compatibilité avec les anciennes mises en production MonoTouch qui n’étaient pas installées dans /Library/Frameworks/... et il peut disparaître dans une mise en production ultérieure.

Création

La commande mtouch peut compiler votre code de trois façons différentes :

  • compilation pour le test du simulateur
  • compilation pour le déploiement de l’appareil
  • déploiement de votre fichier exécutable sur l’appareil.

Compilation pour le simulateur

Lors du démarrage, le scénario le plus fréquemment utilisé sera d’essayer l’application dans le simulateur, afin d’utiliser mtouch -sim pour compiler le code dans un package du simulateur. Cette opération s’effectue comme suit :

$ mtouch -sim Hello.app hello.exe

Compilation pour l’appareil

Pour générer des logiciels pour l’appareil, générez votre application à l’aide de l’option mtouch -dev, puis fournissez le nom du certificat utilisé pour vous connecter à votre application. L’exemple suivant montre comment l’application est générée pour l’appareil :

$ mtouch -dev -c "iPhone Developer: Miguel de Icaza" foo.exe

Dans ce cas particulier, nous utilisons le certificat « Développeur iPhone : Miguel de Icaza » pour nous connecter à l’application. Cette étape est très importante, sinon l’unité physique refuse de charger l’application.

Exécution de votre application

Lancement sur le simulateur

Le lancement sur le simulateur est très simple une fois que vous disposez d’une offre groupée d’applications :

$ mtouch --sdkroot /Applications/Xcode.app -launchsim Hello.app 

Si l’indicateur --sdkroot n’est pas défini, il s’affiche par défaut sur xcode-sélectionner le chemin d’accès et devient l’avertissement suivant :

par exemple : avertissement MT0061 : aucun Xcode.app spécifié (utilisation de --sdkroot), à l’aide du système Xcode comme indiqué par ''xcode-select --print-path': /Applications/Xcode.app/Contents/Developer

La ligne de commande ci-dessus génère une sortie comme suit :

Launching application
Application launched
PID: 98460
Press enter to terminate the application

Il est fortement recommandé de conserver également un journal des fichiers de sortie et d’erreur standard pour faciliter le débogage. La sortie de Console.WriteLine va à stdout et la sortie depuis Console.Error.WriteLine et tout autre message d’erreur runtime va à stderr.

Pour ce faire, utilisez les indicateurs --stdout et --stderr :

../../tools/mtouch/mtouch --launchsim=Hello.app --stdout=output --stderr=error

Si votre application échoue, vous pouvez voir la sortie et l’erreur pour diagnostiquer le problème.

Déploiement sur un appareil

Pour déployer sur votre appareil, vous devez configurer votre appareil comme décrit dans le document Gestion des appareils d’Apple. Une fois votre appareil correctement configuré, vous pouvez utiliser la commande mtouch pour déployer un fichier « .app » compilé dans votre appareil. Pour cela, utilisez la commande :

$ mtouch —sdkroot /Applications/Xcode.app -installdev=MyApp.app

Si l’indicateur --sdkroot n’est pas défini, il s’affiche par défaut sur xcode-sélectionner le chemin d’accès et devient l’avertissement suivant :

par exemple : avertissement MT0061 : aucun Xcode.app spécifié (utilisation de --sdkroot), à l’aide du système Xcode comme indiqué par ''xcode-select --print-path': /Applications/Xcode.app/Contents/Developer

Ces étapes sont généralement effectuées par Visual Studio pour Mac.

Référence

Consultez la page du manuel mtouch(1) pour plus d’informations sur les autres options de ligne de commande.