React Native 开发报错 No bundle URL present

本文介绍了解决React Native应用在真机调试时出现NobundleURL问题的方法。通过设置正确的本地服务器IP地址,确保调试过程中正确加载.js bundle文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RN开发时候会遇到 模拟器正常调试;

但是真机调试的时候出现 :No bundle URL present

Make sure you’re running a packager server or have included a .jsbundle file in your application bundle

那么怎么解决呢?请往下看,大家经常用的代码 :

RN跳转的时候会用到:

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@”index.ios” fallbackResource:nil];

但是这个方法是干哈的呢?有人是这样解释的:

React Native iOS在0.29.0版本中BundleURL加载方法做了重大改变,新增了RCTBundleURLProvider单例类专门处理BundleURL,使用NSUserDefaults保存配置信息。 
默认加载方式 
在Debug模式下,执行react-native-xcode.sh编译脚本会自动获取当前网卡en0的IP地址,并打入App包中一个配置文件ip.txt,App运行时会读取ip文件,自动生成Developer Server URL,通过这种加载方式,我们不再需要手动去把”localhost”改成Mac的IP了,每次编译都会读取当前最新的IP。

也就是说,真机调试的时候你这个地址其实是固定的,解决的方式就是增加一个判断:debug的时候,让地址变成你电脑的IP他就可以获取到地址,就可以真机调试了:

NSURL *jsCodeLocation;

[[RCTBundleURLProvider sharedSettings] setDefaults];

#if DEBUG

[[RCTBundleURLProvider sharedSettings] setJsLocation:@”192.168.17.22”];   //此处是你调试电脑的IP,不要乱写

#endif

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@”index.ios” fallbackResource:nil];


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值