簡體   English   中英

如何在運行 React Native 應用程序的 iOS 設備中啟用實時重載?

[英]How to enable Live Reload in iOS Device running React Native app?

我正在嘗試啟用實時重新加載模式,但開發菜單中沒有這樣的項目: 沒有名為“實時重新加載”的項目

你出現這個問題主要是因為你的設備和你的開發機不在同一個局域網內。 檢查是否是。 確保您的計算機和您的設備連接在保存局域網中,一切都會好起來的。

畢竟你的設備連接到同一個局域網。 如果您使用的是 Xcode。

  1. 關閉 React Native 打包器(或者直接關閉終端窗口)
  2. 刪除 iOS 設備中的應用程序
  3. 清理 Xcode 項目。
  4. 運行命令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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM