react native 真机调试appdelegate.m找不到ip地址的处理

本文介绍了React Native iOS版本0.29.0之后的重大更新,包括如何利用RCTBundleURLProvider进行真机调试,手动设置IP的方法以及相关配置。

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

现象

对着书本及网上文章,如果要进行真机调试,得修改appdelegate.m里的ip,但高版本的react native已经做了大变动。 
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。

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

解决方法

手动设置IP 
RCTBundleURLProvider在接口中暴露了jsLocation属性,可以通过setJsLocation手动设置IP。

NSURL *jsCodeLocation;

[[RCTBundleURLProvider sharedSettings] setDefaults];

if DEBUG

[[RCTBundleURLProvider sharedSettings] setJsLocation:@”192.168.3.13”];

endif

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

另需要在Info设置NSAppTransportSecurity的NSAllowsArbitraryLoads为true即可。

总之 
RCTBundleURLProvider类做了一些消息和属性的封装,可以通过判断是否DEBUG环境然后做不同的设置。

### 如何在 IntelliJ IDEA 中设置和使用 React Native 进行开发 #### 设置开发环境 为了成功地在IntelliJ IDEA中进行React Native项目的开发,需要安装并配置一系列依赖项。这包括Node.js、React Native CLI命令行工具、Python2以及JDK 1.8版本[^1]。 #### 安装必要的插件和支持工具 对于更高效的开发体验,建议安装专门针对React Native设计的IDEA插件——React Native Tools扩展工具。此工具不仅提供了良好的开发环境,还具备诸如代码调试、快捷执行`react-native`命令等功能,并且能够实现代码自动补全、对象查浏览等特性[^2]。 #### 创建新项目 当一切准备就绪之后,在命令行界面输入如下指令来初始化一个新的React Native应用: ```bash npx @react-native-community/cli init AwesomeProject --version=0.67.1 ``` 这条语句会基于指定版本创建名为AwesomeProject的应用程序框架结构[^3]。 #### 配置网络连接与打包选项 如果打算让应用程序访问本地服务器上的资源,则需调整iOS平台下的AppDelegate文件中的jsCodeLocation变量指向正确的主机地址而非默认localhost(即127.0.0.1),例如将它设为实际机器所在的局域网内的IP地址,同时保持开发者模式开启状态以便于实时更新源码变化效果[^4]。 #### 解决可能出现的语言特征识别问题 有时可能会遇到HTML标签内嵌JavaScript表达式未能被正确认知的情况;对此可以通过进入IDEA偏好设置菜单路径:“Preferences -> Languages and Frameworks -> JavaScript”,然后把language version选项设定成JSX Harmony以启用对React JSX语法的支持功能[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值