React Native-应用程序如何确定装置IP地址,在设备上找不到



我有一个反应本机应用程序,如果我在iOS模拟器上运行它,则可以连接到在localhost上运行的运行包装器:8081,但是,如果我尝试运行该运行在实际iOS设备上的应用程序会失败,因为它无法加载JS捆绑包,因为它找不到Packager服务。

我的设备和我的开发服务器都在同一WiFi网络上,该应用如何确定PACAKGER服务的居住地?如果我修改appdelegate.m文件并替换:

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
//with an explicit IP address, then the app works:
jsCodeLocation = [NSURL URLWithString:@"http://192.168.0.9:8081/index.ios.bundle?platform=ios&dev=true"];

我可能需要修改在实际设备上运行的任何提示,而无需明确修改此文件。

谢谢。

我通过将其添加到info.plist文件中暂时解决了此问题。

<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsLocalNetworking</key>
<true/>

我很长一段时间以来一直在旅行这个问题,并且看到该问题与iOS iPhone模拟器有关。这是我的解决方案,很容易,并且不强迫代码:

此解决方案适用于iPhone模拟器,您在物理iPhone上没有此错误

  1. 在Xcode或NPM/YARN上运行该应用
  2. 在模拟器出版社上打开应用程序后:CMD D
  3. 剪辑"配置捆绑器"
  4. 现在您有3个输入:
  5. ID:0.0.0.0:替换127.0.0.1
  6. Porst:8081:替换:8081
  7. 最后一个输入:索引:空

相关内容

  • 没有找到相关文章

最新更新