Связывание с Mac при разработке для Xamarin.iOS

В этом руководстве описывается использование функции "Связать с Mac" для подключения Visual Studio 2019 к узлу сборки Mac. Эти инструкции предназначены и для Visual Studio 2017.

Обзор

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

Функция Visual Studio 2019 "Связать с Mac" обнаруживает узлы сборки Mac, подключается к ним, выполняет проверку подлинности и запоминает их, что упрощает сборку приложений для iOS в среде Windows.

Функция "Связать с Mac" включает следующий рабочий процесс разработки.

  • Разработчики могут создавать код Xamarin.iOS в Visual Studio 2019.

  • Visual Studio 2019 открывает сетевое подключение к узлу сборки Mac и использует средства сборки на этом компьютере для компиляции и подписания приложения iOS.

  • Нет необходимости запускать отдельные приложения на компьютере Mac: Visual Studio 2019 вызывает сборки Mac через безопасное SSH-подключение.

  • Visual Studio 2019 уведомляет об изменениях по мере их возникновения. Например, когда устройство iOS подключается к Mac или становится доступным в сети, панель инструментов iOS мгновенно обновляется.

  • К компьютеру Mac можно подключить несколько экземпляров Visual Studio 2019 одновременно.

  • Можно использовать командную строку Windows для создания приложений iOS.

Примечание.

Перед выполнением инструкций в этом руководстве выполните следующие действия.

Если вы не хотите устанавливать Visual Studio для Mac, Visual Studio 2019 может автоматически настроить на узле сборки Mac Xamarin.iOS и Mono. Также необходимо установить и запустить Xcode. Дополнительные сведения см. в разделе Автоматическая подготовка Mac.

Включение удаленного входа в систему на компьютере Mac

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

  1. На компьютере Mac откройте System Preferences (Системные настройки) и перейдите к панели Sharing (Общий доступ).

  2. Установите флажок Remote Login (Удаленный вход) в списке Service (Служба).

    Enabling Remote Login

    Убедитесь, что доступ разрешен всем пользователям (All users) или что ваше имя пользователя Mac или группа включены в список разрешенных пользователей.

  3. При появлении запроса настройте брандмауэр macOS.

    Если в брандмауэре macOS настроено блокирование входящих подключений, вам потребуется разрешить программе mono-sgen принимать входящие подключения. В этом случае появляется соответствующее предупреждение.

  4. Компьютер Mac теперь должен обнаруживаться средой Visual Studio 2019, если они находятся в одной сети с компьютером Windows. Если компьютер Mac по-прежнему не обнаруживается, попробуйте вручную добавить компьютер Mac или прочтите руководство по устранению неполадок.

Подключение к компьютеру Mac из Visual Studio 2019

После включения удаленного входа в систему подключите Visual Studio 2019 к компьютеру Mac.

  1. В Visual Studio 2019 откройте существующий проект iOS или создайте новый, выбрав > файл нового > проекта и выбрав шаблон проекта iOS.

  2. Откройте диалоговое окно Связать с Mac.

    • Используйте кнопку Связать с Mac на панели инструментов iOS:

      The iOS toolbar, with the Pair to Mac button highlighted

    • Кроме того, выберите "Сервис" > для iOS > Pair to Mac.

    • В диалоговом окне Связать с Mac отображается список всех ранее подключенных и доступных сейчас узлов сборки Mac:

      The Pair to Mac dialog

  3. Выберите в списке компьютер Mac. Щелкните Подключить.

  4. Введите имя пользователя и пароль.

    • При первом подключении к любому конкретному компьютеру Mac предлагается ввести имя пользователя и пароль для этого компьютера:

      Entering a username and password for the Mac

      Совет

      При входе в систему используйте системное имя пользователя, а не полное имя.

    • Функция "Связать с Mac" будет использовать эти учетные данные для создания подключения SSH к компьютеру Mac. В случае успеха в файл authorized_keys на компьютере Mac добавляется ключ. При последующих подключениях к тому же компьютеру Mac вход будет выполняться автоматически.

  5. Функция "Связать с Mac" автоматически настраивает Mac.

    Начиная с Visual Studio 2019 версии 15.6 среда Visual Studio 2019 устанавливает или обновляет Mono и Xamarin.iOS на подключенном узле сборки Mac при необходимости (учтите, что Xcode необходимо по-прежнему устанавливать вручную). Дополнительные сведения см. в разделе Автоматическая подготовка Mac.

  6. Найдите значок состояния подключения.

    • Когда Visual Studio 2019 подключена к компьютеру Mac, для этого элемента Mac в диалоговом окне Связать с Mac отображается значок активного подключения.

      A connected Mac

      Одновременно может быть подключен только один компьютер Mac.

      Совет

      Щелкните правой кнопкой мыши любой компьютер Mac в списке Связать с Mac: появится контекстное меню с пунктами Подключить..., Не сохранять данные этого компьютера Mac или Отключить:

      The Pair to Mac context menus

      При выборе варианта Не сохранять данные этого компьютера Mac ваши учетные данные для выбранного компьютера Mac удаляются. Для повторного подключения к этому компьютеру Mac потребуется заново ввести имя пользователя и пароль.

