不存在捆绑 URL(反应原生)

Posted

技术标签:

【中文标题】不存在捆绑 URL(反应原生)【英文标题】:No bundle URL present (react native) 【发布时间】:2017-10-12 11:23:24 【问题描述】:

刚刚安装了 react native 并试图让 Hello World 启动并运行。过去几个小时一直收到此错误:

 "No bundle URL present.Make sure you're running a packager server
 or have included a .jsbundle file in your application bundle."

我已经提到了这个:What means of no bundle URL present in react-native? 和其他类似的问题,并尝试了一切:使用我的 IP 地址,运行和不运行时 react-native run-iso 和 npm install 的不同组合,尝试删除构建,清理项目,重启Xcode,模拟器多次,尝试react-native-upgrade,编辑成.plist允许任意加载,手动设置我的index.ios.js的路径,一切正常。

我注意到很多人在尝试在他们的设备上构建时遇到了这个问题。我不想做任何花哨的事情,只是让“hello world”启动并运行。

还有其他我不知道的解决方案吗?

【问题讨论】:

阅读您的问题后,我不知道您在哪个页面,但是最简单的方法可能是通过 react-native start 命令运行服务器... What means of no bundle URL present in react-native?的可能重复 【参考方案1】:

要进行调试,最好的第一步是滚动浏览终端窗口中输出的日志文本,在该窗口中您触发了“npx react-native run-ios”并搜索“错误”或“失败”之类的词。这将为您指出比一般的“没有捆绑 URL 存在”错误更具体的内容。

例如,您可能会看到类似“BUILD FAILED以下构建命令失败:ProcessInfoPlistFile”的内容。在这个例子中,我会知道去检查我的 Info.plist。您可能会看到一些不同的东西,但调试方法仍然是相同的。

如果您尝试运行 iOS,另一个想法是使用 Xcode 本身构建您的应用程序,方法是使用 Xcode 打开 .xcworkspace,然后查看其错误消息。

同样,如果您尝试运行 android,请尝试使用 Android Studio 运行并查看其错误消息。

【讨论】:

【参考方案2】:

在真实设备中运行时遇到类似问题,上传到 testflight 上传和安装后会崩溃,这个问题是致命的

通过此链接保存 https://onexlab-io.medium.com/no-bundle-url-present-fixed-ca2688a80f66

【讨论】:

您好,欢迎来到堆栈溢出。不要仅仅链接到回答问题的网页,请花点时间在此处提供答案并通过引用链接文章来支持它。【参考方案3】:

对我有用的解决方案。

你需要运行:

yarn start

同时(在不同的终端窗口中):

yarn run:ios

【讨论】:

【参考方案4】:

按照以下步骤解决此问题::

    打开终端窗口 cd 进入 YOUR_PROJECT/ios 删除带有rm -r build 的构建文件夹 再次运行react-native run-ios

或者,您可以打开 Finder,导航到 YOUR_PROJECT/ios 并删除构建文件夹。然后再次运行react-native run-ios

【讨论】:

【参考方案5】:

cd 到YOUR_PROJECT/iosrm -r build,然后再次运行react-native run-ios

【讨论】:

然后我们需要移动到项目中,使用 react-native run-ios 命令。谢谢它对我有用。 构建目录对我来说不存在 - 我猜它已经清理了???根据reactnative.dev/docs/environment-setup,我只是使用expo 解决方案在我的实际iPhone 设备(而不是模拟器)上运行 我也没有构建目录@HankCa,你能找到解决方案吗? 不,我暂停了 React Native 的工作。我很快就会重新开始。首先我会阅读newline.co/fullstack-react-native(除了我喜欢 newline.io 书籍和商业模式之外,我没有任何隶属关系)。他们还有一篇文章-newline.co/@kchan/…,我不确定这是否来自书中。我会关注大量其他资源,包括blog.crowdbotics.com/…。这项技术最难的部分是需要了解原生平台以及 React。【参考方案6】:

在我运行以下命令清理项目以查看由于缓存等原因不可见的更改后,我遇到了这个问题:

watchman watch-del-all
rm -rf node_modules && npm install
rm -rf /tmp/metro-bundler-cache-* or npm start -- -- reset-cache
rm -rf /tmp/haste-map-react-native-packager-*  

问题的原因在于 dom-structure 中的注释,它没有让应用程序在设备上运行。 所以,也要检查 cmets ;)

【讨论】:

【参考方案7】:

运行以下代码:

killall -9 node
rm -rf ios/build
react-native run-ios

它将打开launchpackager.command,应用程序将安装在ios模拟器上

【讨论】:

【参考方案8】:

我有同样的问题,我的问题是 info.plist 我只是 配置如下:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSAllowsArbitraryLoadsInWebContent</key>
        <true/>
        <key>NSAllowsLocalNetworking</key>
        <true/>
    </dict>

来自这个解决方案https://***.com/a/48471978/1627358

然后使用以下命令添加 Bash 配置文件 .bashrc:

echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc

然后运行rni

来自这个解决方案https://***.com/a/44080527/1627358

它对我很有效。

【讨论】:

【参考方案9】:

我在尝试将文件同步到 iCloud Drive 时遇到了这个问题。我不知道是什么原因造成的,但是当我关闭 iCloud Drive 并重新安装 brew 和 Node 后,它又开始工作了。我只能认为,当我打开 iCloud Drive 时,我可能最终拥有了两个不同的 Node 版本或任何其他依赖项。

【讨论】:

【参考方案10】:

假设您使用nvm 并安装了多个版本的节点,这里是解决方案:

    假设您在node v6.9.5 中运行npm install -g react-native-cli。 现在通过运行nvm alias default 6.9.5node v6.9.5 设为默认值 现在运行react-native run-ios

问题是,您通过nvm 安装了多个版本的节点,并且要安装react-native-cli,您已经切换或安装了最新版本的节点,该节点尚未标记为指向nvm 的默认节点。当您运行react-native run-ios 时,这会打开另一个新的终端窗口,其中默认的nvm 不指向您安装react-native-cli 的节点版本。只需按照上面的设置,我希望这会有所帮助。

在这里回答相同:https://***.com/a/45267703/1292050

【讨论】:

这解决了我的问题,因为 diff 节点版本是默认的,并且 run-ios 命令会弹出一个新的终端窗口,该窗口默认为超级旧节点版本。感谢您的提示!【参考方案11】:

不久前我也遇到了同样的问题。看来,如果您将项目重命名为其他名称并且项目文件夹本身已重命名,则需要确保将旧名称的所有实例替换为新名称,并且不要忘记在 ProjectName 中更改 .xcscheme 的文件名> ios > ProjectName.xcodeproj > xcshareddata > xcschemes。我还必须删除构建目录。希望这也适用于您!

【讨论】:

以上是关于不存在捆绑 URL(反应原生)的主要内容,如果未能解决你的问题,请参考以下文章

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

react-native 不存在捆绑 URL

反应原生,捆绑失败

捆绑“ApplicationSonataUserBundle”不存在或未启用

指定的捆绑 iOS 应用程序中不存在许可证文件

创建反应原生项目时如何定义自己的包名称/捆绑标识符