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


104

Чи можна запустити додаток для реагування на пристрої iOS безпосередньо з командного рядка, як це робимо на симуляторі react-native run ios --simulator "iPhone 5s"?

Відповіді:


229

У мене працювало наступне (перевірено на рідну реакцію 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 / 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працювало, а вищевказана команда ні
Нарек

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з однаковим результатом
Блю Бот

32

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

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працював.
Jay Mayu

пристрій введення до usb-> Xcode-> Вікно-> Пристрої та симулятори-> Ідентифікатор this is uuid (udid)
Giang

@jasonleonhard Як ios-deploy -cпрацює, це не інструмент командного рядка? це повинно бути yarn/npm ios-deploy -cчи щось, бо й це теж не спрацювало
Сем

12

Запустіть цю команду в кореневому каталозі проекту.

1>. Список пристроїв iPhone для знайдених підключених реальних пристроїв та симулятора. так само, як команда 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 The 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

4

Просто хотів щось додати до відповіді Каміля

Після виконання кроків я все-таки отримав повідомлення про помилку,

помилка Не вдалося знайти пристрій з іменем: ".... 's Xr"

Після видалення спеціальних символів з імені пристрою (перейдіть до Налаштування -> Загальне -> Про мене -> Ім'я )

Наприклад: '

Це спрацювало !

Сподіваюся, це допоможе тому, хто стикався з подібною проблемою.

Перевірено за допомогою - response-native-cli: 2.0.1 | реакція-рідна: 0,59,8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3


Я отримав подібну проблему, тому що апостроф насправді був правильним одинарним лапкою Unicode. Після копіювання назви пристрою зі списку пристроїв воно працювало.
Тома

1

Почав працювати з моїм

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

І зауважте, що ваше ім’я iphone, апостроф можуть відрізнятися. Шахта використовує це '


0

Власне, для першої збірки, будь ласка, зробіть це за допомогою Xcode, а потім виконайте наступний спосіб:

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

Друга команда запускає програму на першому підключеному пристрої.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.