[英]How to enable Live Reload in iOS Device running React Native app?
你出現這個問題主要是因為你的設備和你的開發機不在同一個局域網內。 檢查是否是。 確保您的計算機和您的設備連接在保存局域網中,一切都會好起來的。
畢竟你的設備連接到同一個局域網。 如果您使用的是 Xcode。
npm start -- reset-cache
那么一切都會好起來的。
您需要從 AppDelegate 編輯jsCodeLocation
的源代碼。
主要問題是
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
默認情況下正在尋找localhost
,在模擬器中它將作為模擬器和電腦在同一台機器上工作,但對於設備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 地址
如果您使用的是 IOS 模擬器,請按照菜單Hardware > Shake Gesture
,然后單擊Enable Live Reload
選項。
希望有幫助! :)
就我而言,我有一個優先於 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 連接。
如果您在實際的本機設備上運行該應用程序。 然后搖動設備,它會彈出我的菜單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.