Freigeben über


Bereitstellen einer iOS-App mithilfe von Hot Restart

Wichtig

Der Hot Restart wird in Visual Studio 2026 nicht unterstützt: Sie können den Hot Restart in Visual Studio 2022 (Version 17.14) weiterhin verwenden, um .NET MAUI- und .NET-iOS-Apps auf einem lokalen iOS-Gerät ohne Mac-Buildhost bereitzustellen. Für neuere Versionen von Visual Studio empfiehlt es sich, "Pair to Mac " zum Erstellen, Bereitstellen und Debuggen von iOS-Apps zu verwenden.

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.

Einrichtung

Führen Sie die folgenden Schritte aus, um den Hot Restart einzurichten:

  1. 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:

    Screenshot der Auswahl des initialen Debug-Ziels für den Hot-Restart.Screenshot der Auswahl des initialen Debug-Ziels für den Hot-Restart.

  2. Wählen Sie auf der Visual Studio-Symbolleiste Lokales Gerät aus:

    Screenshot des ursprünglich für den heißen Neustart ausgewählten Debugziels.

    Der Setup-Assistent Setup Hot Restart wird angezeigt und führt Sie durch die Einrichtung eines lokalen iOS-Geräts für die Bereitstellung von Hot Restart.

  3. Wählen Sie im Setup-Assistenten für den Hot RestartWeiter aus:

    Screenshot des ersten Schritts im Einrichtungsassistenten für den heißen Neustart.

  4. Wenn iTunes nicht installiert ist, werden Sie vom Setup-Assistenten zu dessen Installation aufgefordert. Im Einrichtungsassistenten für das Hot Restart-Setup wählen Sie die Option iTunes herunterladen aus.

    Screenshot des zweiten Schritts im Einrichtungs-Assistenten für den Hot-Restart.Screenshot des zweiten Schritts im Einrichtungs-Assistenten für den Hot-Restart.

    Hinweis

    iTunes kann entweder aus dem Microsoft Store installiert werden, 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.

  5. Wählen Sie im Setup-Assistenten Setup Hot Restart Weiter aus, um zum nächsten Schritt des Assistenten zu wechseln, der Sie auffordert, ein lokales iOS-Gerät zu verbinden:

    Screenshot of the initial third step in the setup hot restart wizard.Screenshot des anfänglichen dritten Schritts im Einrichtungsassistenten für den Hot-Restart.

  6. 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.

  7. Im Setup-Assistenten für Hot Restart wählen Sie Weiter, sobald Ihr lokales iOS-Gerät erkannt wurde.

    Screenshot des abgeschlossenen dritten Schritts im Assistenten für den Hot Restart.

    Hinweis

    Wenn der Setup-Assistent Ihr lokales iOS-Gerät nicht erkennt, trennen Sie Ihr lokales iOS-Gerät von Ihrem Entwicklungscomputer und verbinden Sie es erneut. Stellen Sie außerdem sicher, dass iTunes Ihr lokales iOS-Gerät erkennt.

  8. Im Setup-Assistenten Setup Hot Restart klicken Sie auf den Hyperlink Mit persönlichem Konto anmelden, um Hot Restart so zu konfigurieren, dass es Ihr individuelles Apple Developer Program-Konto verwendet:

    ``` Screenshot of the initial fourth step in the setup hot restart wizard.Screenshot des ersten Teils des vierten Schritts im Einrichtungsassistenten für den Hot Restart. ```

    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.

  9. Erstellen Sie einen App Store Connect API-Schlüssel. Dafür benötigen Sie ein Apple Developer Account und eine kostenpflichtige Registrierung für das Apple Developer Program. 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.

  10. Geben Sie im Dialogfeld Persönliches Konto Ihre App Store Connect API-Schlüsseldaten ein:

    Screenshot of the completed dialog for adding an Apple Individual account.Screenshot des vollständigen Dialogfelds zum Hinzufügen eines Apple-Einzelkontos.

    Die Name, Aussteller-IDund Schlüssel-ID Daten finden Sie in App Store Connect, indem Sie Benutzer und Zugriff und dann die Registerkarte Integrationen auswählen.

    Screenshot der Details der Apple App Store Connect API.

  11. Klicken Sie im Dialogfeld Persönliches Konto auf die Schaltfläche Hinzufügen. Das Dialogfeld Persönliches Konto wird geschlossen.

  12. Klicken Sie im Setup-Assistenten für Hot Restart auf den Button Fertigstellen:

    Screenshot of the completed fourth step in the setup hot restart wizard.Screenshot des vollständigen vierten Schritts im Einrichtungsassistenten für den Hot-Start.

    Ihr Apple-Developer-Programm-Konto wird zu Visual Studio hinzugefügt und der Einrichtungsassistent Hot Restart wird geschlossen.

  13. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt und wählen Sie Eigenschaften aus.

  14. 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:

    Screenshot der aktivierten automatischen Bereitstellung auf der iOS-Eigenschaftenseite in Visual Studio.

    Das Configure Automatic Provisioning Dialogfeld wird angezeigt.

  15. Im Configure Automatic Provisioning Dialogfeld wählen Sie das Team für Ihren Connect API Schlüssel aus:

    Screenshot of the automatic provisioning dialog when it's correctly configured.Screenshot des Dialogfelds für die automatische Bereitstellung, wenn es korrekt konfiguriert ist.

    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.

Bereitstellung und Debugging mittels Hot Restart.

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:

  1. Stellen Sie sicher, dass Ihr lokal verbundenes iOS-Gerät entsperrt ist.

  2. 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:

    Screenshot of the chosen debug target for hot restart.Screenshot des ausgewählten Debugziels für den heißen Neustart.

  3. Nach der Bereitstellung Ihrer App zeigt Visual Studio das Dialogfeld Debugger wird verbunden an:

    Screenshot of the dialog asking you to launch the app on your device.Screenshot des Dialogs, in dem Sie aufgefordert werden, die App auf Ihrem Gerät zu starten.

    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:

Screenshot der Schaltfläche „Neu starten“ auf der Symbolleiste von Visual Studio

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. Im Optionen Dialogfeld, erweitern Sie Xamarin und wählen Sie iOS-Einstellungen aus. Stellen Sie dann sicher, dass Hot-Restart aktivieren ausgewählt ist:

Screenshot of how to enable hot restart within Visual Studio.Screenshot zum Aktivieren des heißen Neustarts in Visual Studio.

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.