Установка и настройка средств для разработки с помощью iOS

Вы можете использовать Visual Studio с кросс-платформенными средствами для разработки мобильных приложений на языке C++ для редактирования, отладки и развертывания кода iOS на симуляторе или устройстве iOS. Но, из-за лицензионных ограничений, код нужно создавать и выполнять на компьютере Mac удаленно. Для сборки и запуска приложений iOS с помощью Visual Studio необходимо установить и настроить удаленный агент vcremoteна компьютере Mac. Удаленный агент vcremote обрабатывает запросы на сборку из Visual Studio и запускает приложение на устройстве iOS, подключенном к Mac, или в симуляторе iOS на Mac.

Примечание.

Сведения об использовании размещенных в облаке служб Mac вместо компьютера Mac см. в разделе Настройка подключения Visual Studio к размещенному в облаке компьютеру Mac. Приведенные инструкции предназначены для разработки с помощью инструментов Visual Studio для Apache Cordova. Чтобы использовать инструкции для сборки с помощью С++, замените vcremote на remotebuild.

После установки средств для сборки с помощью iOS ознакомьтесь с этой статьей еще раз. В нем описаны способы быстрой настройки и обновления vcremote для разработки iOS в Visual Studio и mac.

Необходимые компоненты

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

  • Компьютер Mac с операционной системой macOS Mojave (версии 10.14) или более поздней версии.

  • Идентификатор Apple ID.

  • Действующая учетная запись разработчика Apple.

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

  • Xcode версии 10.2.1 или более поздней.

    Xcode можно скачать в магазине App Store.

  • Средства командной строки Xcode

    Чтобы установить средства командной строки Xcode, откройте приложение "Терминал" на компьютере Mac и введите следующую команду:

    xcode-select --install

  • Учетная запись Apple ID, настроенная в Xcode, как удостоверение для подписи приложений.

    Чтобы просмотреть или задать удостоверение подписывания в Xcode, откройте меню Xcode и выберите пункт Preferences(Настройки). Щелкните Accounts (Учетные записи), выберите свой идентификатор Apple ID, а затем нажмите кнопку View Details (Просмотреть подробности). См. подробные инструкции в разделе Добавление вашей учетной записи Apple ID.

    Подробные сведения о требованиях для подписывания см. в разделе Что такое подписывание приложений.

  • Если вы используете устройство iOS для разработки, профиль подготовки, настроенный в Xcode для устройства

    Xcode предоставляет автоматическую подпись, где он создает сертификаты подписи для вас по мере необходимости. Подробные сведения о автоматическом подписи Xcode см. в разделе "Автоматическая подпись".

    Если вы предпочитаете ручное подписывание, необходимо создать профиль подготовки для вашего приложения. Подробные сведения о создании профилей подготовки см. в статье Создание профилей подготовки для разработки.

  • Node.js версии 18.12.1 и npm версии 8.19.2

    Установите версию 18.12.1 Node.js на компьютере Mac. Если установить пакет Node.js, он должен соответствовать npm версии 8.19.2. Другие версии Node.js и npm могут не поддерживать некоторые модули, используемые в vcremote, что может привести к сбою установки vcremote. Рекомендуется установить Node.js с помощью диспетчера пакетов, например Node Version Manager. Избегайте использования команды sudo для установки Node.js, так как некоторые модули могут не устанавливаться при использовании sudo.

Установка vcremote для iOS

При установке разработки мобильных устройств с помощью рабочей нагрузки C++ Visual Studio может взаимодействовать с удаленным агентом vcremote , запущенным на компьютере Mac, для передачи файлов, сборки и запуска приложения iOS и отправки команд отладки.

Перед установкой vcremote убедитесь, что выполнены предварительные требования и выполнены действия по установке в кроссплатформенной разработке мобильных приложений с помощью C++.

Скачивание и установка vcremote

  • Убедитесь, что версия Node.js, используемая в настоящее время, является обязательной версией 18.12.1 из приложения терминала на компьютере Mac. Чтобы проверить версию, выполните команду:

    node -v

    Если это неправильная версия, возможно, потребуется выполнить инструкции по установке Node.js, приведенные в предварительных требованиях. Затем перезапустите Node.js.

  • Убедившись, что используется необходимая версия Node.js, выполните следующую команду, чтобы установить vcremote в этой версии Node.js:

    npm install -g --unsafe-perm vcremote

    Рекомендуется применять глобальный параметр установки (-g), но он не является обязательным. Если вы не используете параметр глобальной установки, vcremote устанавливается по текущему активному пути в приложении терминала.

    В ходе установки будет установлен vcremote, а на компьютере Mac будет активирован режим разработчика. Также будут установлены Homebrew и два пакета npm, vcremote-lib и vcremote-utils. После завершения установки можно игнорировать любые предупреждения о пропущенных необязательных зависимостях.

    Примечание.

    Для установки Homebrew требуется доступ sudo (права администратора). Если вам нужно установить vcremote без sudo, вы можете установить Homebrew вручную в расположении usr/local и добавить ее bin папку в путь. Дополнительную информацию см. в документации по Homebrew. Чтобы включить режим разработчика вручную, введите в приложении "Терминал" следующую команду: DevToolsSecurity -enable

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

