React-Native - 将应用程序发送到 iPhone 进行测试的最佳方式

Posted

技术标签:

【中文标题】React-Native - 将应用程序发送到 iPhone 进行测试的最佳方式【英文标题】:React-Native - Best Way to Send App to iPhone for Testing 【发布时间】:2018-06-28 20:47:57 【问题描述】:

我已阅读文档并退出了我的应用程序。这将创建我需要的所有 xCode 文件的 /ios 文件夹。我用 xCode 打开了文件。

我使用了使用create-react-native-app 制作的未经编辑的引导版本,然后立即运行npm run eject 程序。

当我使用 xCode 打开文件时,我可以正确分配团队。我继续并单击构建以将项目发送到我连接的 iPhone。它花费时间构建,在终端窗口中打开 Metro 捆绑器,但最终失败。它说它缺少main.jsbundle 文件。

有人有这种工作流程的经验吗?大多数示例显示了使用expo 或特定于平台的设备模拟器进行的积极开发。我想知道如何快速发送应用程序在真机上进行测试。

【问题讨论】:

如果您只想在真机上运行您的应用程序,您可以使用 expo 客户端而不弹出它。当您谈论移动应用程序时,测试和运行意味着完全不同。 我已经在 Windows 和 Mac 上很好地完成了 Expo 测试,但我想部署它捆绑时生成的 xcode 文件。基本上让它在没有 Expo 客户端的情况下运行。 你安装react-native-cli了吗? react-native-cli: 2.0.1 和 react-native: 0.55.4 您在 Metro bundler 终端窗口上看到任何错误吗? 【参考方案1】:

检查您的构建配置 您是在进行发布构建还是调试 建造。要查看产品 > 方案 > 编辑方案 > 运行

在进行发布构建之前运行此命令以创建 mainBundle.js

react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios

对于调试配置,Xcode 将自动处理捆绑

【讨论】:

好的,我现在正在尝试使用 react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios 我将 index.ios.js 更改为 index.js,因为 react-native 现在使用通用文件。它似乎确实创建了一个捆绑包,我会看看这是否有所作为。 这确实是捆绑包,它不再是 xCode 中的红色文件。但现在我收到以下错误:2018-06-29 22:10:42.679865-0400 starter[9718:3879453] Unhandled JS Exception: Application starter has not been registered. 我要启动另一个,看看是否能得到不同的结果。越来越近了。 我认为我遇到的问题之一是以调试模式运行它。这需要与应用程序的连接处于活动状态。一旦我切换到发布模式,它现在可以构建并在安装后无需 xcode 的任何帮助即可打开。 将此标记为正确答案,因为它帮助我弄清楚了。 此外,到目前为止,使用 Expo 发布并使用 Application Loader 推送到 AppStore 效果最好。无需弹出。然而,这个答案解决了一个弹出的应用程序。

以上是关于React-Native - 将应用程序发送到 iPhone 进行测试的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

使用按钮从 IoT 设备发送信号到 react-native 应用程序蓝牙并了解服务和特性

如何将更改的状态发送到 react-native 中的组件?

在 expo/react-native 中发送图像时随机出现“错误处理请求正文”

React-native:发送日志时出现问题-console.error

react-native 使用leanclound消息推送

在 react-native 中使用 aws pinpoint 推送通知