我已经编写了一些代码,并且在模拟器上运行良好。 我查看了有关如何在设备上运行的官方文档。这就是我所做的:
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'
谷歌搜索的时间,但没有帮助。
答案 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