Запуск vcremote

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

Примечание.

Для версии 1.0.19 или более поздней версии vcremote требуется по крайней мере Visual Studio 2022 версии 17.5.0( предварительная версия 1 или более поздняя версия). Если вы используете Visual Studio 2022 версии 17.4 или более раннюю версию, установите vcremote версии 1.0.17.

Запуск vcremote

  • В приложении "Терминал" на компьютере Mac введите следующую команду:

    vcremote

    Эта команда запускает удаленный агент со стандартным каталогом сборки ~/vcremote. Дополнительные параметры конфигурации см. в разделе "Настройка vcremote" в Mac.

При первом запуске vcremote и при каждом создании нового сертификата сервера вы предоставляете необходимые сведения для настройки подключения в Visual Studio. Сведения включают имя узла и порт. Если вы планируете настроить удаленный агент в Visual Studio с помощью имени узла, ping the Mac from Windows с помощью имени узла, чтобы убедиться, что он доступен. В противном случае может потребоваться использовать вместо имени узла IP-адрес.

Удаленный агент можно использовать в небезопасном режиме. В незащищенном режиме удаленный агент можно связать с Visual Studio с помощью простого HTTP-подключения, которое не шифрует данные. Используйте незащищенный режим в собственном риске. Мы рекомендуем использовать безопасный режим для подключения:

Visual Studio 2022 версии 17.5 и более поздних версий с vcremote 1.0.19 и более поздних версий:

В vcremote 1.0.19 и более поздних версиях vcremote сообщает путь к server-cert.pem файлу сертификата, который необходимо отправить в Visual Studio.

Visual Studio 2022 версии 17.4 и более ранних версий с vcremote 1.0.17 и более ранних версий:

Версия 1.0.17 и более старые версии vcremote создают ПИН-код для безопасного взаимодействия с версиями Visual Studio до Visual Studio 2022 версии 17.4.

Screenshot of the Mac Terminal window that shows the host name, port, and PIN reported when VC remote is started.

Созданный ПИН-код является одноразовым и действителен в течение ограниченного срока. Если вы не связываете Visual Studio с удаленным агентом до истечения срока действия, вам потребуется создать новый ПИН-код. Для получения дополнительной информации см. Generate a new security PIN.

Отключение режима защищенного соединения

  • Чтобы отключить режим защищенного соединения в vcremote, в приложении "Терминал" на компьютере Mac введите следующую команду:

    vcremote --secure false

Включение режима защищенного соединения

  • Чтобы включить режим защищенного соединения, введите следующую команду:

    vcremote --secure true

После запуска удаленного агента его можно использовать из Visual Studio, пока не остановите его.

Остановка удаленного агента

  • В окне приложения "Терминал", в котором выполняется vcremote, нажмите клавиши CONTROL+C.

Настройка vcremote в Visual Studio

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

