EAS Build fails on ios (expo SDK 48.0.9)

I’m having an error while building for iOS on recaptcha even though I already migrated from expo Firebase to React Native Firebase
EAS cli version 3.5.2

Hi @wub

Do you have an ios directory in your app?

Hello @wodin
Thanks for replying
Yes I do have an ios directory

OK. Have you made any changes to the ios or android directories? i.e. is this a Bare workflow app?

If you have ios and android directories, then you are effectively using the Bare workflow, regardless of whether you intended to. You might have run npx expo run:ios or npx expo prebuild which would have generated the ios and android directories.

If you intended to be using the Managed workflow and you have not made any changes under ios and android that you want to keep, then you can delete those two directories to switch back to the managed workflow. Then see if that fixes your build problems.

You should also run npx expo-doctor to see if it picks up any issues.

I have already done what you suggested before, but I went through the process again just now and this is my error even tough I already specified a minimum ios version . I was also able to reslove this same error by defining a version before but once I installed Firebase/recaptcha I could’nt resolve this issue.

  "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"
  },
  "dependencies": {
    "@expo-google-fonts/lato": "^0.2.2",
    "@expo-google-fonts/tenor-sans": "^0.2.2",
    "@expo/config-plugins": "^6.0.0",
    "@expo/prebuild-config": "~6.0.0",
    "@expo/vector-icons": "^13.0.0",
    "@ptomasroos/react-native-multi-slider": "^2.2.2",
    "@react-native-async-storage/async-storage": "1.17.11",
    "@react-native-firebase/app": "16.7.0",
    "@react-native-firebase/auth": "^16.7.0",
    "@react-native-picker/picker": "2.4.8",
    "@react-navigation/bottom-tabs": "^6.3.1",
    "@react-navigation/native": "^6.0.10",
    "@react-navigation/native-stack": "^6.6.2",
    "@react-navigation/stack": "^6.2.1",
    "@types/react-redux": "^7.1.24",
    "axios": "^1.2.2",
    "expo": "~48.0.9",
    "expo-app-loading": "~2.1.0",
    "expo-build-properties": "~0.5.1",
    "expo-firebase-recaptcha": "~2.3.1",
    "expo-font": "~11.1.1",
    "expo-splash-screen": "~0.18.1",
    "expo-status-bar": "~1.4.0",
    "expo-updates": "~0.16.3",
    "firebase": "^9.16.0",
    "lottie-react-native": "5.1.4",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-native": "0.71.6",
    "react-native-auto-height-image": "^3.2.4",
    "react-native-collapsible": "^1.6.0",
    "react-native-dropdown-picker": "^5.4.2",
    "react-native-dropdown-select-list": "^2.0.4",
    "react-native-fast-image": "^8.5.11",
    "react-native-flash-message": "^0.2.1",
    "react-native-gesture-handler": "~2.9.0",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-modal": "^13.0.1",
    "react-native-otp-textinput": "^1.0.0",
    "react-native-phone-number-input": "^2.1.0",
    "react-native-ratings": "^8.1.0",
    "react-native-reanimated": "~2.14.4",
    "react-native-reanimated-carousel": "^3.3.0",
    "react-native-safe-area-context": "4.5.0",
    "react-native-safe-area-view": "^1.1.1",
    "react-native-screens": "~3.20.0",
    "react-native-shadow-2": "^6.0.3",
    "react-native-simple-accordion": "^1.17.0",
    "react-native-smart-statusbar": "^1.0.24",
    "react-native-status-bar-height": "^2.6.0",
    "react-native-svg": "13.4.0",
    "react-native-swipe-list-view": "^3.2.9",
    "react-native-web": "~0.18.7",
    "react-native-webview": "11.26.0",
    "react-redux": "^8.0.2",
    "redux": "^4.2.0",
    "redux-thunk": "^2.4.1"
  },
  "devDependencies": {
    "@babel/core": "^7.19.6",
    "@types/react": "~18.0.0",
    "@types/react-native": "~0.69.1",
    "typescript": "^4.6.3"
  },
  "private": true
}```

What does the Run expo doctor step show?

I meant the section from the build logs, but this is fine too :slight_smile:

What do you get if you run:

npm why "@expo/config-plugins@5.0.4"
npm why "@expo/config-plugins@5.0.7"

Also, it looks like you have “googleServicesFile” in the wrong place in your app.json.

“googleServicesFile” issue fixed.


Please post the entire output of the npm why ... commands as text. You will need to post it as a code block. e.g. select all of it and then press the </> button on the editor toolbar.

But so far in the screenshot and the dependencies you posted earlier I can see you have expo-app-loading installed. That is no longer available in Expo SDK 48. You need to check the release notes for the different Expo SDK versions from the old version up to Expo SDK 48 and fix anything that’s been deprecated or marked as a breaking change.

e.g. the Expo SDK 45 release notes say this about expo-app-loading:

expo-app-loading is deprecated — use expo-splash-screen directly instead: SplashScreen.preventAutoHideAsync() and SplashScreen.hideAsync(). The implementation is only a thin wrapper around expo-splash-screen that you can copy into your project if you’d like to keep using it.

and the Expo SDK 47 release notes say this about the expo-firebase-* libraries:

  • expo-firebase-* libraries are deprecated. If you use expo-firebase-analytics or expo-firebase-recaptcha in your app, we suggest migrating to React Native Firebase. Refer to the “Migrating from Expo Firebase to React Native Firebase” guide for more information.
@expo/config-plugins@5.0.4
node_modules/expo-app-loading/node_modules/@expo/config-plugins
  @expo/config-plugins@"~5.0.3" from @expo/config@7.0.3
  node_modules/expo-app-loading/node_modules/@expo/config
    @expo/config@"~7.0.2" from @expo/prebuild-config@5.0.7
    node_modules/expo-app-loading/node_modules/@expo/prebuild-config
      @expo/prebuild-config@"5.0.7" from expo-splash-screen@0.17.5
      node_modules/expo-app-loading/node_modules/expo-splash-screen
        expo-splash-screen@"~0.17.0" from expo-app-loading@2.1.1
        node_modules/expo-app-loading
          expo-app-loading@"~2.1.0" from the root project
  @expo/config-plugins@"~5.0.3" from @expo/prebuild-config@5.0.7
  node_modules/expo-app-loading/node_modules/@expo/prebuild-config
    @expo/prebuild-config@"5.0.7" from expo-splash-screen@0.17.5
    node_modules/expo-app-loading/node_modules/expo-splash-screen
      expo-splash-screen@"~0.17.0" from expo-app-loading@2.1.1
        expo-app-loading@"~2.1.0" from the root project

@expo/config-plugins@5.0.4
node_modules/expo-firebase-core/node_modules/@expo/config-plugins
  @expo/config-plugins@"~5.0.3" from @expo/config@7.0.3
  node_modules/expo-firebase-core/node_modules/@expo/config
    @expo/config@"~7.0.2" from expo-constants@14.0.2
    node_modules/expo-firebase-core/node_modules/expo-constants
      expo-constants@"~14.0.0" from expo-firebase-core@6.0.0
      node_modules/expo-firebase-core
        expo-firebase-core@"~6.0.0" from expo-firebase-recaptcha@2.3.1
        node_modules/expo-firebase-recaptcha
          expo-firebase-recaptcha@"~2.3.1" from the root project

@expo/config-plugins@5.0.4
node_modules/@react-native-firebase/auth/node_modules/@expo/config-plugins
  @expo/config-plugins@"^5.0.4" from @react-native-firebase/auth@16.7.0
  node_modules/@react-native-firebase/auth
    @react-native-firebase/auth@"^16.7.0" from the root project

@expo/config-plugins@5.0.4
node_modules/@react-native-firebase/app/node_modules/@expo/config-plugins
  @expo/config-plugins@"^5.0.4" from @react-native-firebase/app@16.7.0
  node_modules/@react-native-firebase/app
    @react-native-firebase/app@"16.7.0" from the root project



PS C:\Users\berek\OneDrive\Documents\GitHub\application> npm why @expo/config-plugins
@expo/config-plugins@6.0.0
node_modules/@expo/config-plugins
  @expo/config-plugins@"^6.0.0" from the root project
  @expo/config-plugins@"~6.0.0" from expo-updates@0.16.4
  node_modules/expo-updates
    expo-updates@"~0.16.3" from the root project
  @expo/config-plugins@"~6.0.0" from @expo/cli@0.6.2
  node_modules/@expo/cli
    @expo/cli@"0.6.2" from expo@48.0.10
    node_modules/expo
      expo@"~48.0.10" from the root project
  @expo/config-plugins@"~6.0.0" from @expo/config@8.0.2
  node_modules/@expo/config
    @expo/config@"8.0.2" from expo@48.0.10
    node_modules/expo
      expo@"~48.0.10" from the root project
    @expo/config@"~8.0.0" from expo-constants@14.2.1
    node_modules/expo-constants
      expo-constants@"~14.2.1" from expo@48.0.10
      node_modules/expo
        expo@"~48.0.10" from the root project
      expo-constants@"~14.2.0" from expo-asset@8.9.1
      node_modules/expo-asset
        expo-asset@"~8.9.1" from expo@48.0.10
        node_modules/expo
          expo@"~48.0.10" from the root project
    @expo/config@"~8.0.0" from expo-updates@0.16.4
    node_modules/expo-updates
      expo-updates@"~0.16.3" from the root project
    @expo/config@"~8.0.0" from @expo/cli@0.6.2
    node_modules/@expo/cli
      @expo/cli@"0.6.2" from expo@48.0.10
      node_modules/expo
        expo@"~48.0.10" from the root project
    @expo/config@"~8.0.0" from @expo/metro-config@0.7.1
    node_modules/@expo/metro-config
      @expo/metro-config@"~0.7.0" from expo-updates@0.16.4
      node_modules/expo-updates
        expo-updates@"~0.16.3" from the root project
      @expo/metro-config@"~0.7.0" from @expo/cli@0.6.2
      node_modules/@expo/cli
        @expo/cli@"0.6.2" from expo@48.0.10
        node_modules/expo
          expo@"~48.0.10" from the root project
      @expo/metro-config@"~0.7.0" from @expo/dev-server@0.2.3
      node_modules/@expo/dev-server
        @expo/dev-server@"0.2.3" from @expo/cli@0.6.2
        node_modules/@expo/cli
          @expo/cli@"0.6.2" from expo@48.0.10
          node_modules/expo
            expo@"~48.0.10" from the root project
    @expo/config@"~8.0.0" from @expo/prebuild-config@6.0.0
    node_modules/@expo/prebuild-config
      @expo/prebuild-config@"~6.0.0" from the root project
      @expo/prebuild-config@"6.0.0" from expo-splash-screen@0.18.1
      node_modules/expo-splash-screen
        expo-splash-screen@"~0.18.1" from the root project
      @expo/prebuild-config@"6.0.0" from @expo/cli@0.6.2
      node_modules/@expo/cli
        @expo/cli@"0.6.2" from expo@48.0.10
        node_modules/expo
          expo@"~48.0.10" from the root project
  @expo/config-plugins@"~6.0.0" from @expo/prebuild-config@6.0.0
  node_modules/@expo/prebuild-config
    @expo/prebuild-config@"~6.0.0" from the root project
    @expo/prebuild-config@"6.0.0" from expo-splash-screen@0.18.1
    node_modules/expo-splash-screen
      expo-splash-screen@"~0.18.1" from the root project
    @expo/prebuild-config@"6.0.0" from @expo/cli@0.6.2
    node_modules/@expo/cli
      @expo/cli@"0.6.2" from expo@48.0.10
      node_modules/expo
        expo@"~48.0.10" from the root project

@expo/config-plugins@5.0.4
node_modules/expo-firebase-core/node_modules/@expo/config-plugins
  @expo/config-plugins@"~5.0.3" from @expo/config@7.0.3
  node_modules/expo-firebase-core/node_modules/@expo/config
    @expo/config@"~7.0.2" from expo-constants@14.0.2
    node_modules/expo-firebase-core/node_modules/expo-constants
      expo-constants@"~14.0.0" from expo-firebase-core@6.0.0
      node_modules/expo-firebase-core
        expo-firebase-core@"~6.0.0" from expo-firebase-recaptcha@2.3.1
        node_modules/expo-firebase-recaptcha
          expo-firebase-recaptcha@"~2.3.1" from the root project

@expo/config-plugins@6.0.1
node_modules/expo/node_modules/@expo/config-plugins
  @expo/config-plugins@"6.0.1" from expo@48.0.10
  node_modules/expo
    expo@"~48.0.10" from the root project

@expo/config-plugins@5.0.4
node_modules/expo-app-loading/node_modules/@expo/config-plugins
  @expo/config-plugins@"~5.0.3" from @expo/config@7.0.3
  node_modules/expo-app-loading/node_modules/@expo/config
    @expo/config@"~7.0.2" from @expo/prebuild-config@5.0.7
    node_modules/expo-app-loading/node_modules/@expo/prebuild-config
      @expo/prebuild-config@"5.0.7" from expo-splash-screen@0.17.5
      node_modules/expo-app-loading/node_modules/expo-splash-screen
        expo-splash-screen@"~0.17.0" from expo-app-loading@2.1.1
        node_modules/expo-app-loading
          expo-app-loading@"~2.1.0" from the root project
  @expo/config-plugins@"~5.0.3" from @expo/prebuild-config@5.0.7
  node_modules/expo-app-loading/node_modules/@expo/prebuild-config
    @expo/prebuild-config@"5.0.7" from expo-splash-screen@0.17.5
    node_modules/expo-app-loading/node_modules/expo-splash-screen
      expo-splash-screen@"~0.17.0" from expo-app-loading@2.1.1
      node_modules/expo-app-loading
        expo-app-loading@"~2.1.0" from the root project

@expo/config-plugins@5.0.4
node_modules/@react-native-firebase/app/node_modules/@expo/config-plugins
  @expo/config-plugins@"^5.0.4" from @react-native-firebase/app@16.7.0
  node_modules/@react-native-firebase/app
    @react-native-firebase/app@"16.7.0" from the root project

@expo/config-plugins@5.0.4
node_modules/@react-native-firebase/auth/node_modules/@expo/config-plugins
  @expo/config-plugins@"^5.0.4" from @react-native-firebase/auth@16.7.0
  node_modules/@react-native-firebase/auth
    @react-native-firebase/auth@"^16.7.0" from the root project
expo/prebuild-config@6.0.0
node_modules/@expo/prebuild-config
  @expo/prebuild-config@"6.0.0" from @expo/cli@0.6.2
  node_modules/@expo/cli
    @expo/cli@"0.6.2" from expo@48.0.10
    node_modules/expo
      expo@"^48.0.10" from the root project
  @expo/prebuild-config@"6.0.0" from expo-splash-screen@0.18.1
  node_modules/expo-splash-screen
    expo-splash-screen@"~0.18.1" from the root project

@expo/prebuild-config@4.0.4
node_modules/expo-app-loading/node_modules/@expo/prebuild-config
  @expo/prebuild-config@"~4.0.0" from expo-splash-screen@0.15.1
  node_modules/expo-app-loading/node_modules/expo-splash-screen
    expo-splash-screen@"~0.15.0" from expo-app-loading@2.0.0
    node_modules/expo-app-loading
      expo-app-loading@"~2.0.0" from the root project

As per the Expo SDK release notes you will need to replace expo-app-loading or copy the code for AppLoading into your project.

As per the Expo SDK release notes you will need to remove this and use React Native Firebase directly.

I see there are later versions of these dependencies. Try upgrading them.

1 Like

Thanks for your help,
Appreciate it :smile:

1 Like

@wodin
How can I resolve this issue with firebase & podfiles?

In Podfile:
    EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`) was resolved to 6.0.0, which depends on
      Firebase/Core (= 9.5.0) was resolved to 9.5.0, which depends on
        Firebase/CoreOnly (= 9.5.0)
    RNFBApp (from `../node_modules/@react-native-firebase/app`) was resolved to 16.7.0, which depends on
      Firebase/CoreOnly (= 10.3.0)

I don’t think you should have anything like “expo-firebase-*”. Can you check for dependencies like that in package.json?

Also, you’re on the Managed workflow, right? You don’t have an ios directory in your app?

The only expo-firebase package I have is “expo-firebase-recaptcha”
How can I replace that?

And yes I am in managed workflow, I recently had to delete both ios/android directory and had them generated again & added firebase_sdk_version = '9.16.10' if defined? $FirebaseSDKVersion firebase_sdk_version = $FirebaseSDKVersion end on the top of my podfile but the error doesnt seem to be resolved.

Did you read this?

If you follow the link there is a section called “Migrating from expo-firebase-recaptcha

Then you are on the Bare workflow.

If you want to be on the managed workflow you need to delete ios and android and NOT regenerate them again. Leave them deleted.

Okay,
Appreciate your help.

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.