EAS iOS build error when upgrading expo 45 to 46

Hi Expo Forums,

We are attempting to upgrade from expo 45 to 46. After making the necessary updates to our project we are unfortunately failing the build process. During the “Run fastlane” action we have these 2 errors:

The following build commands failed:
	- CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target 'Stripe' from project 'Pods')
	- Ld /Users/expo/Library/Developer/Xcode/DerivedData/Ripples-gohaktoxtzzlspbjxbvldwkqvwgk/Build/Intermediates.noindex/ArchiveIntermediates/Ripples/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/folly.framework/folly normal (in target 'RCT-Folly' from project 'Pods')

We have spent a long time with many fails changing SDK versions and stripe-react-native versions to fix this but with no success. As it is referencing the swift compiler is there another command we should be using? Or updating some build properties?

Any advice is appreciated, thanks.

Package.json looks like this

{
  "name": "ripples",
  "version": "1.0.0",
  "scripts": {
    "start": "expo start --dev-client",
    "android": "expo run:android",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "eject": "expo eject",
    "lint": "eslint ./src/**/*.{ts,tsx}",
    "lint:fix": "eslint './src/**/*.{ts,tsx}' --fix",
    "prepare": "husky install",
    "extract-intl": "extract-messages -l=en -o src/translations -d en --flat \"src/**/!(*.test).ts\"",
    "test": "jest --config jest.config.js --coverage --coverageReporters=json-summary --silent",
    "test:watch": "test --watch",
    "test:ci": "test --coverage",
    "test:badges": "test:ci  && jest-coverage-badges --input coverage/coverage-summary.json --output __badges__"
  },
  "dependencies": {
    "@expo-google-fonts/open-sans": "^0.2.0",
    "@expo-google-fonts/work-sans": "^0.2.0",
    "@expo/config-plugins": "^5.0.0",
    "@react-native-firebase/app": "15.4.0",
    "@react-native-firebase/dynamic-links": "15.4.0",
    "@react-navigation/bottom-tabs": "^6.3.1",
    "@react-navigation/drawer": "^6.4.1",
    "@react-navigation/material-top-tabs": "^6.2.1",
    "@react-navigation/native": "^6.0.10",
    "@react-navigation/native-stack": "^6.6.2",
    "@stripe/stripe-react-native": "0.13.1",
    "axios": "^0.24.0",
    "babel-plugin-inline-import": "^3.0.0",
    "date-fns": "^2.28.0",
    "expo": "^46.0.16",
    "expo-av": "~12.0.4",
    "expo-build-properties": "~0.3.0",
    "expo-dev-client": "~1.3.1",
    "expo-device": "~4.3.0",
    "expo-font": "~10.2.0",
    "expo-intent-launcher": "~10.3.0",
    "expo-linking": "~3.2.2",
    "expo-notifications": "~0.16.1",
    "expo-secure-store": "~11.3.0",
    "expo-splash-screen": "~0.16.2",
    "expo-status-bar": "~1.4.0",
    "expo-updates": "~0.14.6",
    "expo-web-browser": "~11.0.0",
    "formik": "^2.2.9",
    "intl": "^1.2.5",
    "jest": "^26.6.3",
    "jest-expo": "^46.0.0",
    "react": "18.0.0",
    "react-dom": "18.0.0",
    "react-intl": "^6.0.2",
    "react-native": "0.69.6",
    "react-native-circular-progress": "^1.3.7",
    "react-native-confetti-cannon": "^1.5.2",
    "react-native-email-link": "^1.12.2",
    "react-native-flash-message": "^0.2.0",
    "react-native-gesture-bottom-sheet": "^1.1.0",
    "react-native-gesture-handler": "~2.5.0",
    "react-native-modalize": "^2.0.13",
    "react-native-pager-view": "5.4.24",
    "react-native-paper": "^4.11.1",
    "react-native-reanimated": "~2.9.1",
    "react-native-safe-area-context": "4.3.1",
    "react-native-screens": "~3.15.0",
    "react-native-snap-carousel": "^3.9.1",
    "react-native-svg": "12.3.0",
    "react-native-switch-selector": "^2.2.0",
    "react-native-tab-view": "^3.1.1",
    "react-native-web": "~0.18.7",
    "react-native-webview": "11.23.0",
    "react-native-youtube-iframe": "^2.2.2",
    "react-native-zohosalesiq-mobilisten": "4.2.11",
    "react-query": "^3.34.7",
    "yup": "^0.32.11"
  },
  "devDependencies": {
    "@babel/core": "^7.18.6",
    "@testing-library/react-native": "^9.0.0",
    "@types/jest": "^27.4.0",
    "@types/react": "~18.0.0",
    "@types/react-native": "~0.69.1",
    "@types/react-native-snap-carousel": "^3.8.5",
    "@types/react-test-renderer": "^17.0.1",
    "@typescript-eslint/eslint-plugin": "^5.8.1",
    "@typescript-eslint/parser": "^5.8.1",
    "eslint": "^8.5.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-config-airbnb-typescript": "^16.1.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "^2.25.3",
    "eslint-plugin-jsx-a11y": "^6.5.1",
    "eslint-plugin-prettier": "^4.0.0",
    "eslint-plugin-react": "^7.28.0",
    "eslint-plugin-react-hooks": "^4.3.0",
    "extract-react-intl-messages": "^4.1.1",
    "husky": ">=6",
    "jest-coverage-badges": "^1.1.2",
    "lint-staged": ">=10",
    "metro-babel-register": "^0.71.3",
    "prettier": "^2.5.1",
    "react-test-renderer": "17",
    "ts-jest": "~26.0.0",
    "ts-node": "^10.4.0",
    "typescript": "^4.6.3"
  },
  "private": true,
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{ts,tsx}": "eslint"
  },
  "resolutions": {
    "@types/react": "18.0.0",
    "@types/react-dom": "18.0.0"
  }
}

Hi @roundups

Off hand I’m not sure. But I would try creating a new Expo app and then adding dependencies from your real app.

You could try adding everything up front and build. If it works, try to see what might be different between the two apps. e.g. you might have some different versions of dependencies installed in the two apps.

If it doesn’t work with the full set of dependencies then just add e.g. half of them and try building.

i.e. track down which dependency or combination of dependencies are causing the problem and work from there.

Thanks @wodin, this is what I was trying to avoid as its pretty laborious but I think I have exhausted our other options now.
I’ll let you know how it goes :+1:

1 Like

After skipping expo 46 and upgrading to 47 it resolved the issue. I was able to build and continue fixing javascript errors. I’m not sure why this fixed it but just sharing in case others face a similar issue.