Skip to content

Hermes 0.14 artifact breaks Mac Catalyst build #1883

Closed

Description

@robertying

Bug Description

There are two issues with macOS (Catalyst) build due to the hermes artifact.

  1. bundle format is ambiguous (could be app or framework) when building against Catalyst
  2. found architecture 'arm64', required architecture 'x86_64' when building against Catalyst with universal (arm64+x86_64)

1

There was a similar issue a while ago: react/react-native#46213 and it was caused by GitHub Action's handling of symlinks.

The issues have come back and it might be because the change of moving hermes build from the react-native repo to the hermes repo: react/react-native#53901

The previous fix added manual zip in RN repo's CI steps. However, in the hermes repo's CI configurations, it is currently missing.

Digging deeper, we can see the unzipped artifact's directory structure:

drwxr-xr-x@ 5 rying  staff       160 Jan 20 02:49 .
drwxr-xr-x@ 3 rying  staff        96 Jan 20 02:49 ..
drwxr-xr-x@ 3 rying  staff        96 Jan 20 02:49 Resources -> Versions/Current/Resources
drwxr-xr-x@ 4 rying  staff       128 Jan 20 02:49 Versions
-rw-r--r--@ 1 rying  staff  13564883 Jan 20 02:49 hermesvm

The correct structure should look like this instead:

drwxr-xr-x@ 5 rying  staff       160 Jan 20 02:49 .
drwxr-xr-x@ 3 rying  staff        96 Jan 20 02:49 ..
drwxr-xr-x@ 3 rying  staff        96 Jan 20 02:49 Resources -> Versions/Current/Resources
drwxr-xr-x@ 4 rying  staff       128 Jan 20 02:49 Versions
-rw-r--r--@ 1 rying  staff  13564883 Jan 20 02:49 hermesvm -> Versions/Current/hermesvm

2

It also seems that hermes was not built for x86_64 correctly. The bundled hermesvm file doesn't contain x86_64 binary:

Non-fat file: ~/Downloads/hermes-ios-0.14.0-debug/destroot/Library/Frameworks/universal/hermesvm.xcframework/ios-arm64_x86_64-maccatalyst/hermesvm.framework/hermesvm is architecture: arm64


  • I have run gradle clean and confirmed this bug does not occur with JSC N/A
  • The issue is reproducible with the latest version of React Native.

Hermes git revision (if applicable): 0.14
React Native version: 0.83.1
OS: macOS
Platform (most likely one of arm64-v8a, armeabi-v7a, x86, x86_64): arm64 / x86_64

Steps To Reproduce

  1. Create a new React Native CLI project
  2. Turn on Mac Catalyst from Xcode
  3. Run the app (debug build) and observe the first issue
  4. Archive the app (release build) for mac universal target (arm64+x86_64) and observe the second issue

The Expected Behavior

The app builds with RN 0.82 but fails with 0.83 when targeting Mac Catalyst.

Activity

  1. changed the title [-]Hermes 0.14 artifact is broken for Mac Catalyst build[/-] [+]Hermes 0.14 artifact breaks Mac Catalyst build[/+] on Jan 24, 2026
  2. cipolleschi commented on Jan 26, 2026

    @cipolleschi
    Contributor

    Hey @robertying! I'm looking into this issue.

    Are you sure about the point 1? Becuase I'm on the branch used to build 0.14.0 and I can see the steps to compress the build to maintain the symlinks.

    Image

    Symlinks are actually there, but the hermesvm does not have a symlink... also the hermesvm in the hermesvm.framework is twice the size of the one in the 0 folder

    Still investigating point 2.

  3. robertying commented on Jan 26, 2026

    @robertying
    Author

    Yes you are right @cipolleschi. I think the issue with 0.14.0 is that hermesvm's symlink is not correct; it should point to Versions/Current/hermesvm to make it work.

    Thanks for looking into this!

  4. robertying commented on Feb 8, 2026

    @robertying
    Author

    @cipolleschi I just tested the build on 0.84.0-rc.5 which is said to fix the Mac Catalyst issue. However, the hermes artifact hermes-ios-250829098.0.7 still has the first issue, causing the "bundle format is ambiguous" error.

    total 27472
    drwxr-xr-x  5 rying  staff       160 Feb  4 07:14 .
    drwxr-xr-x  3 rying  staff        96 Feb  4 07:15 ..
    -rwxr-xr-x  1 rying  staff  14065560 Feb  4 07:14 hermesvm
    lrwxr-xr-x  1 rying  staff        26 Feb  4 07:14 Resources -> Versions/Current/Resources
    drwxr-xr-x  4 rying  staff       128 Feb  4 07:14 Versions
    

    I believe hermesvm needs to be linked to Versions/Current/hermesvm

  5. birdofpreyru commented on Feb 12, 2026

    @birdofpreyru

    I just tried to build something for Mac Catalyst with RN@0.84.0, the issue is still present.

  6. robertying commented on Feb 13, 2026

    @robertying
    Author

    I just did more digging. The latest RN@0.84.0 shipped with hermes 250829098.0.7 which doesn't have @cipolleschi's fix.
    Need to use the newer version 250829098.0.8: https://repo1.maven.org/maven2/com/facebook/hermes/hermes-ios/

    BUT, the React Native prebuilt dependencies all have the wrong symlinks, so the Mac Catalyst build is still broken even after hermes is fixed:

    • ios/Pods/React-Core-prebuilt/React.xcframework/ios-arm64_x86_64-maccatalyst/React.framework
    • ios/Pods/ReactNativeDependencies/framework/packages/react-native/ReactNativeDependencies.xcframework/ios-arm64_x86_64-maccatalyst/ReactNativeDependencies.framework
  7. robertying commented on Feb 13, 2026

    @robertying
    Author

    I opened an issue in the main repo, since the hermes issue has been resolved with the latest version: react/react-native#55540

    @birdofpreyru I also posted my workaround in this issue. I am able to build for both debug and release!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions