连接到 chrome 调试器时无法 运行 CodePush 离线包。将 React Native 与 iOS 结合使用

Unable to run CodePush offline bundle when connected to chrome debugger. Using React Native with iOS

我将 CodePush 与 React Native 和 iOS 结合使用。当使用 CodePush 连接到 chrome 调试器时,在使用 CodePush 离线包时,我收到此错误:

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.

当我切换到本地包或禁用 [​​=24=] 调试器时错误消失。

有什么想法吗?谢谢。

您能否确认在 AppDelegate.m 文件中将 JS 包位置设置为 [NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"] 然后启用 Chrome Debugging 时没有看到同样的错误?据我了解,当您的应用程序从打包程序加载 JS 包时,您只能启用 Chrome 调试,因为使用 [CodePush bundleURL] 是从磁盘加载您的 JS 包(您的二进制文件中包含的包或最新的 CodePush 更新),它自然不支持 Chrome 调试场景。

我们已完成工作以确保 CodePush 插件将与打包器协同工作,以便开发人员可以使用他们的自然调试工作流程(例如 livereload、Chrome 支持)而无需更改任何内容只是为了用 CodePush 支持 testing/co-existing。我们的文档目前建议对 iOS 使用以下解决方案,我很想知道是否存在我们遗漏并可以改进的场景:

NSURL *jsCodeLocation;

#ifdef DEBUG
    jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
#else
    jsCodeLocation = [CodePush bundleURL];
#endif