Installer et configurer des outils de génération en utilisant iOS

Vous pouvez utiliser Visual Studio avec le développement mobile multiplateforme avec des outils C++ pour modifier, déboguer et déployer du code iOS sur le simulateur iOS ou sur un appareil iOS. Toutefois, en raison des restrictions de licences, le code doit être généré et exécuté à distance sur un Mac. Pour générer et exécuter des applications iOS à l’aide de Visual Studio, vous devez installer et configurer l’agent distant, vcremote, sur votre Mac. L’agent distant vcremote gère les demandes de génération à partir de Visual Studio et exécute l’application sur un appareil iOS connecté au Mac, ou dans le simulateur iOS sur mac.

Remarque

Pour plus d’informations sur l’utilisation des services Mac hébergés dans le cloud plutôt que sur un Mac, consultez Configurer Visual Studio pour vous connecter à votre Mac hébergé dans le cloud. Les instructions portent sur la génération à l’aide de Visual Studio Tools pour Apache Cordova. Pour utiliser les instructions de génération à l’aide de C++, remplacez vcremote par remotebuild.

Une fois que vous avez installé les outils pour générer à l’aide d’iOS, reportez-vous à cet article. Il décrit comment configurer et mettre à jour rapidement vcremote pour le développement iOS dans Visual Studio et sur votre Mac.

Prérequis

Pour installer et utiliser l’agent distant vcremote pour développer du code pour iOS, vous devez d’abord disposer de ces prérequis :

  • Un ordinateur Mac exécutant macOS Mojave version 10.14 ou ultérieure

  • Un ID Apple

  • Un compte Programme développeur Apple actif

    Vous pouvez obtenir un compte gratuit qui permet le chargement indépendant (sideloading) d’applications sur un appareil iOS uniquement pour le test, mais pas pour la distribution.

  • Xcode version 10.2.1 ou ultérieure

    Xcode peut être téléchargé depuis l’App Store.

  • Outils en ligne de commande Xcode

    Pour installer les outils en ligne de commande Xcode, ouvrez l’application Terminal sur votre Mac et entrez la commande suivante :

    xcode-select --install

  • Un compte ID Apple configuré dans Xcode comme identité de signature pour signer des applications

    Pour afficher ou définir votre identité de signature dans Xcode, ouvrez le menu Xcode et choisissez Preferences. Sélectionnez Accounts , choisissez votre ID Apple, puis cliquez sur le bouton View Details . Consultez Ajouter votre compte ID Apple pour obtenir des instructions détaillées.

    Pour plus d’informations sur les exigences de signature, consultez What is app signing.

  • Si vous utilisez un appareil iOS pour le développement, un profil d’approvisionnement configuré dans Xcode pour votre appareil

    Xcode fournit une signature automatique, où il crée des certificats de signature pour vous si nécessaire. Pour plus d’informations sur la signature automatique Xcode, consultez la signature automatique.

    Si vous souhaitez effectuer la signature manuellement, vous devez créer un profil de provisionnement pour votre application. Pour plus d’informations sur la création de profils de provisionnement, consultez Create a development provisioning profile.

  • Node.js version 18.12.1 et npm version 8.19.2

    Installez la version 18.12.1 de Node.js sur votre Mac. Si vous installez le package Node.js, il doit être associé à npm version 8.19.2. D’autres versions de Node.js et npm peuvent ne pas prendre en charge certains modules utilisés dans vcremote, ce qui peut entraîner l’échec de l’installation de vcremote. Nous vous recommandons d’installer Node.js à l’aide d’un gestionnaire de package tel que Node Version Manager. Évitez d’utiliser la commande sudo pour installer Node.js, car certains modules peuvent échouer lors de l’utilisation de sudo.

Installer vcremote pour iOS

Lorsque vous installez le développement mobile avec la charge de travail C++, Visual Studio peut communiquer avec l’agent distant vcremote exécuté sur votre Mac pour transférer des fichiers, générer et exécuter votre application iOS et envoyer des commandes de débogage.

Avant d’installer vcremote, vérifiez que vous avez satisfait les conditions préalables et effectué les étapes d’installation dans Installer le développement mobile multiplateforme avec C++.

