使用设备上预先捆绑的文件来响应本机,即使DEV模式
几天前,当我在一个设备上构build并运行Xcode的原生应用程序时,我意识到即使将我的scheme设置为Debug,应用程序仍然从预先捆绑的文件加载。 除此之外,其他一切就像开发者模式。 我可以摇动设备和开发人员popup窗口,在控制台我得到输出,并反应本机也日志:
使用appParams运行应用程序“XXXXX”:{“rootTag”:1,“initialProps”:{}}。 DEV === true,开发级别警告为ON,性能优化为OFF
所以,当我尝试从开发人员重新加载时,它确实重新加载,但与消息
从预先捆绑的文件加载
我试图删除应用程序,validationdebuggingscheme,干净的构build,并build设和再次运行,没有任何不同的结果。
有没有人有线索可能造成这种情况(我一直在运行应用程序与释放计划之前,但从来没有这个问题),我怎么能回到“正常”?
不幸的是我不知道如何重现这一点。
- Xcode:8.2.1
- React-native:0.40.0
感谢您的时间!
解决了
在我的情况下,这是作为@ while1指出有关的WiFi。 我的设备和电脑没有连接到相同的无线networking。 然而,我在我工作的地方发现了一个networking,即使连接到这个networking的计算机和设备(也许被保护了),它仍然不起作用。 不pipe怎样,当我从我的iPhone上将我的互联网连接分享给我的电脑时,应用程序终于从我的电脑中加载了数据。 所以确实是iPhone无法连接到我的电脑,因此加载了一个预先捆绑的文件。
在反应原生0.40.0,React本地尝试猜测束位置本身。 请看以下几点是否有帮助:
-
确保你的AppDelegate.m有这一行:
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]
; -
检查你的设备和你的Xcode mac是否在同一个wifi上运行。 内部的IOS,反应本机尝试猜测IP本身。
-
尝试先通过命令行运行应用程序,所以dev包装服务器正在运行,然后通过设备中的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
干杯:)
对于那些连接到相同的Wi-Fi,但与本地主机不同的IP地址(你已经在RCTWebSocketExecutor.m
设置):
检查Xcodedebugging控制台,如果你能find以下错误:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
-
使用以下答案: https : //stackoverflow.com/a/32704702/3979621
-
然后使用Codesingh的答案。 顺便说一句,我build议使用
#ifdef DEBUG
指令如下,以便您不必在生成变体之间切换时手动更改它:
。
#ifdef DEBUG jsCodeLocation = [NSURL URLWithString:@"http://xxx.xxx.xxx.xxx:8081/index.ios.bundle?platform=ios&dev=true"]; #else jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; #endif
- 如何运行React-Native示例?
- 似乎你正试图从“react-native”包中访问“ReactNative.Component”
- React Native 0.40.0:RCTBundleURLProvider.h“文件未find – AppDelegate.m
- 在React Native中获取ScrollView的当前滚动位置
- React-Native提取,networking请求失败。 不使用本地主机
- 无法在React Native中显示图像
- 反应本机:在iPad 2模拟不需要的黑色边框
- React Native TextInput模糊会消耗TouchableHighlight新闻事件
- 反应原生UIExplorer将无法打开