Горячий перезапуск Xamarin

Горячий перезапуск Xamarin позволяет быстро проверить изменения в приложении во время разработки, включая изменение кода, ресурсов и ссылок в нескольких файлах. Он передает новые изменения в существующий пакет приложений в целевом объекте отладки, что значительно ускоряет цикл сборки и развертывания.

Внимание

Сейчас горячий перезапуск Xamarin доступен в стабильной версии Visual Studio 2019 16.5 и поддерживает приложения iOS с помощью Xamarin.Forms. Поддержка Visual Studio для Mac и приложений, отличных от Xamarin.Forms, включена в дорожную карту.

Требования

  • Visual Studio 2019 версии 16.5 или более поздней
  • iTunes (Microsoft Store или 64-разрядные версии)
  • Учетная запись разработчика Apple и регистрация в платной Программе для разработчиков Apple

Начальная настройка

Примечание.

По умолчанию в Visual Studio 16.8 и предыдущих версиях отключен горячий перезапуск Xamarin. Вы можете включить его в разделе "Параметры > среды > предварительной версии инструментов>", > чтобы включить горячую перезагрузку Xamarin. Начиная с Visual Studio 16.9, горячая перезагрузка Xamarin включена по умолчанию и может быть отключена из параметров > инструментов > Xamarin > iOS Параметры > включить горячую перезагрузку.

  1. Убедитесь, что проект iOS задан в качестве запускаемого проекта, а для конфигурации сборки задано значение Debug|iPhone (Отладка|iPhone).

    1. Если это существующий проект, перейдите в build > Configuration Manager и убедитесь, что развертывание включено для проекта iOS.
  2. Выберите и щелкните элемент Локальное устройство на панели инструментов, чтобы запустить мастер установки:

    Screenshot of the Visual Studio toolbar with local device set as the debug target.

  3. Если компонент iTunes не установлен, щелкните Скачать iTunes, чтобы скачать установщик. После завершения установки iTunes нажмите кнопку Далее.

  4. Подключите устройство iOS к компьютеру. Если устройство уже подключено к сети, отключите его и снова подключите. После обнаружения устройства его имя появится в мастере. Нажмите кнопку Далее.

  5. Введите учетные данные разработчика Apple и нажмите кнопку Далее.

  6. Выберите команду разработчик в раскрывающемся меню, чтобы включить автоматическую подготовку в проекте. Нажмите кнопку Готово.

Примечание.

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

Использование горячего перезапуска Xamarin

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

Вы можете внести изменения в файлы кода во время отладки, а затем нажмите кнопку Перезапустить на панели инструментов отладки или используйте сочетание клавиш CTRL+ SHIFT+F5 для перезапуска сеанса отладки с применением новых изменений:

Screenshot of the debug toolbar with the restart button highlighted.

Можете также использовать символ препроцессора HOTRESTART, чтобы предотвратить выполнение определенного кода при отладке с использованием горячего перезапуска Xamarin.

Ограничения

  • Сейчас поддерживаются только приложения iOS, созданные с использованием Xamarin.Forms и устройств iOS.
  • Поддерживаются только 64-разрядные устройства iOS. Начиная с iOS 11 Apple больше не разрешает запускать приложения iOS на 32-разрядной архитектуре (устройства до iPhone 5s).
  • Файлы раскадровки и XIB не поддерживаются, и приложение может аварийно завершить работу, если попытается загрузить их во время выполнения. Чтобы предотвратить выполнение этого кода, используйте символ препроцессора HOTRESTART.
  • Статические библиотеки и платформы iOS не поддерживаются. Если приложение попытается их загрузить, в среде выполнения могут возникнуть ошибки или сбои. Чтобы предотвратить выполнение этого кода, используйте символ препроцессора HOTRESTART. Но динамические библиотеки iOS поддерживаются.
  • Горячий перезапуск Xamarin запрещено использовать в целях создания пакетов приложений для публикации. Вам по-прежнему потребуется компьютер Mac для полной компиляции, подписывания и развертывания приложения в рабочей среде.
  • Каталоги ресурсов сейчас не поддерживаются. При использовании "горячего" перезапуска в приложении отобразится стандартный значок и экран запуска для приложений Xamarin. Каталоги ресурсов поддерживаются, если выполнить сопряжение с компьютером Mac или вести разработку на таком компьютере.

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

  • Существует известная проблема, когда при включении сборок для конкретных устройств сеанс отладки приложения не запускается. Обходной путь — отключить это в разделе "Свойства > сборки и повторная отладка iOS". Эта проблема будет исправлена в будущем выпуске.
  • Если это приложение уже установлено на устройстве, попытка развертывания с использованием горячего перезапуска может завершиться ошибкой AMDeviceStartHouseArrestService. Чтобы обойти эту проблему, удалите приложение на устройстве и снова разверните его.
  • Если ввести идентификатор Apple ID, на который не распространяется Программа для разработчиков Apple, появится следующая ошибка: Authentication Error. Xcode 7.3 or later is required to continue developing with your Apple ID. Чтобы использовать горячую перезагрузку Xamarin для устройств iOS, требуется действительная учетная запись разработчика Apple.

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