Если подключение к узлу сборки Mac выполнено успешно, вы можете начинать создавать приложения Xamarin.iOS в Visual Studio 2019. Прочитайте руководство Введение в Xamarin.iOS для Visual Studio.

Если вам не удалось выполнить связывание с компьютером Mac, попробуйте вручную добавить компьютер Mac или прочтите руководство по устранению неполадок.

Добавление компьютера Mac вручную

Если вы не видите конкретный компьютер Mac в списке в диалоговом окне Связать с Mac, добавьте его вручную.

  1. Найдите IP-адрес нужного компьютера Mac.

    • Откройте удаленный вход в систему с общим доступом > к системным настройкам > на компьютере Mac:

      The Mac's IP address in System Preferences > Sharing

    • Кроме того, можно использовать командную строку. В окне терминала выполните эту команду:

      $ ipconfig getifaddr en0
      196.168.1.8
      

      В зависимости от конфигурации сети может потребоваться использовать имя интерфейса, отличное от en0. Например, en1, en2 и т. д.

  2. В диалоговом окне Связать с Mac Visual Studio 2019 выберите Добавить компьютер Mac....

    The Add Mac button in the Pair to Mac dialog

  3. Введите IP-адрес компьютера Mac и нажмите кнопку Добавить:

    Entering the Mac's IP address

  4. Введите свое имя пользователя и пароль для компьютера Mac:

    Enter a username and password

    Совет

    При входе в систему используйте системное имя пользователя, а не полное имя.

  5. Нажмите кнопку Войти, чтобы подключить Visual Studio 2019 к Mac через SSH и добавить его в список известных компьютеров.

Автоматическая подготовка Mac

Начиная с Visual Studio 2019 версии 15.6, Пара с Mac автоматически подготавливает Mac с программным обеспечением, необходимым для создания приложений Xamarin.iOS: Mono, Xamarin.iOS (программная платформа, а не интегрированная среда разработки Visual Studio для Mac) и различные средства, связанные с Xcode (но не Xcode).

Внимание

  • Функция "Связать с Mac" не может установить Xcode: этот компонент необходимо установить на узле сборки Mac вручную. Он требуется для разработки Xamarin.iOS.
  • Автоматическая подготовка Mac требует, чтобы на компьютере Mac был включен удаленный вход и чтобы компьютер Mac был доступен по сети для компьютера Windows. Дополнительные сведения см. в разделе Включение удаленного входа на компьютере Mac.
  • Для автоматической подготовки Mac нужно 3 ГБ свободного места на Mac, чтобы установить Xamarin.iOS.

Функция "Связать с Mac" выполняет установку или обновление необходимого программного обеспечения, когда Visual Studio 2019 подключается к компьютеру Mac.

Mono

Функция "Связать с Mac" проверяет наличие Mono. Если этот компонент не установлен, функция "Связать с Mac" загрузит и установит последнюю стабильную версию Mono на компьютере Mac.

