Bereitstellen einer iOS-App mithilfe von Hot Restart
Wenn Sie eine App erstellen, wird Ihr Code in der Regel kompiliert und mit anderen Projektressourcen kombiniert, um ein App-Bündel zu erstellen, das auf Ihrem Simulator oder Gerät bereitgestellt wird. Wenn Sie bei diesem Modell eine Änderung an Ihrer App vornehmen, müssen Sie ein neues App-Bündel erstellen und bereitstellen. Während inkrementelle Builds helfen können, die Kompilierungszeit zu reduzieren, benötigen Bereitstellungen in der Regel unabhängig von der Größe der Änderung genauso viel Zeit.
Mit dem Hot Restart der .NET Multi-Platform App UI (.NET MAUI) können Sie schnell eine .NET MAUI-App auf einem lokalen 64-Bit-iOS-Gerät von Visual Studio 2022 bereitstellen, ohne dass ein Mac-Build-Host erforderlich ist. Es besteht keine Notwendigkeit mehr, das App-Bündel komplett neu zu erstellen, da Änderungen an das vorhandene App-Bündel übertragen werden, das bereits auf Ihrem lokal verbundenen iOS-Gerät vorhanden ist. Änderungen an Codedateien, Ressourcen und Projektverweisen werden unterstützt, sodass Sie Änderungen an Ihrer App während der Entwicklung schnell testen können.
Wichtig
Ein Hot Restart ist kein Ersatz für die vollständige Build-Erfahrung, die ein Mac Build Host bietet. Beispielsweise können nur Apps bereitgestellt werden, welche die Debugbuildkonfiguration verwenden. Statische Bibliotheken und Frameworks, XCFrameworks oder Bindungsressourcenpakete werden nicht unterstützt. Weitere Informationen finden Sie unter Einschränkungen.
Es gibt eine Reihe von Anforderungen, die erfüllt sein müssen, um eine .NET MAUI-App per Hot Restart auf einem lokal verbundenen iOS-Gerät bereitzustellen:
- Sie müssen Visual Studio 2022 Version 17.3 oder höher verwenden.
- Sie müssen iTunes (Microsoft Store oder 64-Bit-Version) auf Ihrem Entwicklungscomputer installiert haben.
- Sie müssen über ein Apple-Entwicklerkonto sowie eine kostenpflichtige Registrierung beim Apple-Entwicklerprogramm verfügen.
Setup
Führen Sie die folgenden Schritte aus, um den Hot Restart einzurichten:
Verwenden Sie die Dropdownliste Debugziel in der Visual Studio-Symbolleiste, um lokale iOS-Geräte und anschließend den Eintrag Lokales Gerät auszuwählen:
Wählen Sie auf der Visual Studio-Symbolleiste Lokales Gerät aus:
Der Setup-Assistent zur Einrichtung des Hot Restarts wird angezeigt, der Sie durch die Einrichtung eines lokalen iOS-Geräts für die Bereitstellung des Hot Restart führt.
Wählen Sie im Setup-Assistenten Einrichtung des Hot Restart die Option Weiter aus:
Wenn iTunes nicht installiert ist, werden Sie vom Setup-Assistenten zu dessen Installation aufgefordert. Wählen Sie im Setup-Assistenten Einrichtung des Hot Restart die Option iTunes herunterladen aus:
Hinweis
iTunes kann entweder aus dem Microsoft Store installiert oder von Apple heruntergeladen werden.
Warten Sie, bis iTunes heruntergeladen ist und installieren Sie es. Wenn Sie die App über den Microsoft Store installieren, öffnen Sie sie nach Abschluss der Installation und folgen Sie den Anweisungen, um lokal verbundene Geräte zu ermitteln.
Wählen Sie im Setup-Assistenten Einrichtung des Hot Restart die Option Weiter aus, um zum nächsten Schritt des Assistenten zu wechseln, der Sie auffordert, ein lokales iOS-Gerät zu verbinden:
Verbinden Sie das iOS-Gerät über ein USB-Kabel mit Ihrem Entwicklungscomputer. Möglicherweise wird auf Ihrem Gerät eine Eingabeaufforderung angezeigt, in der Sie aufgefordert werden, Ihrem Entwicklungscomputer zu vertrauen. Klicken Sie auf Ihrem Gerät auf Vertrauen und folgen Sie allen zusätzlichen Geräteaufforderungen.
Wählen Sie im Setup-Assistenten Einrichtung des Hot Restart die Option Weiter aus, sobald Ihr lokales iOS-Gerät erkannt wurde:
Hinweis
Wenn der Setup-Assistent Ihr lokales iOS-Gerät nicht erkennt, trennen und verbinden Sie es erneut mit Ihrem Entwicklungscomputer. Stellen Sie außerdem sicher, dass iTunes Ihr lokales iOS-Gerät erkennt.
Klicken Sie im Setup-Assistenten Einrichtung des Hot Restart auf den Link Mit persönlichem Konto anmelden, um den Hot Restart so zu konfigurieren, dass er Ihr persönliches Apple Developer Program-Konto verwendet:
Das Dialogfeld Persönliches Konto wird angezeigt.
Hinweis
Alternativ können Sie den Hot Restart so konfigurieren, dass ein Apple-Entwicklerkonto für Unternehmen verwendet wird, indem Sie auf den Link Mit Unternehmenskonto anmelden klicken und Ihre Anmeldeinformationen in das daraufhin angezeigte Dialogfeld eingeben. Fahren Sie dann mit Schritt 12 fort.
Erstellen Sie einen App Store Connect API-Schlüssel. Dafür müssen Sie über ein Apple-Entwicklerkonto und eine kostenpflichtige Registrierung für das Apple Developer Program verfügen. Informationen zum Erstellen eines App Store Connect API-Schlüssels finden Sie unter Erstellen von API-Schlüsseln für die App Store Connect-API auf developer.apple.com.
Geben Sie im Dialogfeld Persönliches Konto Ihre App Store Connect API-Schlüsseldaten ein:
Die Daten Name, Aussteller-ID und Schlüssel-ID finden Sie in App Store Connect, indem Sie Benutzer und Zugriff und dann die Registerkarte Schlüssel auswählen. Der Private Schlüssel kann ebenfalls von diesem Ort heruntergeladen werden:
Klicken Sie im Dialogfeld Persönliches Konto auf die Schaltfläche Hinzufügen. Das Dialogfeld Persönliches Konto wird geschlossen.
Klicken Sie im Setup-Assistenten zur Einrichtung des Hot Restart auf die Schaltfläche Fertigstellen:
Ihr Apple Developer Program-Konto wird Visual Studio hinzugefügt und der Setup-Assistent zur Einrichtung des Hot Restart wird geschlossen.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt und wählen Sie Eigenschaften aus.
Erweitern Sie in den Projekteigenschaften iOS und wählen Sie Bundle Signing. Verwenden Sie die Scheme-Dropdown-Liste, um Automatic Provisioning auszuwählen, und klicken Sie dann auf den Configure Automatic Provisioning-Hyperlink:
Das Configure Automatic Provisioning Dialogfeld wird angezeigt.
Im Configure Automatic Provisioning Dialogfeld wählen Sie das Team für Ihren Connect API Schlüssel aus:
Visual Studio schließt den automatischen Bereitstellungsprozess ab. Klicken Sie dann auf den OK Button, um das Dialogfeld Configure Automatic Provisioning zu schließen.
Hinweis
Die Verwendung der automatischen Bereitstellung wird empfohlen, damit zusätzliche iOS-Geräte einfach für die Verteilung konfiguriert werden können. Sie können jedoch die manuelle Bereitstellung verwenden, wenn die richtigen Bereitstellungsprofile auf Ihrem Computer vorhanden sind.
Einsatz und Fehlersuche im laufenden Betrieb
Nach der anfänglichen Einrichtung erscheint Ihr lokal verbundenes iOS-Gerät im Dropdownmenü für das Debugziel. Um Ihre App bereitzustellen und zu debuggen:
Stellen Sie sicher, dass Ihr lokal verbundenes iOS-Gerät entsperrt ist.
Wählen Sie in der Visual Studio-Symbolleiste Ihr lokal verbundenes iOS-Gerät in der Dropdown-Liste Debug-Ziel aus und klicken Sie auf die Schaltfläche Ausführen, um Ihre App zu erstellen und sie auf Ihrem lokalen iOS-Gerät bereitzustellen:
Nach der Bereitstellung der App zeigt Visual Studio das Dialogfeld Debugger wird verbunden an:
Wenn Sie die App auf Ihrem Gerät starten, verbindet Visual Studio den Debugger mit Ihrer ausgeführten App und das Dialogfeld Debugger wird verbunden wird geschlossen.
Während Sie Ihre Anwendung debuggen, können Sie Ihren C# Code bearbeiten und die Neustart Schaltfläche in der Visual Studio-Symbolleiste drücken, um Ihre Debug-Sitzung mit den neuen Änderungen neu zu starten:
Ausführung von Code verhindern
Das Präprozessorsymbol HOTRESTART
kann verwendet werden, um die Ausführung von Code beim Debuggen mit Hot Restart zu verhindern:
#if !HOTRESTART
// Code here won't be executed when debugging with hot restart
#endif
Hot Restart aktivieren
Hot-Restart ist in Visual Studio 2022 standardmäßig aktiviert. Wenn sie zuvor deaktiviert war, kann sie durch Auswahl von Tools >Optionen in der Menüleiste von Visual Studio aktiviert werden. Dann in Optionen Dialogfeld erweitern Xamarin und iOS-Einstellungen auswählen. Stellen Sie dann sicher, dass Hot-Restart aktivieren ausgewählt ist:
Begrenzungen
Es gibt Einschränkungen bei der Verwendung des Hot-restart:
- Es kann nur verwendet werden, um Apps bereitzustellen, die die Debugbuildkonfiguration verwenden. Sie benötigen weiterhin einen Mac-Build-Host, um Ihre App für Produktionszwecke zu erstellen, zu signieren und bereitzustellen.
- Storyboard- und XIB-Dateien werden nicht unterstützt, und die App kann abstürzen, wenn sie versucht, diese zur Laufzeit zu laden.
- Statische iOS-Bibliotheken und Frameworks, die statische Bibliotheken enthalten, werden nicht unterstützt, und es kann zu Laufzeitfehlern oder Abstürzen kommen, wenn Ihre App versucht, diese zu laden.
- XCFrameworks- und Bindungsressourcenpakete werden unterstützt, sofern sie keine statischen iOS-Bibliotheken oder Frameworks mit statischen Bibliotheken enthalten.
- Objektkataloge werden nicht unterstützt. Wenn Sie den Hot Restart verwenden, wird in Ihrer App ein .NET-Symbol angezeigt und der Bildschirm gestartet.
Problembehandlung
iOS verwendet einen Watchdog, der die Startzeiten und Reaktionsfähigkeit von Apps überwacht und nicht reagierende Apps beendet. Beispielsweise beendet der Watchdog Apps, die den Hauptthread für eine erhebliche Zeit blockieren. Auf alten iOS-Geräten kann der Watchdog eine App beenden, die mithilfe des Hot-Restart bereitgestellt wurde, bevor der Debugger damit verbunden ist. Die Abhilfe besteht darin, die Menge der Verarbeitung im Startpfad der App zu reduzieren und ein neueres iOS-Gerät zu verwenden.
Um weitere Probleme zu melden, verwenden Sie bitte das Feedback-Tool unter Hilfe > Feedback senden > Ein Problem melden.