iOS EAS Build fail on ExpoModulesCore

Moved to SDK 41 from SDK 40 and using EAS Build for the first time.

  • Managed workflow
  • eas-cli version: 0.36.1
  • expo sdk version: 41
  • platform: iOS

I’m getting an error during build (install pods process).

[!] CocoaPods could not find compatible versions for pod "ExpoModulesCore":
  In Podfile:
    ExpoModulesCore (from `../node_modules/expo-modules-core/ios`)
Specs satisfying the `ExpoModulesCore (from `../node_modules/expo-modules-core/ios`)` dependency were found, but they required a higher minimum deployment target.
[stderr] [!] `<PBXResourcesBuildPhase UUID=`13B07F8E1A680F5B00A75B9A`>` attempted to initialize an object with an unknown UUID. `4454EE66B3784B41A86DD932` for attribute: `files`. This can be the result of a merge and the unknown UUID is being discarded.
Error: Compatible version of some pods could not be resolved.
You are seeing this error because either:
  - Versions in the Podfile.lock cached by EAS do not match required values in podspecs of some of the libraries. To fix that update value of "cache.key" field in the eas.json to invalidate the cache.
  - Some of the pods used in your project depend on different versions of the same pod. Please see logs for more info.

I’m not sure if it is anything to do with ExpoModulesCore dependency or it is a cache problem.

I have the following eas.jon including the key to ignore the cache

{
  "cli": {
    "version": ">= 0.36.1"
  },
  "build": {   
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "cache": {
        "disabled": true,
        "key": "disabled"
      }
    },
    "preview": {
      "distribution": "internal",
      "cache": {
        "disabled": true,
        "key": "disabled"
      }
    },  
    "production": {      
      "ios": {
        "image": "latest",        
        "cocoapods": "1.11.2",
        "cache": {
          "disabled": true,
          "key": "disabled"
        }
      }
    }
  },
  "submit": {
    "production": {}
  }
}

I’m using a similar configuration on another build with same specs and I get the build without any problem.

Any idea?

Facing same issue??

for sdk 43+ projects:
this can happen if there are multiple versions of expo-modules-core in your project or you’re using a version of a library that is incompatible. in sdk 44 we’ll move away from depending directly on expo-modules-core in expo sdk packages (Make expo package a peer dependency of the modules by tsapeta · Pull Request #15205 · expo/expo · GitHub), but for now you can use yarn resolutions or whichever method you prefer to ensure that the expo-modules-core dep used by your expo sdk packages is the same. the reason this occurs is that if you install eg: expo-camera that depends on expo-modules-core ~0.4.0 and expo-clipboard that depends on, for example, expo-modules-core ~0.4.2, your package manager may not dedupe the dependency and resolve to the same version if they are installed at a different time.

for sdk <= 41:
you shouldn’t have expo-modules-core in your project at all. check your lockfile, or if you’re using yarn run yarn why expo-modules-core to see what package is pulling it in. run expo doctor to ensure your versions are correct. also, if you are using expo-google-app-auth please ensure that you are using version 8.1.7, which is the only version compatible with sdk 41