如何在我的设备上而不是在 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 浏览器中打开
如果用户在远程设备上而不是在工作计算机上,如何限制网站访问? (工作时间跟踪应用程序)