我有一个反应本机应用程序,如果我在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上没有此错误
- 在Xcode或NPM/YARN上运行该应用
- 在模拟器出版社上打开应用程序后:CMD D
- 剪辑"配置捆绑器"
- 现在您有3个输入:
- ID:0.0.0.0:替换127.0.0.1
- Porst:8081:替换:8081
- 最后一个输入:索引:空