答案 0 :(得分:18)
您遇到此问题主要是因为您的设备和您的开发机器不在同一个局域网中。检查一下。确保您的计算机和设备在保存LAN中连接,一切正常。
所有ur设备连接到同一LAN后。如果你正在使用Xcode。
npm start -- reset-cache
然后一切都会好的。
答案 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)
答案 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)
如果您在实际的本机设备上运行该应用程序。然后摇动设备,它会弹出我的菜单。