React Native运行iOS构建失败 RCTDatePickerManager编译错误求助
报错原因
该报错是Xcode 14及更高版本与0.70以下版本的React Native不兼容导致的,RCTDatePickerManager.m文件中未对高版本iOS的日期选择器属性做兼容判断,引发编译失败。
可执行解决方案
方案1:手动修复兼容代码(无需降级工具/升级依赖,优先推荐)
- 打开项目路径下的
node_modules/react-native/React/Views/RCTDatePickerManager.m文件 - 在日期选择器样式配置代码块前后新增版本判断,修改后代码如下:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 140000 if (@available(iOS 14.0, *)) { datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; } #endif- 修改保存后重新执行构建即可。如果想要永久生效,可以将该修改加入
patch-package补丁配置。
- 打开项目路径下的
方案2:升级React Native版本
直接将项目的React Native版本升级到0.70及以上,该版本官方已经修复了Xcode兼容问题,升级完成后重新安装依赖、执行
pod install再构建即可。方案3:降级Xcode版本
如果不想修改代码或升级RN,可将Xcode降级到13.x版本,也可正常构建项目。
缓存清理步骤(修改后仍报错可执行)
- 清理Xcode缓存:执行命令
rm -rf ~/Library/Developer/Xcode/DerivedData/* - 清理Pod缓存:进入项目ios目录,执行
pod deintegrate && pod install - 清理项目依赖缓存:执行
rm -rf node_modules && npm install
内容的提问来源于stack exchange,提问作者CleanCodeOnline
相关产品推荐
相关产品推荐