Pour télécharger et installer vcremote

  • À partir de l’application Terminal sur votre Mac, vérifiez que la version Node.js actuellement utilisée est la version 18.12.1 requise. Pour vérifier la version, exécutez la commande :

    node -v

    S’il ne s’agit pas de la bonne version, vous devrez peut-être suivre les instructions d’installation Node.js dans les conditions préalables. Ensuite, redémarrez Node.js.

  • Après avoir vérifié que la Node.js requise est en cours d’utilisation, exécutez cette commande pour installer vcremote sous cette version Node.js :

    npm install -g --unsafe-perm vcremote

    Le commutateur d’installation globale (-g) est recommandé, mais pas obligatoire. Si vous n’utilisez pas le commutateur d’installation global, vcremote est installé sous le chemin actif actuel dans l’application Terminal.

    Pendant l’installation, vcremote le mode développeur est installé et activé sur votre Mac. Homebrew et deux packages npm, vcremote-lib et vcremote-utils, sont également installés. Une fois l’installation terminée, ne tenez pas compte des avertissements relatifs aux dépendances facultatives ignorées.

    Remarque

    Pour installer Homebrew, vous devez disposer d’un accès sudo (administrateur). Si vous devez installer vcremote sans sudo, vous pouvez installer Homebrew manuellement dans un usr/local emplacement et ajouter son bin dossier à votre chemin d’accès. Pour plus d’informations, consultez la documentation Homebrew. Pour activer manuellement le mode développeur, entrez cette commande dans l’application Terminal : DevToolsSecurity -enable

Si vous effectuez une mise à jour vers une nouvelle version de Visual Studio, vous devez également effectuer une mise à jour vers la version actuelle de vcremote. Pour mettre à jour vcremote, répétez les étapes pour télécharger et installer l’agent distant.

Démarrer vcremote

L’agent distant vcremote doit s’exécuter pour que Visual Studio génère et exécute votre code iOS. Visual Studio doit être associé à vcremote avant de pouvoir communiquer. Par défaut, vcremote s’exécute en mode de connexion sécurisée, ce qui nécessite le transfert de certificats client et serveur entre les machines Visual Studio et Mac.

Remarque

La version 1.0.19 ou ultérieure de vcremote nécessite au moins Visual Studio 2022 version 17.5.0 Preview 1 ou ultérieure. Si vous utilisez Visual Studio 2022 version 17.4 ou une version antérieure, installez vcremote version 1.0.17.

Pour démarrer vcremote

  • Dans l’application Terminal de votre Mac, entrez :

    vcremote

    Cette commande démarre l’agent distant avec un répertoire de build par défaut de ~/vcremote. Pour plus d’options de configuration, consultez Configurer vcremote sur le Mac.

La première fois que vous démarrez vcremote et chaque fois que vous créez un certificat de serveur, vous disposez des informations requises pour configurer la connexion dans Visual Studio. Les informations incluent le nom d’hôte et le port. Si vous envisagez de configurer l’agent distant dans Visual Studio à l’aide du nom d’hôte, effectuez un test ping sur Mac à partir de Windows à l’aide du nom d’hôte pour vérifier qu’il est accessible. Dans le cas contraire, vous serez peut-être amené à utiliser l’adresse IP à la place.

Vous pouvez utiliser l’agent distant en mode non sécurisé. En mode non sécurisé, l’agent distant peut être associé à Visual Studio à l’aide d’une connexion HTTP simple qui ne chiffre pas les données. Utilisez le mode non sécurisé à votre propre risque. Nous vous recommandons d’utiliser un mode sécurisé pour vous connecter :

Visual Studio 2022 version 17.5 et ultérieure avec vcremote 1.0.19 et versions ultérieures :

Dans vcremote 1.0.19 et versions ultérieures, vcremote signale le chemin d’accès à un server-cert.pem fichier de certificat, qui doit être chargé dans Visual Studio.

Visual Studio 2022 version 17.4 et versions antérieures avec vcremote 1.0.17 et versions antérieures :

La version 1.0.17 et les versions antérieures de vcremote génèrent un code confidentiel pour une communication sécurisée avec les versions de Visual Studio via Visual Studio 2022 version 17.4.

Screenshot of the Mac Terminal window that shows the host name, port, and PIN reported when VC remote is started.

Le code confidentiel généré est à usage unique et n’est valable que pour une durée limitée. Si vous ne associez pas Visual Studio à l’agent distant avant l’expiration de l’heure, vous devez générer un nouveau code confidentiel. Pour plus d'informations, consultez Generate a new security PIN.