Настройка vcremote из Visual Studio 2022 версии 17.5 и более поздних версий

  1. Если агент еще не запущен на компьютере Mac, выполните действия, описанные в разделе "Запуск удаленного агента". Компьютер Mac должен работать под управлением vcremote для Visual Studio, чтобы успешно связать, подключиться и создать проект.

  2. На компьютере Mac получите имя узла или IP-адрес компьютера Mac.

    IP-адрес можно получить с помощью команды ifconfig в окне "Терминал". Используйте адрес, указанный inet в активном сетевом интерфейсе.

  3. В строке меню Visual Studio выберите "Параметры инструментов>".

  4. В диалоговом окне "Параметры" разверните кроссплатформенный> C++>iOS.

  5. В полях Имя узла и Порт введите значения, полученные при запуске удаленного агента. Именем узла может быть DNS-имя или IP-адрес компьютера Mac. Порт по умолчанию — 3030.

    Примечание.

    Если вы не можете выполнить связь с Mac с помощью имени узла, возможно, потребуется использовать IP-адрес.

  6. Если вы используете удаленный агент в режиме защищенного подключения по умолчанию, проверка папку Secure проверка box и перенесите server-cert.pem файл из Mac в Visual Studio для отправки. Затем нажмите кнопку "Создать ", чтобы создать новый client-cert.pem файл, который должен появиться на рабочем столе. Затем перенесите сертификат клиента в mac в разделе /vcremote/certs/Authorized-Clients. (Вы можете передать несколько файлов сертификатов клиента в этот каталог, поэтому несколько авторизованных компьютеров Visual Studio могут отправлять запросы в этот Mac.)

    Примечание.

    Если вы используете USB-накопитель для передачи сертификатов, удалите сертификаты с USB-диска после завершения передачи.

  7. Выберите Связать, чтобы активировать сопряжение.

    Screenshot of the Tools Options dialog for iOS pairing. The host name, the port, the Secure checkbox, and the Remote Root values are set.

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

    Если связывание не выполнено, убедитесь, что удаленный агент запущен, выполнив действия, описанные в разделе "Запуск удаленного агента". Выполните действия по созданию нового сертификата сервера и созданию нового сертификата клиента. Если вы используете имя узла Mac, попробуйте использовать IP-адрес в поле "Имя узла".

  8. Обновите имя папки в поле Удаленный корневой элемент, указав папку, используемую удаленным агентом, в домашнем каталоге (~) на компьютере Mac. По умолчанию удаленный агент использует /Users/<username>/vcremote в качестве удаленного корневого элемента.

  9. Чтобы сохранить параметры удаленного сопряжения, нажмите кнопку ОК .

Настройка vcremote из версий до Visual Studio 2022 версии 17.5

  1. Если агент еще не запущен на компьютере Mac, выполните действия, описанные в разделе "Запуск удаленного агента". Компьютер Mac должен работать под управлением vcremote для Visual Studio, чтобы успешно связать, подключиться и создать проект.

  2. На компьютере Mac получите имя узла или IP-адрес компьютера Mac.

    IP-адрес можно получить с помощью команды ifconfig в окне "Терминал". Используйте адрес, указанный inet в активном сетевом интерфейсе.

  3. В строке меню Visual Studio выберите "Параметры инструментов>".

  4. В диалоговом окне "Параметры" разверните кроссплатформенный> C++>iOS.

  5. В полях Имя узла и Порт введите значения, полученные при запуске удаленного агента. Именем узла может быть DNS-имя или IP-адрес компьютера Mac. Порт по умолчанию — 3030.

    Примечание.

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

  6. Если вы используете удаленный агент в режиме защищенного соединения по умолчанию, установите флажок Безопасный , а затем введите ПИН-код, предоставленный удаленным агентом, в поле ПИН-код . Если вы используете удаленный агент в небезопасном режиме, снимите флажок Безопасный и оставьте поле ПИН-код пустым.

  7. Выберите Связать, чтобы активировать сопряжение.

    Screenshot of the Tools Options dialog for iOS pairing. The host name, the port, the Secure checkbox, the pin, and the Remote Root values are set.

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

    Если связывание не выполнено, убедитесь, что удаленный агент запущен, выполнив действия, описанные в разделе "Запуск удаленного агента". Если с момента создания ПИН-кода удаленного агента прошло слишком много времени, выполните действия, описанные в разделе "Создание нового ПИН-кода безопасности". Затем повторите попытку. Если вы используете имя узла Mac, попробуйте использовать IP-адрес в поле "Имя узла".

  8. Обновите имя папки в поле Удаленный корневой элемент, указав папку, используемую удаленным агентом, в домашнем каталоге (~) на компьютере Mac. По умолчанию удаленный агент использует /Users/<username>/vcremote в качестве удаленного корневого элемента.

  9. Чтобы сохранить параметры удаленного сопряжения, нажмите кнопку ОК .

Generate a new security PIN

Область применения: Visual Studio 2022 версии 17.4 и более ранних версий с помощью vcremote версии 1.0.17 и более ранних версий.

При первоначальном запуске удаленного агента созданный ПИН-код действует в течение ограниченного времени (по умолчанию 10 минут). Если вы не связываете Visual Studio с удаленным агентом до истечения срока действия, вам потребуется создать новый ПИН-код.

Создание ПИН-кода

  1. Остановите агент (или откройте второе окно приложения "Терминал" на компьютере Mac и используйте его для ввода команды).

  2. В приложении "Терминал" введите следующую команду:

    vcremote generateClientCert

    Удаленный агент создаст новый временный ПИН-код. Для сопряжения Visual Studio с помощью нового ПИН-кода повторно выполните инструкции, приведенные в разделе Настройка удаленного агента в Visual Studio.

