索诺马14.0更新后无法在react-native / expo中安装cocoapods

4ktjp1zp  于 2023-10-22  发布在  React
关注(0)|答案(2)|浏览(153)

我正在运行一个react-native / expo项目,自从操作系统更新以来,我一直无法安装cocoapods。我试着排除了所有其他的可能性(将cocoapods的安装从homebrew改为gem-install,将我的包管理器从pnpm改为基于https://github.com/facebook/react-native/issues/36639的指导的yarn,运行npx take-doctor并实现所有的建议)。我的package.json没有变化,我的Podfile也没有变化,但是在OS更新之前完全稳定的项目中,每次安装都会失败,并出现此错误

Command `pod install` failed.
└─ Cause: Invalid `Podfile` file: cannot load such file -- /Users/aaronwilson/code/shady-pines-radio-mobile/node_modules/react-native/node_modules/@react-native-community/cli-platform-ios/native_modules.rb
Debugger listening on ws://127.0.0.1:63887/95c74ddc-96c1-4f12-82d7-d10b8ae57211
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
Waiting for the debugger to disconnect....

 #  from /Users/aaronwilson/code/shady-pines-radio-mobile/ios/Podfile:2
 #  -------------------------------------------
 #  require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
 >  require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
 #  
 #  -------------------------------------------

作为参考,这是我的package.json

{
  "name": "shady-pines-radio-mobile",
  "main": "expo-router/entry",
  "version": "0.0.3",
  "scripts": {
    "start": "expo start",
    "android": "expo run:android",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "test": "jest --watchAll"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "@babel/preset-env": "^7.22.10",
    "@expo/metro-runtime": "^2.2.5",
    "@expo/vector-icons": "^13.0.0",
    "@gorhom/bottom-sheet": "^4",
    "@react-native-google-signin/google-signin": "^10.0.1",
    "@react-native-masked-view/masked-view": "^0.2.9",
    "@react-navigation/bottom-tabs": "^6.5.8",
    "@react-navigation/drawer": "^6.6.3",
    "@react-navigation/native": "^6.0.2",
    "@react-navigation/native-stack": "^6.9.13",
    "@react-navigation/stack": "^6.3.17",
    "@reduxjs/toolkit": "^1.9.5",
    "axios": "^0.27.2",
    "date-fns": "^2.30.0",
    "expo": "~49.0.7",
    "expo-apple-authentication": "~6.1.0",
    "expo-constants": "^14.4.2",
    "expo-dev-client": "^2.4.6",
    "expo-font": "~11.4.0",
    "expo-image": "^1.3.2",
    "expo-linking": "~5.0.2",
    "expo-modules-autolinking": "^1.5.0",
    "expo-modules-core": "~1.5.10",
    "expo-router": "2.0.0",
    "expo-splash-screen": "~0.20.5",
    "expo-status-bar": "~1.6.0",
    "expo-system-ui": "~2.4.0",
    "expo-web-browser": "~12.3.2",
    "http": "0.0.1-security",
    "lodash": "^4.17.21",
    "metro": "^0.76.7",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-native": "0.72.3",
    "react-native-dotenv": "^3.4.9",
    "react-native-fs": "^2.20.0",
    "react-native-gesture-handler": "~2.12.0",
    "react-native-onesignal": "^5.0.0",
    "react-native-reanimated": "^3.3.0",
    "react-native-safe-area-context": "4.6.3",
    "react-native-screens": "~3.22.0",
    "react-native-track-player": "^3.2.0",
    "react-native-vector-icons": "^10.0.0",
    "react-native-web": "~0.19.6",
    "react-native-webview": "^13.2.2",
    "react-redux": "^8.1.2"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0-0",
    "@babel/plugin-proposal-optional-chaining": "^7.21.0",
    "@babel/plugin-transform-arrow-functions": "^7.0.0-0",
    "@babel/plugin-transform-shorthand-properties": "^7.0.0-0",
    "@babel/plugin-transform-template-literals": "^7.0.0-0",
    "@babel/runtime": "^7.22.10",
    "@types/jest": "^29.5.3",
    "@types/lodash": "^4.14.197",
    "@types/react": "~18.2.20",
    "@types/react-native": "^0.72.2",
    "@types/react-test-renderer": "^18.0.0",
    "@types/webpack-env": "^1.18.1",
    "@typescript-eslint/eslint-plugin": "^5.62.0",
    "@typescript-eslint/parser": "^5.62.0",
    "confusing-browser-globals": "^1.0.11",
    "eas": "^0.1.0",
    "eslint": "^8.47.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-config-prettier": "^9.0.0",
    "eslint-import-resolver-alias": "^1.1.2",
    "eslint-import-resolver-node": "^0.3.9",
    "eslint-import-resolver-typescript": "^3.6.0",
    "eslint-plugin-import": "^2.28.0",
    "eslint-plugin-jsx-a11y": "^6.7.1",
    "eslint-plugin-no-date-parsing": "^1.0.1",
    "eslint-plugin-no-relative-import-paths": "^1.5.2",
    "eslint-plugin-prettier": "^5.0.0",
    "eslint-plugin-react": "^7.33.1",
    "eslint-plugin-react-hooks": "^4.3.0",
    "eslint-plugin-react-native": "^4.0.0",
    "eslint-plugin-unused-imports": "^3.0.0",
    "jest": "^29.2.1",
    "jest-expo": "~49.0.0",
    "prettier": "^3.0.2",
    "react-test-renderer": "18.2.0",
    "typescript": "^5.1.3"
  },
  "overrides": {
    "react-refresh": "~0.14.0"
  },
  "resolutions": {
    "react-refresh": "~0.14.0"
  },
  "private": true,
  "pnpm": {
    "overrides": {
      "semver@>=7.0.0 <7.5.2": ">=7.5.2"
    }
  }
}
bxjv4tth

bxjv4tth1#

我会尝试:
1.做所有标准的事情,比如删除node_modules,pod文件夹,也许是pod锁文件,当然要尝试使用yarn。
1.将Cocoapods升级到最新版本。
1.升级react-native,目前最新的是0.72.6
1.升级expo及其模块。

qaxu7uf2

qaxu7uf22#

加上 Alexandria 达尼洛夫的回答,

  • 检查您是否使用Xcode版本15,如果不是,请降级/升级到它,因为它是Expo 49支持的最新版本
  • 将react native更新为0.72.5(expo推荐)
  • 尝试在应用目录上运行npx expo install --fix以修复潜在问题
  • 如果您遵循expo工作流程,请删除ios目录并运行npx expo prebuild以生成ios目录,或者您可以运行将生成ios目录作为其工作流程一部分的应用程序

相关问题