You have this problem is mainly because your device and your development machine is not in the same LAN. check if it is. Make sure your computer and your device connected in the save LAN, everything will be ok.
After all ur devices connected to the same LAN. And if u are using Xcode.
- Close the React Native packager (or just close the terminal window)
- Delete the app in your iOS device
- Clean Xcode project.
- Run command
npm start -- reset-cache
Then everything will be OK.
You need to edit the source for jsCodeLocation
from your AppDelegate.
The main problem that the
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
is looking for localhost
by default, in simulator it will work as simulator and pc are on the same machine, but for device localhost
will be different so to make it work, you need to change that line to
jsCodeLocation = [NSURL URLWithString:@"http://192.168.1.16:8081/index.ios.bundle?platform=ios&dev=true&minify=false&hot=true"];
here 192.168.1.16
change it to your PC local IP address
If u are using IOS Simulator, follow the menu Hardware > Shake Gesture
, and click the Enable Live Reload
option.
Hope it helps! :)
If you are running the app on your actual native device. Then shake the device and it will pop up the me menu.
来源:https://stackoverflow.com/questions/38772373/how-to-enable-live-reload-in-ios-device-running-react-native-app