Развертывание приложения 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.
Настройка
Выполните следующие действия, чтобы настроить горячую перезагрузку:
На панели инструментов Visual Studio используйте раскрывающийся список "Целевой объект отладки", чтобы выбрать локальные устройства iOS, а затем запись локального устройства :
На панели инструментов Visual Studio выберите локальное устройство:
Откроется мастер установки горячего перезапуска, который поможет вам настроить локальное устройство iOS для развертывания горячего перезапуска.
В мастере установки горячего перезапуска нажмите кнопку "Далее".
Если у вас нет iTunes, мастер установки предложит установить его. В мастере установки горячего перезапуска выберите " Скачать iTunes":
Примечание.
iTunes можно установить из Microsoft Store или скачать его из Apple.
Дождитесь скачивания и установки iTunes. Если установить его из Microsoft Store, после завершения установки откройте его, следуйте дополнительным запросам, чтобы включить обнаружение локально подключенных устройств.
В мастере установки горячего перезапуска нажмите кнопку "Далее ", чтобы перейти к следующему шагу мастера, который предложит подключить локальное устройство iOS:
Подключите устройство iOS к компьютеру разработки с помощью USB-кабеля. Запрос может появиться на устройстве с просьбой доверять компьютеру разработки. На устройстве нажмите кнопку "Доверять" и следуйте дополнительным запросам устройства.
В мастере установки горячего перезапуска нажмите кнопку "Далее " после обнаружения локального устройства iOS:
Примечание.
Если мастер установки не сможет обнаружить локальное устройство iOS, отключите локальное устройство iOS с компьютера разработки. Кроме того, убедитесь, что iTunes распознает локальное устройство iOS.
В мастере установки горячего перезапуска нажмите кнопку входа с помощью отдельной гиперссылки учетной записи учетной записи, чтобы настроить горячую перезагрузку для использования учетной записи программы разработчика Apple:
Откроется диалоговое окно "Отдельная учетная запись ".
Примечание.
Кроме того, чтобы настроить горячую перезагрузку для использования корпоративной учетной записи разработчика Apple, нажмите кнопку входа с гиперссылкой корпоративной учетной записи и введите учетные данные в появившемся диалоговом окне. Затем перейдите к шагу 12.
Создайте ключ API Подключения к App Store. Для этого вам потребуется учетная запись разработчика Apple и платная регистрация программы разработчика Apple. Сведения о создании ключа API Connect в App Store см. в статье "Создание ключей API для API App Store Connect" на developer.apple.com.
В диалоговом окне "Отдельная учетная запись" введите данные ключа API Подключения к App Store:
Данные идентификатора издателя и идентификатора ключа можно найти в App Store Connect, выбрав "Пользователи" и "Доступ", а затем на вкладке "Ключи". Закрытый ключ также можно скачать из этого расположения:
В диалоговом окне "Отдельная учетная запись" нажмите кнопку "Добавить". Откроется диалоговое окно "Отдельная учетная запись ".
В мастере установки горячего перезапуска нажмите кнопку "Готово ":
Ваша учетная запись программы разработчика Apple будет добавлена в Visual Studio, а мастер установки горячего перезапуска закроется.
В Обозреватель решений щелкните проект правой кнопкой мыши и выберите "Свойства".
В свойствах проекта разверните iOS и выберите "Подпись пакета". Используйте раскрывающийся список "Схема", чтобы выбрать автоматическую подготовку, а затем щелкните гиперссылку "Настройка автоматической подготовки":
Откроется диалоговое окно "Настройка автоматической подготовки ".
В диалоговом окне "Настройка автоматической подготовки" выберите команду для ключа API Connect:
Visual Studio завершит процесс автоматической подготовки. Затем нажмите кнопку "ОК ", чтобы закрыть диалоговое окно "Настройка автоматической подготовки ".
Примечание.
Рекомендуется использовать автоматическую подготовку, чтобы можно было легко настроить дополнительные устройства iOS для развертывания. Однако вы можете использовать ручную подготовку, если на компьютере присутствуют правильные профили подготовки.
Развертывание и отладка с помощью горячего перезапуска
После выполнения начальной настройки локально подключенное устройство iOS появится в раскрывающемся меню целевого объекта отладки. Чтобы развернуть и выполнить отладку приложения, выполните приведенные ниже действия.
Убедитесь, что локально подключенное устройство iOS разблокировано.
На панели инструментов Visual Studio выберите локальное подключенное устройство iOS в раскрывающемся списке целевого объекта отладки и нажмите кнопку "Запустить ", чтобы создать приложение и развернуть его на локальном устройстве iOS:
После развертывания приложения Visual Studio отобразит диалоговое окно подключения отладчика :
Запустите приложение на устройстве и Visual Studio подключит отладчик к работающему приложению, и диалоговое окно "Подключение отладчика " будет прекращено.
При отладке приложения можно изменить код C# и нажать кнопку перезапуска на панели инструментов Visual Studio, чтобы перезапустить сеанс отладки с новыми изменениями:
Запрет выполнения кода
Символ HOTRESTART
препроцессора можно использовать для предотвращения выполнения кода при отладке с помощью горячего перезапуска:
#if !HOTRESTART
// Code here won't be executed when debugging with hot restart
#endif
Включение горячего перезапуска
Горячая перезагрузка включена по умолчанию в Visual Studio 2022. Если он был отключен ранее, его можно включить, выбрав "Параметры инструментов>" в строке меню Visual Studio. Затем в диалоговом окне "Параметры" разверните Xamarin и выберите параметры iOS. Затем убедитесь, что включена горячая перезагрузка :
Ограничения
При использовании горячего перезапуска существуют ограничения:
- Его можно использовать только для развертывания приложений, использующих конфигурацию отладки сборки. Вам по-прежнему потребуется узел сборки Mac для сборки, подписывания и развертывания приложения для рабочих целей.
- Раскадровки и XIB-файлы не поддерживаются, и приложение может завершиться сбоем, если он пытается загрузить их во время выполнения.
- Статические библиотеки iOS и платформы, содержащие статические библиотеки, не поддерживаются и могут возникать ошибки среды выполнения или сбои, если приложение пытается загрузить их.
- Поддерживаются пакеты ресурсов XCFrameworks и привязки, если они не содержат статические библиотеки iOS или платформы со статическими библиотеками.
- Каталоги активов не поддерживаются. При использовании горячего перезапуска приложение отобразит значок .NET и экран запуска.
Устранение неполадок
в iOS используется наблюдатель, отслеживающий время запуска приложения и скорость реагирования, и завершает работу неответствующих приложений. Например, наблюдатель завершает приложения, которые блокируют основной поток в течение значительного времени. На старых устройствах iOS наблюдатель может завершить развертывание приложения, которое было развернуто с помощью горячего перезапуска до подключения отладчика к нему. Решение состоит в том, чтобы уменьшить объем обработки, выполняемой в пути запуска приложения, и использовать более последнее устройство iOS.
Чтобы сообщить о дополнительных проблемах, используйте средство обратной связи > в справке по > отправке отчета о проблеме.