В ходе выполнения выводятся различные запросы, как показано на следующих снимках экрана (щелкните, чтобы увеличить):

Mono Проверка установки Downloading; Установка
Missing Mono installation Downloading Mono Installing Mono

Xamarin.iOS

Функция "Связать с Mac" обновляет Xamarin.iOS на Mac так, чтобы его версия соответствовала версии, установленной на компьютере Windows.

Внимание

Функция "Связать с Mac" не будет переходить на использование более ранней версии Xamarin.iOS на компьютере Mac (то есть заменять альфа- и бета-версии на стабильную). При наличии Visual Studio для Mac настройте канал выпуска следующим образом.

  • Если вы используете Visual Studio 2019, выберите стабильный канал обновлений в Visual Studio для Mac.
  • Если вы используете предварительную версию Visual Studio 2019, выберите альфа-канал обновлений в Visual Studio для Mac.

В ходе выполнения выводятся различные запросы, как показано на следующих снимках экрана (щелкните, чтобы увеличить):

Xamarin.iOS Проверка установки Downloading; Установка
Missing Xamarin.iOS installation Downloading Xamarin.iOS Installing Xamarin.iOS

Средства и лицензии Xcode

Функция "Связать с Mac" также проверяет наличие установки Xcode и принятие его лицензии. Функция "Связать с Mac" не устанавливает Xcode, однако предлагает принять условия лицензионного соглашения, как показано на следующих снимках экрана (щелкните, чтобы увеличить):

Xcode Проверка установки Принятие условий лицензионного соглашения
Missing Xcode installation Xcode license

Кроме того, функция "Связать с Mac" установит или обновит различные пакеты, распространяемые с Xcode. Например:

  • MobileDeviceDevelopment.pkg
  • XcodeExtensionSupport.pkg
  • MobileDevice.pkg
  • XcodeSystemResources.pkg

Установка этих пакетов выполняется быстро и без запросов.

Примечание.

Эти средства отличаются от программ командной строки Xcode, которые в системе macOS 10.9 устанавливаются вместе с Xcode.

Устранение неполадок автоматической подготовки Mac

Если у вас возникают проблемы с автоматической подготовкой Mac, просмотрите журналы IDE Visual Studio 2019 по пути %LOCALAPPDATA%\Xamarin\Logs\16.0. Эти журналы могут содержать сообщения об ошибках, которые помогут эффективнее диагностировать ошибку или получить поддержку.

Создание приложений iOS из командной строки Windows

Функция "Связать с Mac" поддерживает сборку приложений Xamarin.iOS из командной строки. Например:

C:\samples\App1>msbuild App1.sln /p:ServerAddress=10.211.55.2 /p:ServerUser=xamUser /p:Platform=iPhoneSimulator /p:ServerPassword=mypassword

Параметры, передаваемые в msbuild в приведенном выше примере:

  • ServerAddress — IP-адрес узла сборки Mac.
  • ServerUser — имя пользователя, используемое при входе в систему узла сборки Mac. Используйте системное имя пользователя, а не полное имя.
  • ServerPassword — пароль, используемый при входе в систему узла сборки Mac.

Примечание.

Visual Studio 2019 хранится msbuild в следующем каталоге: C:\Program Files (x86)\Microsoft Visual Studio\2019<\Version>\MSBuild\Current\Bin

При первом входе функции "Связать с Mac" в систему определенного узла сборки Mac из Visual Studio 2019 или из командной строки она устанавливает ключи SSH. Благодаря этим ключам в дальнейшем при входе не потребуется указывать имя пользователя или пароль. Вновь созданные ключи хранятся по пути %LOCALAPPDATA%\Xamarin\MonoTouch.

Если параметр ServerPassword исключается из вызова сборки из командной строки, функция "Связать с Mac" пытается выполнить вход на узел сборки Mac, используя сохраненные ключи SSH.

Итоги

В этой статье описано, как использовать функцию "Связать с Mac" для подключения Visual Studio 2019 к узлу сборки Mac, чтобы разработчики Visual Studio 2019 могли выполнять сборку приложений iOS в машинном коде с помощью Xamarin.iOS.

Следующие шаги