我正在运行一个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"
}
}
}
2条答案
按热度按时间bxjv4tth1#
我会尝试:
1.做所有标准的事情,比如删除
node_modules
,pod文件夹,也许是pod锁文件,当然要尝试使用yarn。1.将Cocoapods升级到最新版本。
1.升级
react-native
,目前最新的是0.72.6
。1.升级
expo
及其模块。qaxu7uf22#
加上 Alexandria 达尼洛夫的回答,
npx expo install --fix
以修复潜在问题npx expo prebuild
以生成ios目录,或者您可以运行将生成ios目录作为其工作流程一部分的应用程序