几天前,当我在设备上通过 Xcode 构建和运行我的 React Native 应用程序时,我意识到即使我将方案设置为调试,该应用程序仍会从预捆绑文件中加载。除此之外,其他一切都像开发者模式。我可以摇动设备和开发人员弹出窗口,在控制台中我得到输出,并且 react native 也记录:
Running application "XXXXX" with appParams: {"rootTag":1,"initialProps":{}}. DEV === true, development-level warning are ON, performance optimizations are OFF
因此,当我尝试从开发人员那里重新加载时,它确实会重新加载,但会显示消息
Loading from pre-bundled file
我已尝试删除应用程序、验证调试方案、清理构建、构建并再次运行,但没有任何不同的结果。
有没有人知道是什么原因造成的(我之前一直在使用 Release Scheme 运行该应用程序,但从未遇到过这个问题),以及如何恢复“正常”状态?
不幸的是,我不知道如何重现这一点。
- Xcode:8.2.1
- React-native:0.40.0
感谢您的宝贵时间!
已解决
就我而言,就像@while1 指出的关于 wifi 的情况一样。我的设备和计算机未连接到同一个 wifi。然而,我在我的工作地点发现了一个网络,但它仍然无法工作,即使计算机和设备都连接到该网络(可能以某种方式受到保护?)。无论如何,当我从我的 iPhone 共享我的互联网连接到我的电脑时,该应用程序最终从我的电脑加载了数据。所以确实是 iPhone 无法连接到我的电脑,因此加载了一个预先捆绑的文件。
最佳答案
在 React Native 0.40.0 中,React Native 尝试自行猜测包位置。请查看以下几点是否有帮助:
确保你的 AppDelegate.m 有这一行:
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios"fallbackResource:nil]
;检查您的设备,您的 Xcode mac 正在同一 wifi 上运行。 IOS内部,react native尝试自己猜ip。
尝试先通过命令行运行应用程序,以便开发打包服务器运行,然后通过设备中的 xcode 运行应用程序。
关于ios - React Native 使用设备上的预捆绑文件,即使是 DEV 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41713678/