Installieren und Konfigurieren von Tools zum Erstellen mit iOS
Sie können Visual Studio mit den Tools für die plattformübergreifende mobile Entwicklung mit C++ verwenden, um iOS-Code im iOS-Simulator oder auf einem iOS-Gerät zu bearbeiten, zu debuggen und bereitzustellen. Aufgrund von Lizenzierungseinschränkungen muss der Code jedoch remote auf einem Mac erstellt und ausgeführt werden. Zum Erstellen und Ausführen von iOS-Apps mithilfe von Visual Studio müssen Sie den Remote-Agent ( vcremote) auf Ihrem Macintosh-Computer einrichten und konfigurieren. Der vcremote-Remote-Agent verarbeitet Buildanforderungen von Visual Studio und führt die App auf einem iOS-Gerät aus, das mit dem Mac verbunden ist, oder im iOS-Simulator auf dem Mac.
Hinweis
Informationen zur Verwendung von in der Cloud gehosteten Mac-Diensten anstelle eines Macs finden Sie unter Konfigurieren von Visual Studio zum Herstellen der Verbindung zu Ihrem in der Cloud gehosteten Mac. Die Anweisungen gelten für das Erstellen mit Visual Studio Tools for Apache Cordova. Um die Anweisungen für den Build mit C++ zu verwenden, müssen Sie vcremote
durch remotebuild
ersetzen.
Nachdem Sie die Tools zum Erstellen mit iOS installiert haben, lesen Sie diesen Artikel erneut. Es beschreibt Möglichkeiten, vcremote für die iOS-Entwicklung in Visual Studio und auf Ihrem Mac schnell zu konfigurieren und zu aktualisieren.
Voraussetzungen
Um den vcremote-Remote-Agent zum Entwickeln von Code für iOS zu installieren und zu verwenden, müssen Sie zunächst über die folgenden Voraussetzungen verfügen:
Einen Mac-Computer mit macOS Mojave, Version 10.14 oder höher
Eine Apple-ID
Ein aktives Apple-Entwicklerprogramm-Konto
Sie können ein kostenloses Konto erwerben, das das Querladen von Apps auf ein iOS-Gerät lediglich zu Testzwecken, jedoch nicht zur Verteilung erlaubt.
Xcode, Version 10.2.1 oder höher.
Xcode kann aus dem App Store heruntergeladen werden.
Xcode-Befehlszeilentools
Um die Xcode-Befehlszeilentools zu installieren, öffnen Sie die Terminal-App auf Ihrem Mac, und geben Sie den folgenden Befehl ein:
xcode-select --install
Ein in Xcode konfiguriertes Apple ID-Konto als Signierungsidentität zum Signieren von Apps
Um die Signierungsidentität in Xcode anzuzeigen oder festzulegen, öffnen Sie das Menü Xcode , und wählen Sie Einstellungenaus. Wählen Sie unter Konten Ihre Apple-ID aus, und wählen Sie dann die Schaltfläche Details anzeigen aus. Detaillierte Anweisungen finden Sie unter Hinzufügen Ihres Apple ID-Kontos.
Detaillierte Informationen zu Signierungsanforderungen finden Sie unter What is app signing (Was ist App-Signierung?).
Wenn Sie ein iOS-Gerät für die Entwicklung verwenden, wird ein Bereitstellungsprofil in Xcode für Ihr Gerät konfiguriert.
Xcode stellt die automatische Signatur bereit, bei der bei Bedarf Signaturzertifikate erstellt werden. Ausführliche Informationen zur automatischen Xcode-Signatur finden Sie unter "Automatische Signatur".
Wenn Sie manuell signieren möchten, müssen Sie für Ihre App ein Bereitstellungsprofil erstellen. Ausführliche Informationen zum Erstellen von Bereitstellungsprofilen finden Sie unter Create a development provisioning profile (Erstellen eines Bereitstellungs-Entwicklungsprofils) in der iOS Developer Library.
Node.js Version 18.12.1 und npm, Version 8.19.2
Installieren Sie Version 18.12.1 von Node.js auf Ihrem Mac. Wenn Sie das Node.js-Paket installieren, sollte es mit npm Version 8.19.2 geliefert werden. Andere Versionen von Node.js und npm unterstützen möglicherweise einige Module, die in vcremote verwendet werden, was dazu führen kann, dass die Vcremote-Installation fehlschlägt. Sie sollten Node.js mithilfe eines Paket-Managers wie Node Version Manager installieren. Vermeiden Sie die Verwendung des Befehls
sudo
zum Installieren von Node.js, da einige Module bei verwendung von sudo nicht installiert werden können.
Installieren von vcremote für iOS
Wenn Sie die Mobile-Entwicklung mit C++-Workload installieren, kann Visual Studio mit dem auf Ihrem Mac ausgeführten vcremote-Remote-Agent kommunizieren, um Dateien zu übertragen, Ihre iOS-App zu erstellen und auszuführen und Debuggingbefehle zu senden.
Bevor Sie vcremote installieren, stellen Sie sicher, dass Sie die Voraussetzungen erfüllt haben und die Installationsschritte in der plattformübergreifenden mobilen Entwicklung mit C++ abgeschlossen haben.
So laden Sie vcremote herunter und installieren sie
Überprüfen Sie in der Terminal-App auf Ihrem Mac, ob die derzeit verwendete Node.js Version die erforderliche Version 18.12.1 ist. Führen Sie den folgenden Befehl aus, um die Version zu ermitteln:
node -v
Wenn nicht die richtige Version verwendet wird, können Sie in den Voraussetzungen der Installationsanleitung für Node.js folgen. Starten Sie dann Node.js neu.
Nachdem Sie überprüft haben, ob die erforderliche Node.js-Version verwendet wird, führen Sie diesen Befehl aus, um vcremote unter dieser Node.js-Version zu installieren:
npm install -g --unsafe-perm vcremote
Es empfiehlt sich, eine switch-Anweisung für eine globale Installation (-g) auszuführen. Dies ist jedoch nicht erforderlich. Wenn Sie sich nicht für die Ausführung einer switch-Anweisung für eine globale Installation entscheiden, wird vcremote unter dem aktuell in der Terminal-App aktiven Pfad installiert.
Während der Installation werden
vcremote
installiert und der Entwicklermodus auf Ihrem Mac aktiviert. Homebrew und zwei npm-Pakete,vcremote-lib
undvcremote-utils
, werden ebenfalls installiert. Nach Abschluss der Installation ist es sicher, alle Warnungen über übersprungene optionale Abhängigkeiten zu ignorieren.Hinweis
Zum Installieren von Homebrew benötigen Sie sudo-Zugriff (Administrator). Wenn Sie vcremote ohne sudo installieren müssen, können Sie Homebrew manuell an einem
usr/local
Speicherort installieren und ihrenbin
Ordner zu Ihrem Pfad hinzufügen. Weitere Informationen finden Sie in der Homebrew-Dokumentation. Um den Entwicklermodus manuell zu aktivieren, geben Sie folgenden Befehl in die Terminal-App ein:DevToolsSecurity -enable
Wenn Sie auf eine neue Version von Visual Studio aktualisieren, müssen Sie auch auf die aktuelle Version von vcremote aktualisieren. Wiederholen Sie zum Aktualisieren des Vcremote die Schritte zum Herunterladen und Installieren des Remote-Agents.
Vcremote starten
Der vcremote-Remote-Agent muss ausgeführt werden, damit Visual Studio Ihren iOS-Code erstellen und ausführen kann. Visual Studio muss mit vcremote gekoppelt werden, bevor es kommunizieren kann. Standardmäßig wird Vcremote im abgesicherten Verbindungsmodus ausgeführt, was die Übertragung von Client- und Serverzertifikaten zwischen visual Studio- und Mac-Computern erfordert.
Hinweis
Version 1.0.19 oder höher von vcremote erfordert mindestens Visual Studio 2022, Version 17.5.0 Preview 1 oder höher. Wenn Sie Visual Studio 2022, Version 17.4 oder eine frühere Version, verwenden, installieren Sie vcremote Version 1.0.17.
So starten Sie Vcremote
Geben Sie über die Terminal-App auf Ihrem Mac Folgendes ein:
vcremote
Durch diesen Befehl wird der Remote-Agent mit dem standardmäßigen Buildverzeichnis
~/vcremote
gestartet. Weitere Konfigurationsoptionen finden Sie unter Konfigurieren von Vcremote auf dem Mac.
Beim ersten Starten des Vcremote- und jedes Mal, wenn Sie ein neues Serverzertifikat erstellen, erhalten Sie die erforderlichen Informationen zum Konfigurieren der Verbindung in Visual Studio. Die Informationen umfassen den Hostnamen und den Port. Wenn Sie den Remote-Agent in Visual Studio mithilfe des Hostnamens konfigurieren möchten, pingen Sie den Mac über Windows mithilfe des Hostnamens, um zu überprüfen, ob er erreichbar ist. Ansonsten müssen Sie möglicherweise die IP-Adresse dafür verwenden.
Sie können den Remote-Agent im ungesicherten Modus verwenden. Im ungesicherten Modus kann der Remote-Agent mit Visual Studio mit einer einfachen HTTP-Verbindung gekoppelt werden, die keine Daten verschlüsselt. Verwenden Sie den ungesicherten Modus auf eigene Gefahr. Es wird empfohlen, einen sicheren Modus zum Herstellen einer Verbindung zu verwenden:
Visual Studio 2022, Version 17.5 und höher mit vcremote 1.0.19 und höher:
In vcremote 1.0.19 und höher meldet vcremote den Pfad zu einer server-cert.pem
Zertifikatdatei, die in Visual Studio hochgeladen werden muss.
Visual Studio 2022, Version 17.4 und frühere Versionen mit vcremote 1.0.17 und früheren Versionen:
Version 1.0.17 und ältere Versionen von vcremote generieren eine PIN für die sichere Kommunikation mit Versionen von Visual Studio bis Visual Studio 2022, Version 17.4.
Die generierte PIN ist für die einmalige Verwendung bestimmt und nur für einen begrenzten Zeitraum gültig. Wenn Sie Visual Studio nicht mit dem Remote-Agent koppeln, bevor die Zeit abläuft, müssen Sie eine neue PIN generieren. Weitere Informationen finden Sie unter Generate a new security PIN.
So deaktivieren Sie den Modus für sichere Verbindung
Um den Modus für sichere Verbindung in "vcremote" zu deaktivieren, geben Sie diesen Befehl in der Terminal-App auf Ihrem Mac ein:
vcremote --secure false
So aktivieren Sie den Modus für sichere Verbindung
Um den Modus für sichere Verbindung zu aktivieren, geben Sie diesen Befehl ein:
vcremote --secure true
Nachdem Sie den Remote-Agent gestartet haben, können Sie ihn aus Visual Studio verwenden, bis Sie ihn beenden.
So beenden Sie den Remote-Agenten
- Drücken Sie im Terminalfenster, in dem „vcremote“ ausgeführt wird, UMSCHALT+C.
Konfigurieren von Vcremote in Visual Studio
Um eine Verbindung mit dem Vcremote-Remote-Agent von Visual Studio herzustellen, müssen Sie die Remotekonfiguration in den Visual Studio-Optionen angeben. Visual Studio verwendet jedes Mal dieselben Information, um die Verbindung mit dem Remote-Agent auf Ihrem Mac herzustellen. Sie müssen Visual Studio nicht erneut mit dem Remote-Agent koppeln, es sei denn, Sie generieren ein neues Sicherheitszertifikat auf Ihrem Mac, oder der Hostname oder die IP-Adresse ändert sich.
So konfigurieren Sie Vcremote aus Visual Studio 2022, Version 17.5 und höher
Wenn der Agent noch nicht auf Ihrem Mac ausgeführt wird, führen Sie die Schritte unter Starten des Remote-Agents aus. Ihr Mac muss vcremote für Visual Studio ausführen, um Ihr Projekt erfolgreich zu koppeln, zu verbinden und zu erstellen.
Rufen Sie den Hostnamen auf Ihrem Mac oder Ihres IP-Adresse Ihres Macs ab.
Mit dem ifconfig -Befehl kann die IP-Adresse in einem Terminalfenster abgerufen werden. Verwenden Sie die
inet
unter der aktiven Netzwerkschnittstelle aufgeführte Adresse.Wählen Sie auf der Visual Studio-Menüleiste "Extras>".
Erweitern Sie im Dialogfeld "Optionen" die Plattformübergreifendes>C++>iOS.
Geben Sie in die Felder Hostname und Port die Werte ein, die vom Remote-Agent angegeben wurden, als Sie diesen gestartet haben. Der Hostname kann der DNS-Name oder die IP-Adresse Ihres Macs sein. Der Standardport ist 3030.
Hinweis
Wenn Sie den Mac nicht mit dem Hostnamen pingen können, müssen Sie möglicherweise die IP-Adresse verwenden.
Wenn Sie den Remote-Agent im standardmäßigen gesicherten Verbindungsmodus verwenden, aktivieren Sie das Kontrollkästchen "Sichern ", und übertragen Sie die Datei vom Mac nach Visual Studio, um sie
server-cert.pem
hochzuladen. Wählen Sie als Nächstes die Schaltfläche "Generieren " aus, um eine neueclient-cert.pem
Datei zu generieren, die auf dem Desktop angezeigt werden soll. Übertragen Sie dann das Clientzertifikat auf den Mac unter/vcremote/certs/Authorized-Clients
. (Sie können mehrere Clientzertifikatdateien in dieses Verzeichnis übertragen, sodass mehrere autorisierte Visual Studio-Computer Anforderungen an diesen Mac senden können.)Hinweis
Wenn Sie ein USB-Laufwerk zum Übertragen von Zertifikaten verwenden, löschen Sie die Zertifikate nach Abschluss der Übertragung vom USB-Laufwerk.
Wählen Sie Koppeln aus, um das Koppeln zu aktivieren.
Die Kopplung wird beibehalten, bis Sie den Hostnamen, portieren oder ein neues Server- oder Clientzertifikat generieren. Wenn Sie den Hostnamen oder Port im Dialogfeld "Optionen" ändern, können Sie die Schaltfläche "Zurücksetzen" auswählen, um die Änderung rückgängig zu machen, und rückgängig machen zur vorherigen Kopplung.
Wenn die Kopplung nicht erfolgreich ist, überprüfen Sie, ob der Remote-Agent ausgeführt wird, indem Sie die Schritte im Remote-Agent starten. Führen Sie die Schritte aus, um ein neues Serverzertifikat zu generieren und ein neues Clientzertifikat zu generieren. Wenn Sie den Hostnamen Ihres Mac verwenden, versuchen Sie stattdessen, die IP-Adresse im Feld "Hostname " zu verwenden.
Aktualisieren Sie den Namen des Ordners im Feld Remotestamm, um den Ordner in Ihrem Stammverzeichnis (
~
) auf dem Mac anzugeben, der von dem Remote-Agent verwendet wird. Standardmäßig verwendet der Remote-Agent/Users/<username>/vcremote
als Remotestamm.Wählen Sie OK aus, um die Verbindungseinstellungen für die Remotekopplung zu speichern.
So konfigurieren Sie vcremote aus Versionen vor Visual Studio 2022, Version 17.5
Wenn der Agent noch nicht auf Ihrem Mac ausgeführt wird, führen Sie die Schritte unter Starten des Remote-Agents aus. Ihr Mac muss vcremote für Visual Studio ausführen, um Ihr Projekt erfolgreich zu koppeln, zu verbinden und zu erstellen.
Rufen Sie den Hostnamen auf Ihrem Mac oder Ihres IP-Adresse Ihres Macs ab.
Mit dem ifconfig -Befehl kann die IP-Adresse in einem Terminalfenster abgerufen werden. Verwenden Sie die
inet
unter der aktiven Netzwerkschnittstelle aufgeführte Adresse.Wählen Sie auf der Visual Studio-Menüleiste "Extras>".
Erweitern Sie im Dialogfeld "Optionen" die Plattformübergreifendes>C++>iOS.
Geben Sie in die Felder Hostname und Port die Werte ein, die vom Remote-Agent angegeben wurden, als Sie diesen gestartet haben. Der Hostname kann der DNS-Name oder die IP-Adresse Ihres Macs sein. Der Standardport ist 3030.
Hinweis
Wenn Sie den Mac nicht mithilfe des Hostnamens pingen können, müssen Sie möglicherweise die IP-Adresse verwenden.
Wenn Sie den Remote-Agent im standardmäßigen Modus für sichere Verbindung verwenden, aktivieren Sie das Kontrollkästchen Sicher , und geben Sie dann den vom Remote-Agent angegebenen PIN-Wert im Feld für die Pin ein. Wenn Sie den Remote-Agent im ungesicherten Verbindungsmodus verwenden, deaktivieren Sie das Kontrollkästchen Sicher , und lassen Sie das Feld für die Pin leer.
Wählen Sie Koppeln aus, um das Koppeln zu aktivieren.
Die Kopplung bleibt erhalten, bis Sie den Hostnamen oder Port ändern. Wenn Sie den Hostnamen oder den Port im Dialogfeld Optionen ändern, wählen Sie zum Rückgängigmachen der Änderung die Schaltfläche Zurücksetzen aus. So stellen Sie die vorherige Kopplung wieder her.
Wenn die Kopplung nicht erfolgreich ist, überprüfen Sie, ob der Remote-Agent ausgeführt wird, indem Sie die Schritte im Remote-Agent starten. Wenn zu viel Zeit vergangen ist, seit die Remote-Agent-PIN generiert wurde, führen Sie die Schritte unter Generieren einer neuen Sicherheits-PIN aus. Versuchen Sie es anschließend noch mal. Wenn Sie den Hostnamen Ihres Mac verwenden, versuchen Sie stattdessen, die IP-Adresse im Feld "Hostname " zu verwenden.
Aktualisieren Sie den Namen des Ordners im Feld Remotestamm, um den Ordner in Ihrem Stammverzeichnis (
~
) auf dem Mac anzugeben, der von dem Remote-Agent verwendet wird. Standardmäßig verwendet der Remote-Agent/Users/<username>/vcremote
als Remotestamm.Wählen Sie OK aus, um die Verbindungseinstellungen für die Remotekopplung zu speichern.
Generate a new security PIN
Gilt für: Visual Studio 2022, Version 17.4 und frühere Versionen, mit vcremote Version 1.0.17 und früher.
Wenn Sie den Remote-Agent erstmals starten, ist die generierte PIN für einen begrenzten Zeitraum (standardmäßig 10 Minuten) gültig. Wenn Sie Visual Studio nicht vor Ablauf des Ablaufs mit dem Remote-Agent koppeln, müssen Sie eine neue PIN generieren.
So generieren Sie eine neue PIN
Halten Sie den Agent an, oder öffnen Sie ein zweites Terminal-App-Fenster auf Ihrem Mac, und verwenden Sie dieses, um den Befehl einzugeben.
Geben Sie diesen Befehl in der Terminal-App ein:
vcremote generateClientCert
Der Remote-Agent generiert eine neue temporäre PIN. Wiederholen Sie die Schritte unter Konfigurieren des Remote-Agents in Visual Studio, um Visual Studio mithilfe der neuen PIN zu koppeln.
Generieren eines neuen Clientzertifikats
Gilt für: Visual Studio 2022, Version 17.5 und höher, mit vcremote Version 1.0.19 und höher.
Wenn Sie visual Studio koppeln, generieren Sie eine neue client-cert.pem
Datei. Übertragen Sie die Zertifikatdatei auf den Mac-Buildcomputer unter /vcremote/certs/Authorized-Clients
. Mit diesem Zertifikat kann der Mac Anforderungen autorisieren, die von Ihrem Visual Studio-Computer stammen.
Generieren eines neuen Serverzertifikats
Gilt für: Visual Studio 2022, Version 17.5 und höher, mit vcremote Version 1.0.19 und höher.
Aus Sicherheitsgründen sind die Serverzertifikate, die Visual Studio mit dem Remote-Agent koppeln, an die IP oder den Hostnamen Ihres Macs gebunden. Wenn sich diese Werte geändert haben, müssen Sie ein neues Serverzertifikat generieren und anschließend Visual Studio mit den neuen Werte neu konfigurieren.
So generieren Sie ein neues Serverzertifikat
Beenden Sie den
vcremote
-Agent.Geben Sie diesen Befehl in der Terminal-App ein:
vcremote resetServerCert
Wenn Sie zur Bestätigung aufgefordert werden, geben Sie
Y
ein.Um Visual Studio mit dem Mac zu koppeln, übertragen Sie die neu generierte
server-cert.pem
Datei vom Mac, und laden Sie sie in Visual Studio hoch, und wiederholen Sie die Schritte unter Konfigurieren des Remote-Agents in Visual Studio.
Konfigurieren von Vcremote auf dem Mac
Sie können den Remote-Agent mit verschiedenen Befehlszeilenoptionen konfigurieren. Beispielsweise können Sie den Port zum Überwachen der Build-Anforderungen und die maximale Anzahl an Builds angeben, die auf dem Dateisystem verwaltet werden sollen. Die Standardgrenze ist 10 Builds. Der Remote-Agent entfernt beim Herunterfahren die überzähligen Builds.
So konfigurieren Sie den Remote-Agenten
Um eine vollständige Liste der Remote-Agent-Befehle anzuzeigen, geben Sie in die Terminal-App Folgendes ein:
vcremote --help
Geben Sie zum Deaktivieren des sicheren Modus und zum Aktivieren von einfachen HTTP-basierten Verbindungen Folgendes ein:
vcremote --secure false
Wenn Sie diese Option verwenden, deaktivieren Sie das Kontrollkästchen "Sichern ".
Geben Sie zum Angeben eines Speicherorts für Remote-Agent-Dateien Folgendes ein:
vcremote --serverDir directory_path
Ersetzen Sie
directory_path
den Speicherort auf Ihrem Mac, um Protokolldateien, Builds und Serverzertifikate zu platzieren. Standardmäßig ist der Speicherort/Users/<username>/vcremote
. Builds werden an diesem Speicherort nach Build-Nummer angeordnet.Geben Sie Folgendes ein, um einen Hintergrundprozess zum Erfassen
stdout
undstderr
zu einer Datei mit dem Namenserver.log
zu verwenden:vcremote > server.log 2>&1 &
Die
server.log
Datei kann beim Beheben von Buildproblemen helfen.Um den Agent mit einer Konfigurationsdatei anstelle von Befehlszeilenparametern auszuführen, geben Sie Folgendes ein:
vcremote --config config_file_path
Ersetzen Sie
config_file_path
den Pfad zu einer Konfigurationsdatei im JSON-Format. Die Startoptionen und deren Werte dürfen keine Bindestriche enthalten.
Problembehandlung des Remote-Agents
Debuggen auf einem iOS-Gerät
Wenn das Debuggen auf einem iOS-Gerät nicht funktioniert, können Probleme mit dem ideviceinstaller
Tool auftreten, das für die Kommunikation mit einem iOS-Gerät verwendet wird. Dieses Tool wird normalerweise von Homebrew während der Installation von vcremote
installiert. Führen Sie die nächsten Schritte als Problemumgehung aus:
Öffnen Sie die Terminal-App, und aktualisieren Sie ideviceinstaller
und samt Abhängigkeiten, indem Sie die folgenden Befehle in der angegebenen Reihenfolge ausführen:
Stellen Sie sicher, dass Homebrew aktualisiert ist
brew update
Deinstallieren Sie
libimobiledevice
undusbmuxd
.brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
Installieren Sie die aktuelle Version von
libimobiledevice
undusbmuxd
.brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
Deinstallieren Sie
ideviceinstaller
, und installieren Sie das Element neu.brew uninstall ideviceinstaller
brew install ideviceinstaller
Überprüfen Sie, ob ideviceinstaller
Daten mit dem Gerät austauschen kann, indem Sie versuchen, die auf dem Gerät installierten Apps aufzulisten:
ideviceinstaller -l
Wenn ideviceinstaller
ein Fehler gemeldet wird, dass er nicht auf den Ordner /var/db/lockdown
zugreifen kann, ändern Sie die Berechtigungen für den Ordner mithilfe dieses Befehls:
sudo chmod 777 /var/db/lockdown
Überprüfen Sie anschließend erneut, ob ideviceinstaller
mit dem Gerät kommunizieren kann.