Pour désactiver le mode de connexion sécurisée

  • Pour désactiver le mode de connexion sécurisée dans vcremote, entrez cette commande dans l’application Terminal de votre Mac :

    vcremote --secure false

Pour activer le mode de connexion sécurisée

  • Pour activer le mode de connexion sécurisée, entrez cette commande :

    vcremote --secure true

Une fois que vous avez démarré l’agent distant, vous pouvez l’utiliser à partir de Visual Studio jusqu’à ce que vous l’arrêtiez.

Pour arrêter l’agent distant

  • Dans la fenêtre Terminal où s’exécute vcremote, entrez Control+C.

Configurer vcremote dans Visual Studio

Pour vous connecter à l’agent distant vcremote à partir de Visual Studio, vous devez spécifier la configuration distante dans les options de Visual Studio. Visual Studio utilise les mêmes informations pour se connecter à l’agent distant sur votre Mac chaque fois que vous l’utilisez. Vous n’avez pas besoin d’associer Visual Studio à l’agent distant à nouveau, sauf si vous générez un nouveau certificat de sécurité sur votre Mac, ou que son nom d’hôte ou son adresse IP change.

Pour configurer vcremote à partir de Visual Studio 2022 version 17.5 et ultérieures

  1. Si l’agent n’est pas déjà en cours d’exécution sur votre Mac, suivez les étapes décrites dans Démarrer l’agent distant. Votre Mac doit exécuter vcremote pour Que Visual Studio associe, connecte et génère correctement votre projet.

  2. Sur votre Mac, obtenez le nom d’hôte ou l’adresse IP de votre Mac.

    Vous pouvez obtenir l’adresse IP en utilisant la commande ifconfig dans une fenêtre Terminal. Utilisez l’adresse inet répertoriée sous l’interface réseau active.

  3. Dans la barre de menus de Visual Studio, choisissez Options outils>.

  4. Dans la boîte de dialogue Options, développez Multiplateforme>C++>iOS.

  5. Dans les champs Nom d’hôte et Port , entrez les valeurs spécifiées par l’agent distant au moment où vous l’avez démarré. Le nom d’hôte peut être le nom DNS ou l’adresse IP de votre Mac. Le numéro de port par défaut est 3030.

    Remarque

    Si vous ne pouvez pas effectuer un test ping sur Mac à l’aide du nom d’hôte, vous devrez peut-être utiliser l’adresse IP.

  6. Si vous utilisez l’agent distant en mode de connexion sécurisée par défaut, case activée la boîte de réception case activée sécurisée et transférez le server-cert.pem fichier du Mac vers Visual Studio pour le chargement. Ensuite, choisissez le bouton Générer pour générer un nouveau client-cert.pem fichier, qui doit apparaître sur le bureau. Ensuite, transférez le certificat client vers le Mac sous /vcremote/certs/Authorized-Clients. (Vous pouvez transférer plusieurs fichiers de certificat client vers ce répertoire, afin que plusieurs machines Visual Studio autorisées puissent envoyer des demandes à ce Mac.)

    Remarque

    Si vous utilisez un lecteur USB pour transférer des certificats, supprimez les certificats du lecteur USB une fois le transfert terminé.

  7. Choisissez Coupler pour activer le jumelage.

    Screenshot of the Tools Options dialog for iOS pairing. The host name, the port, the Secure checkbox, and the Remote Root values are set.

    Le jumelage persiste jusqu’à ce que vous changez le nom d’hôte, le port ou générer un nouveau certificat serveur ou client. Si vous modifiez le nom d’hôte ou le port dans la boîte de dialogue Options , vous pouvez choisir le bouton Rétablir pour annuler la modification et revenir au jumelage précédent.

    Si le jumelage ne réussit pas, vérifiez que l’agent distant est en cours d’exécution en suivant les étapes décrites dans Démarrer l’agent distant. Suivez les étapes pour générer un nouveau certificat de serveur et générer un nouveau certificat client. Si vous utilisez le nom d’hôte de votre Mac, essayez d’utiliser l’adresse IP dans le champ Nom d’hôte à la place.

  8. Mettez à jour le nom de dossier dans le champ Racine distante pour spécifier le dossier utilisé par l’agent distant dans le répertoire de base (~) du Mac. Par défaut, l’agent distant utilise /Users/<username>/vcremote comme racine distante.

  9. Choisissez OK pour enregistrer les paramètres de connexion de couplage à distance.

