Запустить приложение для реагирования на устройстве iOS прямо из командной строки?

105

Можно ли запустить приложение, поддерживающее реакцию, на устройстве iOS прямо из командной строки, как мы это делаем на симуляторе react-native run ios --simulator "iPhone 5s"?

Аакаш Сигдел
источник

Ответы:

231

Для меня сработало следующее (протестировано на реагировать на родной 0.38и 0.40):

npm install -g ios-deploy
# Run on a connected device, e.g. Max's iPhone:
react-native run-ios --device "Max's iPhone"

Если вы попытаетесь запустить run-ios, вы увидите, что сценарий рекомендует это сделать, npm install -g ios-deployкогда он достигнет шага установки после сборки.

Хотя документация по различным командам, которые предлагают response-native, немного отрывочна, стоит перейти на react-native / local-cli . Там вы можете увидеть все доступные команды и код, который они запускают - таким образом, вы можете определить, какие переключатели доступны для недокументированных команд.

Камил Сарна
источник
2
Если вы видите что-то вроде ios deploy does not support the following options: id, возможно, как и я, ваш iPhone работает под управлением бета-версии iOS, и вам придется использовать бета-версию Xcode. Попробуйте sudo xcode-select -s /Applications/Xcode-beta.app(при условии, что у вас установлено правильное бета-приложение Xcode).
paulvs
50
Для меня просто react-native run-ios --deviceсработало, а
narek
11
Если после запуска вы получаете сообщение об ошибке npm install -g ios-deploy, попробуйте запустить sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Эрик Винер,
5
Обратите внимание, что вы можете запустить мобильное приложение в конфигурации relase на устройстве iOS с UDID устройства (вы можете получить ошибку с параметром --device для имен устройств, содержащих неанглийские символы:react-native run-ios --udid XXXX --configuration Release
Gürol Canbek
7
получает, ** INSTALLATION SUCCEEDED **но на устройстве ничего не происходит ... его 100% правильно подключено и распознается Xcode. Пробовал как основной ответ, так и комментарии: react-native run-ios --deviceс тем же результатом
Blue Bot
33

Сначала установите необходимую библиотеку глобально на свой компьютер:

npm install -g ios-deploy

Зайдите в настройки на вашем iPhone, чтобы узнать имя устройства.

Затем укажите это ниже, например:

react-native run-ios --device "______\'s iPhone"

Иногда это не срабатывает и выдает такое сообщение:

Found Xcode project ________.xcodeproj
Could not find device with the name: "_______'s iPhone".
Choose one of the following:
______s iPhone Udid: _________

Этот udid используется так:

react-native run-ios --device --udid 0412e2c230a14e23451699

По желанию вы можете использовать:

react-native run-ios --device --udid 0412e2c230a14e23451699 -- configuration Release
Джейсонлеонхард
источник
как получить идентификатор устройства?
santialur
1
ios-deploy -c # когда ваше устройство подключено
jasonleonhard
1
у меня sudo npm install -g ios-deploy --unsafe-perm=trueсработало.
Джей Маю
устройство ввода на usb-> Xcode-> Window-> Devices and Simulators-> Identifier this is uuid (udid)
Giang
@jasonleonhard Как ios-deploy -cработает, это не инструмент командной строки? это должно быть yarn/npm ios-deploy -cили что-то в этом роде, потому что это тоже не сработало
Сэм
13

Выполните эту команду в корневом каталоге проекта.

1>. Список устройств iPhone, на которых были обнаружены подключенные Real Devices и Simulator. То же, что и команда adb devices для Android.

xcrun instruments -s devices

2>. С помощью этой команды выберите устройство, на котором вы хотите запустить приложение.

Использование имени устройства

react-native run-ios --device "Kool's iPhone"

Использование UDID

react-native run-ios --device --udid 0412e2c2******51699

ждать и смотреть, чтобы запустить ваше приложение на определенных устройствах - K00L;)

кулдип бхалодия
источник
1
используя метод UDID, я получаю сообщение об ошибке: «error Параметры deviceи udidявляются взаимоисключающими»
syumaK
7

Если вы получите эту ошибку, ios-deploy@x.x.x preinstall: ./src/scripts/check_reqs.js && xcodebuild ...используяnpm install -g ios-deploy

Попробуй это. Меня устраивает:

  1. sudo npm uninstall -g ios-deploy
  2. brew install ios-deploy
Cedriga
источник
4

Просто хотел добавить что-то к ответу Камиля

После выполнения этих шагов у меня все еще возникает ошибка,

ошибка Не удалось найти устройство с именем: «.... 's Xr»

После удаления спецсимволов из имени устройства (Зайдите в Настройки -> Общие -> О программе -> Имя )

Например: '

Это сработало !

Надеюсь, это поможет тому, кто столкнулся с подобной проблемой.

Протестировано с помощью - react-native-cli: 2.0.1 | реагировать-native: 0.59.8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3

Дамита Равендра
источник
У меня возникла аналогичная проблема, потому что апостроф на самом деле был правой одинарной кавычкой Unicode. После копирования и вставки имени устройства из списка устройств все заработало.
Тома
1

Получил мою работу с

react-native run-ios --device="My’s iPhone"

И обратите внимание, что ваше имя iphone может отличаться от апострофа. Моя использует это '

Js Yau
источник
0

Собственно, для первой сборки сделайте это с помощью Xcode, а затем выполните следующие действия:

  1. brew install ios-deploy
  2. npx react-native run-ios --device

Вторая команда запустит приложение на первом подключенном устройстве.

AmerllicA
источник