如何在运行React Native应用程序的iOS设备中启用Live Reload?

时间:2016-08-04 16:07:22

标签: ios react-native livereload

我正在尝试启用Live Reload模式,但Dev Menu中没有这样的项目: no item called 'Live Reload'

5 个答案:

答案 0 :(得分:18)

您遇到此问题主要是因为您的设备和您的开发机器不在同一个局域网中。检查一下。确保您的计算机和设备在保存LAN中连接,一切正常。

所有ur设备连接到同一LAN后。如果你正在使用Xcode。

  1. 关闭React Native包装程序(或只关闭终端窗口)
  2. 删除iOS设备中的应用
  3. 清理Xcode项目。
  4. 运行命令npm start -- reset-cache
  5. 然后一切都会好的。

答案 1 :(得分:6)

您需要从AppDelegate编辑jsCodeLocation的来源。

的主要问题

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

默认情况下正在寻找localhost,在模拟器中它可以作为模拟器和pc在同一台机器上工作,但是对于设备localhost将是不同的,所以为了使它工作,你需要改变到

的那一行

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

此处192.168.1.16将其更改为您的PC本地IP地址

答案 2 :(得分:0)

如果您正在运行模拟器,请确保您已“连接硬件键盘”

enter image description here

答案 3 :(得分:0)

就我而言,我有一个本地以太网连接,该连接在en0上具有优先权,因此我必须在以下位置更改脚本:

node_modules/react-native/react-native-xcode.sh

来自

IP=$(ipconfig getifaddr en0)

IP=$(ipconfig getifaddr en1)

因为我的wifi在该端口上。 通过终端networksetup -listallhardwareports

进行验证

我从以下博客文章中学到的所有信息:

https://www.stevetrefethen.com/blog/react-native-bundle-loading-failing-on-a-physical-device

感谢史蒂夫·特雷菲森!


我不确定永久解决方案应该是什么,但是似乎脚本应该以某种方式检查仅wifi的连接。

答案 4 :(得分:-1)

如果您在实际的本机设备上运行该应用程序。然后摇动设备,它会弹出我的菜单。