直接从命令行在iOS设备上运行react-native应用程序吗?


Answers:


229

以下代码对我有用(已在react native 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在构建后到达安装步骤时,脚本会建议您执行此操作。

尽管react-native提供的各种命令的文档有些粗略,但是值得去react-native / local-cli。在这里,您可以看到所有可用的命令以及它们运行的​​代码-因此,您可以算出哪些开关可用于未记录的命令。


2
如果您看到类似的信息ios deploy does not support the following options: id,也许像我一样,您的iPhone正在运行iOS beta版,则您必须使用beta版的Xcode。试试sudo xcode-select -s /Applications/Xcode-beta.app(假设您安装了正确的Xcode beta应用程序)。
paulvs 17-10-14

50
对我来说react-native run-ios --device,上面的命令没有
起作用-narek

11
如果运行后出现错误npm install -g ios-deploy,请尝试运行 sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener

5
请注意,您可以在具有设备UDID的iOS设备上以释放配置运行移动应用程序(对于非英语字符的设备名称,react-native run-ios --udid XXXX --configuration Release
device

7
越来越** INSTALLATION SUCCEEDED **但是什么也没有发生在设备上......它100%正确连接和Xcode的认可。尝试了主要答案和评论:react-native run-ios --device结果相同
Blue Bot

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: _________

该被欺骗的用法如下:

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

(可选)您可以使用:

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

您如何获取设备ID?
santialur

1
ios-deploy -c#插入设备时
jasonleonhard

1
为我sudo npm install -g ios-deploy --unsafe-perm=true工作。
杰伊·马尤

输入设备到USB-> Xcode-> Window-> Devices and Simulators-> Identifier is uuid(udid)
Giang

@jasonleonhard如何ios-deploy -c工作,它不是命令行工具?是应该存在的yarn/npm ios-deploy -c还是某些原因,导致其也不起作用
Sam

12

在项目根目录中运行此命令。

1>。iPhone设备列表,用于找到已连接的Real Devices and Simulator。与android的adb devices命令相同。

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方法,我得到错误:“错误deviceudid选项是互斥的”
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

只是想为卡米尔的答案添加一些内容

按照步骤操作后,我仍然出现错误,

错误找不到名称为“ ....的Xr”的设备

从设备名称中删除特殊字符后(转到设置->常规->关于->名称

例如:

有效 !

希望这对遇到类似问题的人有所帮助。

测试了 - 反应-原生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名称(撇号s)可能有所不同。我正在使用这个'


0

实际上,对于第一个版本,请使用Xcode进行操作,然后执行以下方法:

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

第二个命令将在第一个连接的设备上运行该应用程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.