Expo EAS build error on iOS SDK48 using Hermes

Trying to build my application either with EAS cloud (expo.dev) or in local … i am getting build failed only for iOS . if i specify the engine to JSC the build works. ie ios : {“jsEngine”: “jsc”}

Infos :

  • managed workflow
  • eas-cli/3.9.2 darwin-arm64 node-v20.0.0

logs :

 ld: method '+moduleName' in category from /Users/expo/Library/Developer/Xcode/DerivedData/myApp-ftfipbosqrbrwtagltsnkvbsngkd/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/ExpoModulesCore/ExpoModulesCore.framework/ExpoModulesCore(ExpoBridgeModule-c8d8298aae87d3ef1154a8b38d0c26d2.o) overrides method from class in /Users/expo/Library/Developer/Xcode/DerivedData/myApp-ftfipbosqrbrwtagltsnkvbsngkd/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/ExpoModulesCore/ExpoModulesCore.framework/ExpoModulesCore(ExpoBridgeModule-2f3f89cf043055957e404181a114e725.o)
⚠️  ld: method '+UIStatusBarAnimation:' in category from /Users/expo/Library/Developer/Xcode/DerivedData/myApp-ftfipbosqrbrwtagltsnkvbsngkd/Build/Intermediates.noindex/ArchiveIntermediates/myApp/BuildProductsPath/Release-iphoneos/RNScreens/RNScreens.framework/RNScreens(RNSScreen.o) conflicts with same method from another category
› Generating debug myApp » myApp.app.dSYM
› Executing myApp » Bundle React Native code and images
    the transform cache was reset.
› Executing myApp » [CP] Copy Pods Resources
› Executing myApp » Upload Debug Symbols to Sentry
› Executing myApp » [CP] Embed Pods Frameworks
› Executing myApp » [CP-User] [RNFB] Core Configuration
      A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.
› Signing   myApp » myApp.app
› Creating  myApp » myApp.app
    Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'RCT-Folly' from project 'Pods')
    Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-Codegen' from project 'Pods')
    Run script build phase '[CP-User] Generate app.manifest for expo-updates' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXUpdates' from project 'Pods')
▸ ** ARCHIVE FAILED **
** ARCHIVE FAILED **
Exit status: 65

eas.json

  "cli": {
    "version": ">= 0.52.0"
  },
  "build": {
    "development": {
      "distribution": "internal",
      "releaseChannel": "development",
      "android": {
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "buildConfiguration": "Debug"
      }
    },
    "preview": {
      "ios": {
        "simulator": true
      },
      "android": {
        "buildType": "apk"
      },
      "releaseChannel": "test",
      "cache": {
        "key": "hermes"
      }
    },
    "integration": {
      "ios": {
        "simulator": true
      },
      "android": {
        "buildType": "apk"
      },
      "releaseChannel": "integration",
      "cache": {
        "key": "hermes"
      }
    },
    "qualif": {
      "android": {
        "autoIncrement": "true"
      },
      "ios": {
        "autoIncrement": "true"
      },
      "releaseChannel": "test",
      "cache": {
        "key": "hermes"
      }
    },
    "staging": {
      "android": {
        "autoIncrement": "true"
      },
      "ios": {
        "autoIncrement": "true"
      },
      "releaseChannel": "staging",
      "cache": {
        "key": "hermes"
      }
    },
    "production": {
      "android": {
        "autoIncrement": "true"
      },
      "ios": {
        "autoIncrement": "true"
      },
      "releaseChannel": "production",
      "cache": {
        "key": "hermes"
      }
    }
  },
  "submit": {
    "production": {}
  }
}

app.json

{
  "expo": {
    "scheme": "myApp",
    "owner": "me",
    "name": "me",
    "slug": "myApp-app",
    "version": "1.1.0",
    "privacy": "public",
    "platforms": ["ios", "android"],
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0,
      "checkAutomatically": "ON_ERROR_RECOVERY"
    },
    "assetBundlePatterns": ["**/*"],
    "userInterfaceStyle": "automatic",
    "ios": {
      "supportsTablet": false,
      "bundleIdentifier": "eu.myApp.app",
      "buildNumber": "####",
      "associatedDomains": [
        "applinks:myApp.page.link",
        "applinks:myApp.eu"
      ],
      "googleServicesFile": "./GoogleService-Info.plist"
    },
    "android": {
      "package": "eu.myApp.app",
      "versionCode": 22840,
      "googleServicesFile": "./google-services.json",
      "useNextNotificationsApi": true,
      "allowBackup": false,
      "softwareKeyboardLayoutMode": "pan",
      "intentFilters": [
        {
          "action": "VIEW",
          "data": [
            {
              "scheme": "https",
              "host": "myApp.eu",
              "pathPrefix": "/"
            }
          ],
          "category": ["BROWSABLE", "DEFAULT"]
        }
      ]
    },
    "notification": {
      "icon": "./assets/logo8bit.png",
      "color": "#1eb3ac"
    },
    "hooks": {
      "postPublish": [
        {
          "file": "sentry-expo/upload-sourcemaps",
          "config": {
            "organization": "myApp",
            "project": "myApp",
            "authToken": "####"
          }
        }
      ]
    },
    "plugins": [
      "sentry-expo",
      "expo-image-picker",
      "@react-native-firebase/app",
      "@react-native-firebase/dynamic-links",
      "@config-plugins/android-jsc-intl",
      "./plugins/withAndroidVerifiedLinksWorkaround",
      "@config-plugins/react-native-blob-util",
      "@config-plugins/react-native-pdf",
      [
        "expo-build-properties",
        {
          "ios": {
            "useFrameworks": "static"
          }
        }
      ],
      "expo-localization"
    ],
    "extra": {
      "eas": {
        "projectId": "####"
      }
    }
  }
}