当我运行一个react-native项目时,我得到一个错误,没有bundle URL,但我不知道我做了什么错误,我很困惑。
当前回答
解决错误No bundle URL present by:
在你的项目根目录中运行以下命令删除iOS构建目录,并在重新构建之前杀死其他React Native会话(假设它们运行在默认端口8081上):
Rm -rf ios/build/;Kill $(lsof -t:8081);react-native run-ios
更新你的React Native工作流,通过将上述命令组合成一个别名,并将其附加到你的Bash配置文件.bashrc,以避免这些错误发生:
Echo "alias rni=\"kill \$(lsof -t -i:8081);Rm -rf ios/build/;React-native run-ios\"" >> ~/.bashrc;源~ / . bashrc
现在你可以用一个简单的别名快捷方式运行React Native iOS构建(不用担心出现一些常见的红色死亡错误屏幕):
rni
其他回答
关闭模拟器和终端。打开一个新的并进入你的项目,然后像这样升级你的react-native:
react-native upgrade
问题:当bundle执行失败时,RCTFatal中的无限递归。
我尝试了下面所有的解决方案,但都不起作用:
Sudo xcodebuild -license或 使用rm -r build删除build文件夹并运行react-native run-ios或 NPM启动并运行react-native run-ios 添加NSAppTransportSecurity到localhost
我是这样解决的:
打开主机文件sudo vi /private/etc/hosts(如果你使用VSCode,使用这个sudo code /private/etc/hosts) 如果不存在,添加三行
127.0.0.1 localhost
255.255.255.255 localhost
::1 localhost
再次运行react-native Run -ios。
这是react-native v0.42.1的一个问题。尝试关闭所有终端和XCode实例并运行:
launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version
react-native run-ios
我发现绕过这个最简单/最快的方法是在模拟器中退出应用程序(2 x Cmd + Shift + H)并重新启动。
假设你正在使用nvm并且安装了多个版本的node,下面是解决方案:
假设你在节点v6.9.5中运行npm install -g react-native-cli。 现在运行nvm alias default 6.9.5将节点v6.9.5设为默认值 现在运行react-native run-ios
问题是,你通过nvm安装了多个版本的node,为了安装react-native-cli,你已经切换或安装了最新版本的node,它还没有被标记为nvm中的默认节点。当你运行react-native run-ios时,会打开另一个新的终端窗口,其中默认的nvm不会指向你安装react-native-cli的节点版本。只要遵循上面的设置,我希望能有所帮助。
推荐文章
- 如何在iOS上进行base64编码?
- 如何设置背景颜色的视图透明在React本地
- 是否有可能更新一个本地化的故事板的字符串?
- 以编程方式获取Bundle Identifier
- 为iPad和iPhone设计输入按钮
- 如何在我的iPhone应用程序中使用NSError ?
- 我的预发行应用已经在iTunes Connect中“处理”了一周多,这是怎么回事?
- Xcode iOS项目只显示“我的Mac 64位”,但不显示模拟器或设备
- Objective-C中的自动引用计数不能防止或减少什么样的泄漏?
- 对象作为React子对象无效。如果要呈现子元素的集合,请使用数组
- 在Xcode 9中如何从打开的多个模拟器中退出或关闭单个模拟器?
- Redux @connect装饰器中的“@”(at符号)是什么?
- 如何使用Swift播放声音?
- UINavigationBar自定义返回按钮没有标题
- 如何精确地以毫秒为单位记录方法的执行时间?