skip to Main Content

I’m running a react-native / expo project and I have been unable to install cocoapods since the OS update. I’ve tried to rule out essentially every other possibility (changing the install of cocoapods from homebrew to gem-install, changing my package manager from pnpm to yarn based on this guidance https://github.com/facebook/react-native/issues/36639, running npx expo-doctor and implementing all of the suggestions). There has been no change to my package.json, and no change to my Podfile but install fails with this error every time in a project that was completely stable before the os update

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")
 #  
 #  -------------------------------------------

For reference, this is my 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

Answers


  1. I would try to:

    1. Do all standard stuff like removing node_modules, pods folder, maybe pod lock file, and surely try to use yarn while doing that.
    2. Upgrade Cocoapods to the latest.
    3. Upgrade react-native, currently the latest is 0.72.6.
    4. Upgrade expo and its modules.
    Login or Signup to reply.
  2. Adding to Alexander Danilov’s answer,

    • Check if you are using Xcode version 15, if not downgrade/upgrade to it as it’s the latest version supported by Expo 49
    • Update react native to 0.72.5 (recommended by expo)
    • Try running npx expo install --fix on your app directory to fix potential issues
    • If you are following expo workflow, Remove the ios directory and run npx expo prebuild to generate ios directories or you could run the app which would generate ios directory as part of its workflow
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search