几天前,当我在设备上从Xcode构建并运行我的react本机应用程序时,我意识到即使我将我的方案设置为Debug,该应用程序仍然从预先捆绑的文件加载.除此之外,其他一切都像开发者模式.我可以摇动设备和开发人员meny弹出窗口,在控制台中我得到输出,并反应本机也日志:
使用appParams运行应用程序"XXXXX":{"rootTag":1,"initialProps":{}}.DEV === true,开发级别警告为ON,性能优化为OFF
因此,当我尝试从开发人员meny重新加载时,它确实重新加载但是带有消息
从预先捆绑的文件加载
我试图删除应用程序,验证调试方案,清理构建,构建并再次运行,没有任何不同的结果.
有没有人知道可能导致这种情况的原因(我之前一直在使用Release Scheme运行应用程序,但从来没有遇到过这个问题),以及我如何能够恢复"正常"状态?
不幸的是我不知道如何重现这一点.
Xcode:8.2.1
React-native:0.40.0
感谢您的时间!
就我而言,就像@while1指出的那样.我的设备和计算机没有连接到同一个wifi.然而,我在我工作的地方找到了一个网络,它仍然无法正常工作,即使计算机和设备都连接到这个网络(保护某种方式可能?).ANyway,当我从iPhone上将我的互联网连接分享到我的电脑时,应用程序终于从我的电脑上加载了数据.所以它确实是iPhone无法连接到我的电脑,因此加载预先捆绑的文件.
在本机0.40.0的反应中,React本地尝试自己猜测捆绑位置.请查看以下几点是否有帮助:
确保你的AppDelegate.m有这一行:jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]
;
检查您的设备,您的Xcode mac在同一个wifi上运行.在IOS内部,本地尝试自己猜测ip.
尝试首先通过命令行运行应用程序,因此开发包装器服务器正在运行,然后通过设备中的xcode运行应用程序.
所以你的问题在这里:
更改AppDelegate.m中的代码:
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; // comment this line jsCodeLocation = [NSURL URLWithString:@"http://xxx.xxx.x.xx:8081/index.ios.bundle?platform=ios&dev=true"]; //uncomment this line
干杯:)
由于我遇到了同样的问题,以上几点对我没有用。通过执行这些步骤,我成功了。
转到xcode->您的项目-> info.plist
在“应用程序传输安全设置”中,选择“允许任意加载”。
它应该解决此问题。