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

Aak*_*del 75 ios react-native

是否可以直接从命令行在iOS设备上运行react-native应用程序,就像我们在模拟器上一样react-native run ios --simulator "iPhone 5s"

Kam*_*rna 164

以下为我工作(测试反应原生0.380.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 Code Online (Sandbox Code Playgroud)

这是根据fb执行此操作的正确方法.如果您尝试仅运行run-ios命令,您会发现脚本建议您在构建之后安装步骤npm install -g ios-deploy.

虽然关于各种命令的文档反应原生提供有点粗略,但值得做,因为他们建议并进入查看react-native/local-cli.在那里,您可以看到所有可用的命令和它们运行的​​代码 - 您可以找出哪些开关可用于未记录的命令.

  • 对我来说,只是`react-native run-ios --device`工作,上面的命令没有 (29认同)
  • 如果在运行`npm install -g ios-deploy`后出现错误,请尝试运行`sudo npm install -g ios-deploy --unsafe-perm = true --allow-root` (7认同)
  • 安装成功,但设备上没有任何反应...其100%已正确连接并被Xcode识别。尝试了主要答案和评论:`react-native run-ios --device`具有相同结果 (7认同)
  • 请注意,您可以使用设备的UDID在iOS设备上以relase配置运行移动应用程序(对于具有非英文字符的设备名称,您可能会收到带有--device选项的错误:`react-native run-ios --udid XXXX - 配置发布 (4认同)
  • 如果您看到类似`ios deploy不支持以下选项:id`,也许像我一样,您的iPhone正在运行iOS测试版,您将不得不使用Xcode的测试版.尝试`sudo xcode-select -s/Applications/Xcode-beta.app`(假设您安装了正确的Xcode beta应用程序). (2认同)
  • 另请注意,撇号有不同版本,例如“”与“”。 (2认同)

小智 24

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

1>. 找到连接的真实设备和模拟器的 iPhone 设备列表。与 android 的 adb devices 命令一样。

xcrun instruments -s devices
Run Code Online (Sandbox Code Playgroud)

2>。使用此命令选择要运行应用程序的设备

使用设备名称

react-native run-ios --device "Kool's iPhone"
Run Code Online (Sandbox Code Playgroud)

使用 UDID

react-native run-ios --udid 0412e2c2******51699
Run Code Online (Sandbox Code Playgroud)

等待并观察在特定设备上运行您的应用程序 - K00L ;)

  • 在 xcode 13 及更高版本中,请使用“xctrace list devices”而不是“xcrun Instruments -s devices”。 (3认同)
  • 使用 UDID 方法,我收到错误:“错误‘device’和‘udid’选项是互斥的” (2认同)

jas*_*ard 21

首先在计算机上全局安装所需的库:

npm install -g ios-deploy
Run Code Online (Sandbox Code Playgroud)

在iPhone上转到您的设置以查找设备的名称。

然后像下面这样提供:

react-native run-ios --device "______\'s iPhone"
Run Code Online (Sandbox Code Playgroud)

有时这将失败并输出如下消息:

Found Xcode project ________.xcodeproj
Could not find device with the name: "_______'s iPhone".
Choose one of the following:
______’s iPhone Udid: _________
Run Code Online (Sandbox Code Playgroud)

该被欺骗的用法如下:

react-native run-ios --device --udid 0412e2c230a14e23451699
Run Code Online (Sandbox Code Playgroud)

(可选)您可以使用:

react-native run-ios --device --udid 0412e2c230a14e23451699 -- configuration Release
Run Code Online (Sandbox Code Playgroud)

  • ios-deploy -c # 当您的设备插入时 (3认同)

Ced*_*iga 8

如果您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


Ame*_*icA 7

实际上,对于第一次构建,请使用 Xcode 进行构建,然后执行以下操作:

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

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


Dam*_*dra 6

只是想在 Kamil 的回答中添加一些内容

按照步骤操作后还是报错

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

从设备名称中删除特殊字符后(转到Settings -> General -> About -> Name

例如:'

有效 !

希望这会帮助遇到类似问题的人。

测试- react-native-cli: 2.0.1 | 反应原生:0.59.8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3

  • 我遇到了类似的问题,因为撇号实际上是 unicode 右单引号。从设备列表中复制粘贴设备名称后,它就起作用了。 (2认同)

小智 5

让我的工作

react-native run-ios --device="My’s iPhone"
Run Code Online (Sandbox Code Playgroud)

并注意您的 iphone 名称,撇号 ' 可能不同。我正在使用这个'