在iPhone模拟器运行React Native遇iOS报错,Android运行正常求助
iOS启动失败问题解决方案
问题概述
- Android平台运行正常,iOS平台无法启动
- Xcode报错:
'value' is unavailable: introduced in iOS 12.0 - 终端编译警告:
warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] static NSUInteger RCTDeviceTotalMemory()
修复步骤
1. 解决iOS版本兼容问题
检查代码中调用value的位置,确认是否使用了iOS 12.0及以上才支持的API:
- 若需兼容更低版本iOS,给该API添加版本判断,为低版本系统提供替代逻辑;
- 若无需兼容低版本,直接在Xcode项目设置中,将iOS Deployment Target(iOS部署目标)调整为12.0或更高版本。
2. 修复C函数原型警告
找到RCTDeviceTotalMemory()的定义文件,修改函数声明为带完整原型的形式:
static NSUInteger RCTDeviceTotalMemory(void)
该修改可消除-Wstrict-prototypes警告,避免严格编译模式下警告被判定为错误导致编译失败。
3. 清理项目缓存
执行以下命令清理React Native缓存与iOS依赖,排除旧编译产物干扰:
rm -rf node_modules && npm install cd ios && pod deintegrate && pod install && cd .. npx react-native clean
内容的提问来源于stack exchange,提问作者Vinver
相关产品推荐
相关产品推荐