Pour configurer vcremote à partir de versions antérieures à Visual Studio 2022 version 17.5

  1. Si l’agent n’est pas déjà en cours d’exécution sur votre Mac, suivez les étapes décrites dans Démarrer l’agent distant. Votre Mac doit exécuter vcremote pour Que Visual Studio associe, connecte et génère correctement votre projet.

  2. Sur votre Mac, obtenez le nom d’hôte ou l’adresse IP de votre Mac.

    Vous pouvez obtenir l’adresse IP en utilisant la commande ifconfig dans une fenêtre Terminal. Utilisez l’adresse inet répertoriée sous l’interface réseau active.

  3. Dans la barre de menus de Visual Studio, choisissez Options outils>.

  4. Dans la boîte de dialogue Options, développez Multiplateforme>C++>iOS.

  5. Dans les champs Nom d’hôte et Port , entrez les valeurs spécifiées par l’agent distant au moment où vous l’avez démarré. Le nom d’hôte peut être le nom DNS ou l’adresse IP de votre Mac. Le numéro de port par défaut est 3030.

    Remarque

    Si vous ne pouvez pas envoyer une requête ping au Mac en utilisant le nom d’hôte, vous devrez peut-être utiliser l’adresse IP.

  6. Si vous utilisez l’agent distant en mode de connexion sécurisée par défaut, cochez la case Sécuriser , puis entrez la valeur de code confidentiel spécifiée par l’agent distant dans le champ Code confidentiel . Si vous utilisez l’agent distant en mode de connexion non sécurisée, décochez la case Sécuriser et laisser le champ Code confidentiel vide.

  7. Choisissez Coupler pour activer le jumelage.

    Screenshot of the Tools Options dialog for iOS pairing. The host name, the port, the Secure checkbox, the pin, and the Remote Root values are set.

    Le couplage persiste tant que vous ne changez pas de nom d’hôte ou de port. Si vous changez de nom d’hôte ou de port dans la boîte de dialogue Options , pour annuler la modification, choisissez le bouton Rétablir pour revenir au couplage précédent.

    Si le jumelage ne réussit pas, vérifiez que l’agent distant est en cours d’exécution en suivant les étapes décrites dans Démarrer l’agent distant. Si trop de temps est passé depuis la génération du code confidentiel de l’agent distant, suivez les étapes décrites dans Générer un nouveau code confidentiel de sécurité. puis réessayez. Si vous utilisez le nom d’hôte de votre Mac, essayez d’utiliser l’adresse IP dans le champ Nom d’hôte à la place.

  8. Mettez à jour le nom de dossier dans le champ Racine distante pour spécifier le dossier utilisé par l’agent distant dans le répertoire de base (~) du Mac. Par défaut, l’agent distant utilise /Users/<username>/vcremote comme racine distante.

  9. Choisissez OK pour enregistrer les paramètres de connexion de couplage à distance.

Generate a new security PIN

S’applique à : Visual Studio 2022 version 17.4 et versions antérieures, à l’aide de vcremote version 1.0.17 et antérieures.

Quand vous démarrez l’agent distant pour la première fois, le code confidentiel généré est valide pendant une période limitée (par défaut, 10 minutes). Si vous ne associez pas Visual Studio à l’agent distant avant l’expiration de l’heure, vous devez générer un nouveau code confidentiel.

Pour générer un nouveau code confidentiel

  1. Arrêtez l’agent ou ouvrez une deuxième fenêtre d’application Terminal sur votre Mac et utilisez-la pour entrer la commande.

  2. Entrez cette commande dans l’application Terminal :

    vcremote generateClientCert

    L’agent distant génère un nouveau code confidentiel temporaire. Pour coupler Visual Studio à l’aide du nouveau code confidentiel, répétez les étapes décrites dans Configurer l’agent distant dans Visual Studio.

Générer un nouveau certificat client

S’applique à : Visual Studio 2022 version 17.5 et versions ultérieures, à l’aide de vcremote version 1.0.19 et ultérieures.

Lorsque vous associez sur Visual Studio, vous allez générer un nouveau client-cert.pem fichier. Transférez le fichier de certificat sur l’ordinateur de build Mac sous /vcremote/certs/Authorized-Clients. Ce certificat permet au Mac d’autoriser les demandes provenant de votre ordinateur Visual Studio.

