Развертывание приложения iOS с помощью горячего перезапуска

Как правило, при создании приложения код компилируется и объединяется с другими ресурсами проекта для создания пакета приложений, развернутого на симуляторе или устройстве. С помощью этой модели при внесении изменений в приложение необходимо создать и развернуть новый пакет приложений. Хотя добавочные сборки могут помочь сократить время компиляции, развертывания обычно занимают одинаковое время независимо от размера изменения.

Горячий перезапуск мультиплатформенного пользовательского интерфейса приложений .NET (.NET MAUI) позволяет быстро развернуть приложение .NET MAUI на 64-разрядном локальном устройстве iOS из Visual Studio 2022 без необходимости в узле сборки Mac. Он удаляет необходимость полного перестроения пакета приложений путем отправки изменений в существующий пакет приложений, который уже присутствует на локально подключенном устройстве iOS. Она поддерживает изменения в файлах кода, ресурсах и ссылках на проекты, что позволяет быстро тестировать изменения в приложении во время разработки.

Важно!

Горячая перезагрузка не является заменой полной сборки, предоставляемой узлом сборки Mac. Например, он может развертывать только приложения, использующие конфигурацию сборки отладки, и он не поддерживает статические библиотеки и платформы, XCFrameworks или пакеты ресурсов привязки. Дополнительные сведения см. в статье Ограничения.

Для развертывания приложения .NET MAUI на локально подключенном устройстве iOS необходимо выполнить ряд требований, которые необходимо выполнить с помощью горячего перезапуска.

  • Необходимо использовать Visual Studio 2022 версии 17.3 или более поздней.
  • На компьютере разработки необходимо установить iTunes (Microsoft Store или 64-разрядную версию).
  • У вас должна быть учетная запись разработчика Apple и платная регистрация программы разработчика Apple.

Настройка

Выполните следующие действия, чтобы настроить горячую перезагрузку:

  1. На панели инструментов Visual Studio используйте раскрывающийся список "Целевой объект отладки", чтобы выбрать локальные устройства iOS, а затем запись локального устройства :

    Screenshot of choosing the initial debug target for hot restart.

  2. На панели инструментов Visual Studio выберите локальное устройство:

    Screenshot of the initial debug target chosen for hot restart.

    Откроется мастер установки горячего перезапуска, который поможет вам настроить локальное устройство iOS для развертывания горячего перезапуска.

  3. В мастере установки горячего перезапуска нажмите кнопку "Далее".

    Screenshot of the first step in the setup hot restart wizard.

  4. Если у вас нет iTunes, мастер установки предложит установить его. В мастере установки горячего перезапуска выберите " Скачать iTunes":

    Screenshot of the second step in the setup hot restart wizard.

    Примечание.

    iTunes можно установить из Microsoft Store или скачать его из Apple.

    Дождитесь скачивания и установки iTunes. Если установить его из Microsoft Store, после завершения установки откройте его, следуйте дополнительным запросам, чтобы включить обнаружение локально подключенных устройств.

  5. В мастере установки горячего перезапуска нажмите кнопку "Далее ", чтобы перейти к следующему шагу мастера, который предложит подключить локальное устройство iOS:

    Screenshot of the initial third step in the setup hot restart wizard.

  6. Подключение устройство iOS на компьютер разработки с помощью USB-кабеля. Запрос может появиться на устройстве с просьбой доверять компьютеру разработки. На устройстве нажмите кнопку "Доверять" и следуйте дополнительным запросам устройства.

  7. В мастере установки горячего перезапуска нажмите кнопку "Далее " после обнаружения локального устройства iOS:

    Screenshot of the completed third step in the setup hot restart wizard.

    Примечание.

    Если мастер установки не сможет обнаружить локальное устройство iOS, отключите локальное устройство iOS с компьютера разработки. Кроме того, убедитесь, что iTunes распознает локальное устройство iOS.

  8. В мастере установки горячего перезапуска нажмите кнопку входа с помощью отдельной гиперссылки учетной записи учетной записи, чтобы настроить горячую перезагрузку для использования учетной записи программы разработчика Apple:

    Screenshot of the initial fourth step in the setup hot restart wizard.

    Откроется диалоговое окно "Отдельная учетная запись ".

    Примечание.

    Кроме того, чтобы настроить горячую перезагрузку для использования корпоративной учетной записи разработчика Apple, нажмите кнопку входа с гиперссылкой корпоративной учетной записи и введите учетные данные в появившемся диалоговом окне. Затем перейдите к шагу 12.

  9. Создайте ключ API магазина приложений Подключение. Для этого вам потребуется учетная запись разработчика Apple и платная регистрация программы разработчика Apple. Дополнительные сведения о создании ключа API в App Store Подключение см. в статье "Создание ключей API для API для Api Store Подключение" на developer.apple.com.

  10. В диалоговом окне "Отдельная учетная запись" введите данные ключа API в App Store Подключение:

    Screenshot of the completed dialog for adding an Apple Individual account.

    Данные идентификатора издателя и идентификатора ключа можно найти в App Store Подключение, выбрав "Пользователи" и "Доступ", а затем на вкладке "Ключи". Закрытый ключ также можно скачать из этого расположения:

    Screenshot of Apple App Store Connect API details.

  11. В диалоговом окне "Отдельная учетная запись" нажмите кнопку "Добавить". Откроется диалоговое окно "Отдельная учетная запись ".

  12. В мастере установки горячего перезапуска нажмите кнопку "Готово ":

    Screenshot of the completed fourth step in the setup hot restart wizard.

    Ваша учетная запись программы разработчика Apple будет добавлена в Visual Studio, а мастер установки горячего перезапуска закроется.

  13. В Обозреватель решений щелкните проект правой кнопкой мыши и выберите "Свойства".

  14. В свойствах проекта разверните iOS и выберите "Подпись пакета". Используйте раскрывающийся список "Схема", чтобы выбрать автоматическую подготовку, а затем щелкните гиперссылку "Настройка автоматической подготовки":

    Screenshot of automatic provisioning enabled within the iOS property page in Visual Studio.

    Откроется диалоговое окно "Настройка автоматической подготовки ".

  15. В диалоговом окне "Настройка автоматической подготовки" выберите команду для ключа API Подключение:

    Screenshot of the automatic provisioning dialog when it's correctly configured.

    Visual Studio завершит процесс автоматической подготовки. Затем нажмите кнопку "ОК ", чтобы закрыть диалоговое окно "Настройка автоматической подготовки ".

    Примечание.

    Рекомендуется использовать автоматическую подготовку, чтобы можно было легко настроить дополнительные устройства iOS для развертывания. Однако вы можете использовать ручную подготовку, если на компьютере присутствуют правильные профили подготовки.

