如何在我的设备上而不是在 iPhone 6 模拟器中运行我的 React Native 应用程序?

Posted

技术标签:

【中文标题】如何在我的设备上而不是在 iPhone 6 模拟器中运行我的 React Native 应用程序?【英文标题】:How do I run my React Native application on my device rather than in IPhone 6 simulator? 【发布时间】:2019-01-18 07:55:00 【问题描述】:

我一直在阅读 React Native 的文档和论坛,并回答了类似的问题,但不知道如何在我的设备上运行我的应用程序。

我已经尝试过这个问题“Run react-native application on ios device directly from command line?”中提到的内容,以及从 ios 目录中删除 build 文件夹并重新运行脚本。我将运行此命令npm run ios --device "Anthony’s iPhone",但它会导致此Launching iPhone 6 (iOS 11.3)... 我也尝试运行npm run ios --simulator "iPhone 5s",但我再次得到Launching iPhone 6 (iOS 11.3)...。我不确定从这里去哪里,更多信息可以在下面看到。当然,模拟器总是会启动并正常运行,但我想控制它是在设备上运行还是在哪个模拟器上运行。

Anthonys-MacBook-Pro:fitness-app anthonysette$ npm run ios --device "Anthony’s iPhone"

> FitnessApp@0.1.0 ios /Users/anthonysette/Documents/fitness-app
> react-native run-ios "Anthony’s iPhone"

Scanning folders for symlinks in /Users/anthonysette/Documents/fitness-app/node_modules (15ms)
Found Xcode workspace FitnessApp.xcworkspace
Launching iPhone 6 (iOS 11.3)...
Building using "xcodebuild -workspace FitnessApp.xcworkspace -configuration Debug -scheme FitnessApp -destination id=28DE4434-4D1A-4B5E-8C16-0AC2C101F8E0 -derivedDataPath build"
User defaults from command line:

编辑:从 package.json 添加信息

我的 package.json 有一个名为 scripts 的部分,其中包含以下内容

  "scripts": 
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "rename": "node ./bin/rename.js",
    "start": "react-native start",
    "test": "jest"
  ,

【问题讨论】:

你也可以试试这个react-native run-ios --device吗? @PritishVaidya 刚试过,但对我来说 npm run ios 运行 react-native run-ios。该命令的结果是Anthonys-MacBook-Pro:fitness-app anthonysette$ react-native run-ios --device bash: react-native: command not found 检查我的编辑,在我的项目中添加了一些关于 package.json 文件的信息。 您可以全局安装 react-native cli 或将脚本添加到您的 package.json 为 "ios-device": "react-native run-ios --device" 并运行 npm run ios-device @PritishVaidya 成功了!!!我现在得到这个Could not find device with the name: "true". Choose one of the following: Anthony’s iPhone Udid: __UID__ Anthony’s MacBook Pro Udid: __UID__ Anthonys-MacBook-Pro:fitness-app anthonysette$,我该如何选择?另外,如果您想将其作为答案提交,我很乐意将其标记为已回答以供其他人查看! 【参考方案1】:

您的脚本定义的npm run ios 将运行react-native run-ios。 因此,您可以全局安装 react-native cli 并使用

react-native run-ios --device "Anthony’s iPhone"

或将新脚本添加到您的 package.json

"ios-device": "react-native run-ios --device"

然后运行npm run ios-device "Anthony’s iPhone"

【讨论】:

如何获取设备名称? @Sam ... xcrun xctrace list devices【参考方案2】:

我建议你安装“create-react-native-app”来创建反应原生应用。您可以通过“expo”在您的设备中运行您的应用。使用“npm start”命令运行您的应用。在手机中下载并安装expo并扫描生成的二维码。它还支持热重载。

注意 - 确保您的计算机和手机在同一网络上。

【讨论】:

我以前做过这个,在大多数情况下,它会工作,但在弹出之后,或者从react-native-firebase 的入门工具包开始(已经弹出)你不能通过 expo 运行应用程序。 (据我所知,我可能是错的)

以上是关于如何在我的设备上而不是在 iPhone 6 模拟器中运行我的 React Native 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Login 正在 Facebook Native 应用程序中打开,而不是在 ios 6.0 的 iphone 设备上的 Safari 浏览器中打开

精灵出现在模拟器中,而不是在设备上

如果用户在远程设备上而不是在工作计算机上,如何限制网站访问? (工作时间跟踪应用程序)

设备上的 iOS 8 自定义键盘

iPhone 连接到 localhost rails sarver

iOS App 在模拟器上运行而不是在设备上运行?