react-native 不存在捆绑 URL

Posted

技术标签:

【中文标题】react-native 不存在捆绑 URL【英文标题】:react-native No bundle URL present 【发布时间】:2017-08-14 13:48:57 【问题描述】:

尝试执行react-native run-ios 时出现以下错误(请参见下面的屏幕截图)。我检查了this answer 和github thread,但都没有帮助。

关于看什么或如何完成这项工作的任何想法?这个问题似乎与 ios 无关,因为 android 模拟器工作正常。看起来可能是 Facebook 代码的某种错误。

【问题讨论】:

What means of no bundle URL present in react-native?的可能重复 @Moussawi7 - 是的,我在问题中提到我已经检查过了,但没有帮助。 尝试在 Appdelegate.m 中使用 `jsCodeLocation = [NSURL URLWithString:@"localhost:8081/index.ios.bundle"]; ` 而不是当前的 jsCodeLocation 值使用你的 ip 和端口 @Hariks - 感谢您的建议。这没有什么区别,因为我仍然遇到同样的错误。 当我从 Appdelegate.m 中删除 jsCodeLocation 时,我能够重现该问题。请分享您的 Appdelegate.m 文件,我想问题就在那里 【参考方案1】:

你的问题是iOS的文件main.jsbundle部分不是一直生成或者有时生成,而是错误的。要解决此问题,请按以下步骤操作:

    package.json的脚本中添加以下行

    "build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'"

    然后运行以下命令:

    yarn build:ios or npm run build:ios

    打开Xcode,选择“项目”,然后点击项目名称;转到“构建阶段”,然后单击“复制构建资源”作为您的main.js 捆绑包

    运行react-native run-ios

这对我有用

【讨论】:

【参考方案2】:

对我来说,我没有安装 watchman。要检查您是否安装了它,您可以从终端运行brew list。如果您没有看到列出的守望者,只需运行brew install watchman

注意:如果您在安装过程中遇到此错误:

Error: Xcode alone is not sufficient on Sierra.
Install the Command Line Tools:
  xcode-select --install

您需要安装 Xcode 命令行工具。所以,从你的终端运行xcode-select --install。工具安装完成后,需要重新运行brew install watchman。然后您应该可以通过运行react-native run-ios 来启动您的项目。

【讨论】:

【参考方案3】:

我在开发时也遇到了这个错误。在模拟器中试试这个解决方案:

    按住 shift + cmd + H 两次以调出正在运行的应用程序

    然后在您要删除的应用上向上滑动。

    点击您的应用。

这对我有用,在查看了无数解决方案之后,这就是我真正需要做的!希望这会有所帮助。

【讨论】:

【参考方案4】:

对于那些仍然感兴趣的人,我通过运行解决了这个问题

react-native start

在当前终端窗口中启动打包程序并在其他终端窗口中运行

react-native run-ios

【讨论】:

【参考方案5】:

当我在不同的计算机上处​​理同一个 react-native 项目时,就会发生这种情况。关闭模拟器并删除 ios > build 文件夹,然后再次运行 react-native run-ios 为我解决了这个问题。

【讨论】:

这个答案为我解决了一个问题。正如作者提到的,我的情况是我为同一个项目使用两台计算机【参考方案6】:

我通过以下解决方案解决了这个问题:

编辑<your_project_folder>/ios/<project_name>/AppDelegate.m 并更改jsCodeLocation 变量如下:

jsCodeLocation =
    [NSURL URLWithString:@"http://127.0.0.1:8081/index.ios.bundle?platform=ios&dev=true"];

【讨论】:

我已经尝试了十几个建议,这是为我解决问题的建议,谢谢!请注意:请记住保留原始行的注释,您可能需要该行用于生产构建。 这个解决方案看起来很老套。我会先检查您的主机文件中是否有127.0.0.1 localhost,然后清理项目并重试。【参考方案7】:

在模拟器已经运行后试试这个:

npm 安装

react-native run-ios

【讨论】:

没有区别,仍然收到关于捆绑包的相同错误。 这适用于我使用 getting started 指令构建的反应原生应用程序。然后,如果我使用react-native run-ios 运行我的应用程序,等待打包程序窗口加载其依赖关系图,然后返回我运行run-ios 命令的终端窗口,执行npm install,然后重新运行@ 987654325@,我可以运行我的应用程序。但是每次我停止并启动 packager / run-ios 时我都必须这样做。 @mheavers - 我刚刚使用最新的 react-native 版本再次尝试,但仍然无法正常工作。 嗯——如果我删除了 build 文件夹,它也对我有用,这显然不是一个好的长期解决方案,但让事情运行起来以便我可以测试。无论如何,期待 Facebook 解决这个问题。

以上是关于react-native 不存在捆绑 URL的主要内容,如果未能解决你的问题,请参考以下文章

反应本机 ios 没有捆绑 URL 存在问题

谁捆绑了 react-native 代码?

react-native Metro 捆绑器错误:捆绑失败:ReferenceError:文件的 SHA-1

React-Native Metro 捆绑器无法提供任何文件

<REACT-NATIVE> 从预捆绑文件加载,我想从端口:8081 加载,id 怎么办?

react-native 捆绑失败:错误:找不到模块 /metro-react-native-babel-transformer/src/index.js