Развертывание и отладка с помощью горячего перезапуска

После выполнения начальной настройки локально подключенное устройство iOS появится в раскрывающемся меню целевого объекта отладки. Чтобы развернуть и выполнить отладку приложения, выполните приведенные ниже действия.

  1. Убедитесь, что локально подключенное устройство iOS разблокировано.

  2. На панели инструментов Visual Studio выберите локальное подключенное устройство iOS в раскрывающемся списке целевого объекта отладки и нажмите кнопку "Запустить ", чтобы создать приложение и развернуть его на локальном устройстве iOS:

    Screenshot of the chosen debug target for hot restart.

  3. После развертывания приложения Visual Studio отобразит диалоговое окно Подключение отладчика:

    Screenshot of the dialog asking you to launch the app on your device.

    Запустите приложение на устройстве и Visual Studio подключит отладчик к работающему приложению, а диалоговое окно Подключение отладчика будет прекращено.

При отладке приложения можно изменить код C# и нажать кнопку перезапуска на панели инструментов Visual Studio, чтобы перезапустить сеанс отладки с новыми изменениями:

Screenshot of the restart button on the Visual Studio toolbar.

Запрет выполнения кода

Символ HOTRESTART препроцессора можно использовать для предотвращения выполнения кода при отладке с помощью горячего перезапуска:

#if !HOTRESTART
  // Code here won't be executed when debugging with hot restart
#endif

Включение горячего перезапуска

Горячая перезагрузка включена по умолчанию в Visual Studio 2022. Если он был отключен ранее, его можно включить, выбрав "Параметры инструментов>" в строке меню Visual Studio. Затем в диалоговом окне "Параметры" разверните Xamarin и выберите Параметры iOS. Затем убедитесь, что включен горячий перезапуск проверка:

Screenshot of how to enable hot restart within Visual Studio.

Ограничения

При использовании горячего перезапуска существуют ограничения:

  • Его можно использовать только для развертывания приложений, использующих конфигурацию отладки сборки. Вам по-прежнему потребуется узел сборки Mac для сборки, подписывания и развертывания приложения для рабочих целей.
  • Раскадровки и XIB-файлы не поддерживаются, и приложение может завершиться сбоем, если он пытается загрузить их во время выполнения.
  • Статические библиотеки и платформы iOS не поддерживаются и могут возникать ошибки среды выполнения или сбои, если приложение пытается загрузить их.
  • Пакеты ресурсов XCFrameworks и привязки не поддерживаются.
  • Каталоги активов не поддерживаются. При использовании горячего перезапуска приложение отобразит значок .NET и экран запуска.

Устранение неполадок

в iOS используется наблюдатель, отслеживающий время запуска приложения и скорость реагирования, и завершает работу неответствующих приложений. Например, наблюдатель завершает приложения, которые блокируют основной поток в течение значительного времени. На старых устройствах iOS наблюдатель может завершить развертывание приложения, которое было развернуто с помощью горячего перезапуска до подключения отладчика к нему. Решение состоит в том, чтобы уменьшить объем обработки, выполняемой в пути запуска приложения, и использовать более последнее устройство iOS.

Чтобы сообщить о дополнительных проблемах, используйте средство обратной связи > в справке по > отправке отчета о проблеме.