Expo SDK49迁移Google登录后run:ios报ENOTDIR错误求助
解决Expo SDK 49中使用@react-native-google-signin/google-signin时iOS构建的ENOTDIR错误
问题背景
升级Expo SDK 49后,替换原Google认证方案为官方推荐的@react-native-google-signin/google-signin库,执行npx expo run:ios构建iOS应用时触发以下错误:
Error: ENOTDIR: not a directory, open '<REST_OF_PATH>/ios/Pods/Headers/Private/AppAuth/AppAuth.h/package.json'
已尝试更新cocoapods、更新所有依赖包、删除并重装node_modules,但问题仍未解决。
可行修复步骤
- 清理iOS构建缓存与Pod依赖
- 删除iOS构建产物目录:
rm -rf ios/build - 进入iOS目录,清理Pod相关文件并重新安装:
cd ios pod deintegrate pod cache clean --all rm Podfile.lock pod install cd ..
- 删除iOS构建产物目录:
- 排查依赖版本冲突
该错误多因AppAuthPod的路径被错误识别为目录,大概率是依赖版本不兼容导致。尝试锁定@react-native-google-signin/google-signin到最新稳定版,再重新安装依赖:npm install @react-native-google-signin/google-signin@latest - 重置iOS原生项目配置
使用Expo预构建命令清理并重建iOS原生目录,确保配置与SDK 49兼容:
完成后再次执行npx expo prebuild --clean --platform iosnpx expo run:ios尝试构建。 - 检查Podfile配置
打开ios/Podfile,确认没有重复引入AppAuth的配置,确保@react-native-google-signin/google-signin的Pod配置未被手动修改导致路径异常。
内容的提问来源于stack exchange,提问作者TreyBCollier
相关产品推荐
相关产品推荐

