Xcode编译React Native项目报RCT-Folly线程本地存储不支持错误
问题成因
该错误是RCT-Folly库使用的线程本地存储(Thread-local storage)特性和当前项目的编译目标不兼容导致的,常见触发原因有两个:
- 项目设置的iOS最低支持版本低于12.0,RCT-Folly较新版本的TLS特性最低要求iOS 12及以上系统
- RCT-Folly版本与当前React Native版本不匹配
可行解决方案
方案一:升级项目最低iOS版本(优先推荐)
- 打开Podfile,将顶部的
platform :ios, '11.0'修改为platform :ios, '12.4'或更高版本 - 打开Xcode项目,分别将项目主配置、Aware target、AwareTests target的「iOS Deployment Target」同步修改为12.4或更高版本
- 执行以下命令重装依赖:
rm -rf Pods Podfile.lock pod deintegrate && pod install --repo-update
- 清空Xcode的DerivedData文件夹后,使用.xcworkspace文件打开项目重新编译即可。
方案二:强制绑定RN官方匹配的RCT-Folly版本(适用于必须兼容iOS 11的场景)
- 打开Podfile,将注释掉的RCT-Folly引用行放开,修正转义问题后如下:
pod 'RCT-Folly', :podspec => '../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec'
- 同样执行方案一中的重装依赖、清理编译缓存的操作,重新编译即可。
额外排查项
如果以上操作仍未解决,检查Xcode Build Settings中的「Architectures」配置,移除armv7等32位架构,该类旧架构不支持线程本地存储特性。
内容的提问来源于stack exchange,提问作者Alex Skotner
相关产品推荐
相关产品推荐