Générer un nouveau certificat de serveur

S’applique à : Visual Studio 2022 version 17.5 et versions ultérieures, à l’aide de vcremote version 1.0.19 et ultérieures.

Pour des raisons de sécurité, les certificats de serveur qui couplent Visual Studio à l’agent distant sont liés à l’adresse IP ou au nom d’hôte de votre Mac. Si ces valeurs changent, vous devez générer un nouveau certificat de serveur et reconfigurer Visual Studio avec les nouvelles valeurs.

Pour générer un nouveau certificat de serveur

  1. Arrêtez l’agent vcremote .

  2. Entrez cette commande dans l’application Terminal :

    vcremote resetServerCert

  3. Quand vous êtes invité à confirmer l’opération, entrez Y

  4. Pour associer Visual Studio au Mac, transférez le fichier nouvellement généré server-cert.pem à partir du Mac et chargez-le dans Visual Studio, en répétant les étapes de configuration de l’agent distant dans Visual Studio.

Configurer vcremote sur le Mac

Vous pouvez configurer l’agent distant à l’aide de différentes options de ligne de commande. Par exemple, vous pouvez spécifier le port à écouter pour les demandes de génération et spécifier le nombre maximal de builds à conserver sur le système de fichiers. Par défaut, cette limite est de 10 builds. Au moment de l’arrêt, l’agent supprime les builds qui dépassent ce nombre maximal.

Pour configurer l’agent distant

  • Pour afficher la liste complète des commandes de l’agent distant, dans l’application Terminal, entrez :

    vcremote --help

  • Pour désactiver le mode sécurisé et activer des connexions HTTP simples, entrez :

    vcremote --secure false

    Lorsque vous utilisez cette option, désactivez la boîte de réception Secure case activée.

  • Pour spécifier l’emplacement des fichiers de l’agent distant, entrez :

    vcremote --serverDir directory_path

    Remplacez directory_path l’emplacement sur votre Mac pour placer des fichiers journaux, des builds et des certificats serveur. Par défaut, l'emplacement est /Users/<username>/vcremote. Les builds sont organisées par numéro de build à cet emplacement.

  • Pour utiliser un processus en arrière-plan pour capturer stdout et stderr pour un fichier nommé server.log, entrez :

    vcremote > server.log 2>&1 &

    Le server.log fichier peut aider à résoudre les problèmes de génération.

  • Pour exécuter l’agent en utilisant un fichier de configuration au lieu de paramètres de ligne de commande, entrez :

    vcremote --config config_file_path

    Remplacez config_file_path par le chemin d’accès à un fichier de configuration au format JSON. Les options de démarrage et leurs valeurs ne doivent pas inclure de tirets.

Résoudre les problèmes de l’agent distant

Débogage sur un appareil iOS

Si le débogage sur un appareil iOS ne fonctionne pas, il peut y avoir des problèmes avec l’outil ideviceinstaller , qui est utilisé pour communiquer avec un appareil iOS. Cet outil est généralement installé à partir de Homebrew pendant l’installation de vcremote. Suivez les étapes suivantes comme solution de contournement :

Ouvrez l’application Terminal et mettez à jour ideviceinstaller et ses dépendances en exécutant les commandes suivantes dans l’ordre :

  1. Vérifiez que Homebrew est mis à jour

    brew update

  2. Désinstaller libimobiledevice et usbmuxd

    brew uninstall --ignore-dependencies libimobiledevice

    brew uninstall --ignore-dependencies usbmuxd

  3. Installer la dernière version de libimobiledevice et usbmuxd

    brew install --HEAD usbmuxd

    brew unlink usbmuxd

    brew link usbmuxd

    brew install --HEAD libimobiledevice

  4. Désinstaller et réinstaller ideviceinstaller

    brew uninstall ideviceinstaller

    brew install ideviceinstaller

Vérifiez que ideviceinstaller vous pouvez communiquer avec l’appareil en essayant de répertorier les applications installées sur l’appareil :

ideviceinstaller -l

Si ideviceinstaller vous signalez une erreur indiquant qu’il ne peut pas accéder au dossier /var/db/lockdown, modifiez le privilège sur le dossier à l’aide de cette commande :

sudo chmod 777 /var/db/lockdown

Vérifiez ensuite à nouveau si ideviceinstaller vous pouvez communiquer avec l’appareil.

Voir aussi