当我运行一个react-native项目时,我得到一个错误,没有bundle URL,但我不知道我做了什么错误,我很困惑。
当前回答
关闭当前正在运行的React Packager终端窗口,然后从Xcode重新运行你的iOS项目应该可以工作。
其他回答
确保launchPackage.command在终端中运行,然后重试运行。它将构建捆绑包。它有点像webpack-dev-server。
解决错误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
原因:
这是因为应用程序无法找到服务器(通过javascript代码为UI服务)。
解决方案:
确保所有相关的react native关闭(不是必要的,只是为了我的解决方案有一个干净的开始,在我的解释后,你可以弄清楚这是需要的还是不需要的) 先运行NPM Run start或yarn start 等待此命令完成工作(通常你会看到加载依赖关系图,完成)。 运行react-native Run -ios/android
解释:
React Native包含2部分: 本地部分 Javascript部分 构建命令: React-native run-ios/android是构建本机部分,然后部署到设备上,并在设备上启动应用程序(模拟器/模拟器/真实设备)。这通常需要3~4分钟才能完成。 npm run start或yarn start是构建javascript部分,并启动开发服务器为应用程序提供构建的UI。这通常需要30秒完成。
通常情况下,javascript部分先完成,然后是本地部分。(根据他们使用的时间)。
=>这只适用于第一次构建(新鲜构建)。
=>重建:
原生部分只需要10~15秒来检查更改,因为在javascript部分构建和服务之前,原生部分=>没有更改。(我不确定javascript部分是否被重建,但它比本地部分花费了更长的时间) 这就是为什么我们有这个问题,应用运行时要求的东西还不存在。
奖金:
React-native run-ios/android会自动启动开发服务器。 这就是为什么当你在react-native init <app_name>之后运行react-native run-ios/android时,一切都运行得很好。(因为自动启动功能和新构建的时间是上面的状态)。 其他“移除”解决方案之所以有效,是因为它们迫使人们重建。
在这个答案上使用的时间是相对于我的机器=>可能不同于其他人。
对于我的用例,我必须删除node_modules目录并运行npm install。
$ rm -rf node_modules (make sure you're in the ios project directory)
$ npm install
如果你得到错误“dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.58。Dylib”,执行以下操作:
$ brew uninstall --force node --ignore-dependencies node
$ brew uninstall icu4c --ignore-dependencies icu4c
$ brew install icu4c
$ brew unlink icu4c && brew link icu4c --force
$ brew install node
$ npm install
使用命令
react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ./ios/release/main.jsbundle --assets-dest ./ios/release/main.jsbundle
推荐文章
- 在UITableView中检测哪个UIButton被按下了
- 为iOS模拟器构建,但链接框架'****.framework'是为iOS构建的
- iOS更新后保留旧的启动屏幕和应用程序图标
- 如何象征崩溃日志Xcode?
- 我如何得到一个plist作为一个字典在Swift?
- Xcode - ld:没有为- lpods找到库
- 自动调整掩码大小编程vs接口生成器/ xib / nib
- NSUserDefaults -如何判断一个键是否存在
- Xcode UI测试用例中的延迟/等待
- 裁剪一个UIImage
- 这个应用程序是否使用广告标识符(IDFA)?—AdMob 6.8.0
- iOS 7: UITableView显示在状态栏下
- 如何产生类似ios7模糊视图的效果?
- 在一个故事板,我如何使一个自定义单元用于多个控制器?
- 将故事板从iPhone转换为iPad