如何在真实设备中使用离线捆绑运行react-native app?

时间:2016-06-14 12:51:06

标签: ios react-native

我已经编写了一些代码,并且在模拟器上运行良好。 我查看了有关如何在设备上运行的官方文档。这就是我所做的:

1,在AppDelegate.m中注释这一行

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

2,取消:

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

他们说

  

'静态包由" Bundle React Native代码和图像"自动生成。在实际设备上运行项目时的构建步骤'

我点击了'运行',并出现了红色屏幕:'连接被拒绝'。 为了确保项目中的main.jsbundle IS,我使用 curl 命令手动生成它。 但错误仍然存​​在:

Websocket connection failed with error ErrorDomain=NSPOSIXErrorDomain Code=61 'connection refused'

谷歌搜索的时间,但没有帮助。

3 个答案:

答案 0 :(得分:0)

将sheme更改为 Release 。 这很有效。

但仍然令人困惑的是为什么 debug 不起作用..

答案 1 :(得分:0)

当您将方案更改为发布时,它将编译整个jscode并使其在包中可用。这就是它在离线状态下的工作原理。在Debug中,它将转到localhost:8081,因为在你的主包中不会编译JSCode。这就是它无法正常工作的原因。即使在调试中,如果您编译ur jscode并添加到项目中也是可能的。

答案 2 :(得分:0)

如果使用物理iOS设备,请确保Macbook和设备位于同一wifi网络上,并已通过闪电连接USB电缆插入。 See docs for more info