我在React Native和iOS上使用CodePush。当使用CodePush脱机 bundle 包连接到CodePush的chrome调试器时,出现以下错误:
Uncaught NetworkError:
Failed to execute 'importScripts' on 'WorkerGlobalScope':
The script at 'file:///Users/naderdabit1/Library/Developer/CoreSimulator/Devices/115F136F-…ation/B0ECCD9D-8274-4308-A9C7-BAA2746FDF02/StudentStatus.app/main.jsbundle'
failed to load.
当我切换到本地 bundle 包或禁用Chrome调试器时,错误消失了。
有任何想法吗?谢谢。
最佳答案
当将JS包位置设置为[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]
文件中的AppDelegate.m
并启用Chrome Debugging
时,您能确认没有看到相同的错误吗?据我了解,您只能在应用程序从打包程序加载JS bundle 包时启用Chrome调试,并且由于使用[CodePush bundleURL]
从磁盘加载JS bundle 包(二进制文件中包含的 bundle 包或最新的CodePush更新),因此自然不支持Chrome调试方案。
我们已经完成工作,以确保CodePush插件能够与打包程序协同工作,以便开发人员可以使用其自然的调试工作流程(例如livereload,Chrome支持),而无需更改任何内容即可支持测试/与之共存CodePush。我们的文档当前建议针对iOS使用以下解决方案,并且我很想知道是否存在我们缺少并可以改善的情况:
NSURL *jsCodeLocation;
#ifdef DEBUG
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
#else
jsCodeLocation = [CodePush bundleURL];
#endif