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

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

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

【问题讨论】:

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

标签: react-native


【解决方案1】:

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

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

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

  2. 然后运行以下命令:

    yarn build:ios or npm run build:ios

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

  4. 运行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】:

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

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

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

      3. 点击您的应用。

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

      【讨论】:

        【解决方案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 解决这个问题。
          猜你喜欢
          • 2018-12-03
          • 2018-05-21
          • 1970-01-01
          • 2021-05-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-06
          • 2018-05-17
          • 1970-01-01
          相关资源
          最近更新 更多