Создание нового сертификата клиента

Область применения: Visual Studio 2022 версии 17.5 и более поздних версий с помощью vcremote версии 1.0.19 и более поздних версий.

При паре в Visual Studio вы создадите новый client-cert.pem файл. Перенесите файл сертификата на компьютер сборки Mac./vcremote/certs/Authorized-Clients Этот сертификат позволяет Mac авторизовать запросы, поступающие с компьютера Visual Studio.

Создание нового сертификата сервера

Область применения: Visual Studio 2022 версии 17.5 и более поздних версий с помощью vcremote версии 1.0.19 и более поздних версий.

В целях безопасности сертификаты серверов, которые сопрягают Visual Studio с удаленным агентом, привязаны к имени узла или IP-адресу компьютера Mac. Если эти значения меняются, вам потребуется создать новый сертификат сервера, а затем изменить конфигурацию Visual Studio, используя новые значения.

Создание сертификата сервера

  1. Остановите агент vcremote.

  2. В приложении "Терминал" введите следующую команду:

    vcremote resetServerCert

  3. При появлении запроса на подтверждение введите Y.

  4. Чтобы связать Visual Studio с Mac, перенесите созданный server-cert.pem файл из Mac и отправьте его в Visual Studio, повторяя действия, описанные в статье "Настройка удаленного агента в Visual Studio".

Настройка vcremote на Компьютере Mac

Удаленный агент можно настроить, используя различные параметры командной строки. Например, можно задать порт для прослушивания запросов на построение и указать максимальное количество сборок, которые нужно поддерживать в файловой системе. По умолчанию это значение равно 10. Удаленный агент будет удалять сборки, которые выходят за максимальное число, при завершении работы.

Настройка удаленного агента

  • Чтобы просмотреть полный список команд удаленного агента, в приложении "Терминал" введите следующую команду:

    vcremote --help

  • Чтобы отключить безопасный режим и включить обычные подключения на основе HTTP, введите следующую команду:

    vcremote --secure false

    При использовании этого параметра снимите флажок Secure проверка box.

  • Чтобы указать расположение для файлов удаленного агента, введите следующую команду:

    vcremote --serverDir directory_path

    Замените directory_path расположением на компьютере Mac, чтобы разместить файлы журналов, сборки и сертификаты сервера. По умолчанию, это расположение /Users/<username>/vcremote. В этой папке сборки упорядочиваются по номеру сборки.

  • Чтобы использовать фоновый процесс для записи stdout и stderr в файл с именем server.log, введите:

    vcremote > server.log 2>&1 &

    Файл server.log может помочь в устранении неполадок со сборкой.

  • Для запуска агента с помощью файла конфигурации, а не параметров командной строки, введите следующую команду:

    vcremote --config config_file_path

    Замените config_file_path путь к файлу конфигурации в формате JSON. Параметры запуска и их значения не должны содержать дефисы.

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

Отладка на устройстве с iOS

Если отладка на устройстве iOS не работает, могут возникнуть проблемы с ideviceinstaller инструментом, который используется для взаимодействия с устройством iOS. Этот инструмент обычно устанавливается с Homebrew во время установки vcremote. Выполните следующие действия в качестве обходного решения:

Откройте приложение "Терминал" и обновите ideviceinstaller и его зависимости, выполнив следующие команды по порядку:

  1. Убедитесь, что Homebrew обновлен

    brew update

  2. Удалите libimobiledevice и usbmuxd

    brew uninstall --ignore-dependencies libimobiledevice

    brew uninstall --ignore-dependencies usbmuxd

  3. Установите последнюю версию libimobiledevice и usbmuxd

    brew install --HEAD usbmuxd

    brew unlink usbmuxd

    brew link usbmuxd

    brew install --HEAD libimobiledevice

  4. Удалите и переустановите ideviceinstaller

    brew uninstall ideviceinstaller

    brew install ideviceinstaller

Убедитесь, что ideviceinstaller может взаимодействовать с устройством, перечислив приложения, установленные на устройстве:

ideviceinstaller -l

Если ideviceinstaller сообщает об ошибке, к которой не удается получить доступ к папке /var/db/lockdown, измените привилегию в папке с помощью следующей команды:

sudo chmod 777 /var/db/lockdown

Затем еще раз проверьте, может ли ideviceinstaller взаимодействовать с устройством.

См. также