Mac M1设备React Native无ios/android目录,run-ios报错求助
解决React Native项目缺少iOS/Android目录的问题
先排查项目类型
打开项目根目录的package.json,检查依赖项:
- 如果包含
"expo": "^x.x.x",说明这是Expo管理的项目,默认没有原生目录,需要手动生成。 - 如果既没有expo依赖,也没有
react-native依赖,说明这不是标准的React Native项目,得重新初始化。
针对Expo项目生成原生目录
- 先安装expo-cli(未安装的话):
npm install -g expo-cli - 在项目根目录执行命令生成iOS/Android目录:
执行完成后就能看到ios和android目录,之后可以正常运行npx expo prebuildnpx react-native run-ios。
针对非Expo项目(裸项目)的修复
如果是初始化React Native项目时出错导致原生目录缺失,直接重新初始化更稳妥:
- 备份当前项目里的自定义代码,然后删除整个项目目录。
- 打开Rosetta终端(适配M1芯片),运行裸项目初始化命令:
(不用Rosetta直接运行arch -x86_64 npx react-native init YourProjectNamenpx react-native init YourProjectName也可,但部分依赖可能需要Rosetta支持) - 初始化完成后,项目会自动生成ios、android等完整结构,把备份的代码迁移过来即可。
额外注意事项
- 运行
react-native run-ios前,确保Xcode已打开并同意相关许可,同时在ios目录执行过pod install。 - M1芯片上如果遇到CocoaPods报错,可在ios目录运行
arch -x86_64 pod install。
内容的提问来源于stack exchange,提问作者JinyoungBang
相关产品推荐
相关产品推荐

