React Native iOS构建失败:找不到原生模块‘ExpoSecureStore’(M1 Mac、Hermes)
React Native iOS模拟器构建失败:Cannot find native module 'ExpoSecureStore'
问题描述
在iOS模拟器上运行React Native项目时,构建持续失败,报错:
Error: Cannot find native module 'ExpoSecureStore'

环境信息
- Mac:M1
- Node.js:v22.12.0
- npm:11.2.0
- React Native:0.74.5
- Expo:~51.0.39
- Hermes:已启用
已尝试的解决步骤
- 在ios/目录下执行
pod install - 删除
node_modules、package-lock.json和ios/Pods后,重新执行npm install和pod install - 确认
package.json中已包含expo-secure-store - Android模拟器上运行正常
解决建议
1. 重新执行Expo预构建
Expo 51依赖预构建机制管理原生模块,执行命令重新生成iOS原生代码:
npx expo prebuild --clean -p ios
完成后进入ios目录重新执行pod install,再启动模拟器。
2. 适配M1芯片架构
M1芯片可能存在兼容问题,按以下操作处理:
- 右键点击Xcode图标→显示简介→勾选「使用Rosetta打开」
- 进入ios目录,删除
Podfile.lock和Pods文件夹,执行:
arch -x86_64 pod install
3. 检查Xcode项目依赖
- 打开ios目录下的
.xcworkspace文件 - 进入项目的
Build Phases→Link Binary With Libraries,确认存在ExpoSecureStore.framework - 若缺失,点击
+按钮搜索并添加该框架
4. 彻底清理缓存
执行以下命令清理Expo和Metro缓存:
npx expo start --clear rm -rf ~/.expo/cache
5. 匹配SDK对应版本
Expo 51对应的expo-secure-store版本应为~12.0.1,检查package.json,版本不匹配则重新安装:
npm install expo-secure-store@~12.0.1
6. 验证模块导入方式
确保代码中导入语句正确:
import * as SecureStore from 'expo-secure-store';
避免错误的导入路径或模块名称。
内容的提问来源于stack exchange,提问作者Elaine Kong
相关产品推荐
相关产品推荐

