Repository navigation
Description
Bug Description
There are two issues with macOS (Catalyst) build due to the hermes artifact.
- bundle format is ambiguous (could be app or framework) when building against Catalyst
- 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 runN/Agradle cleanand confirmed this bug does not occur with JSC - 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
- Create a new React Native CLI project
- Turn on Mac Catalyst from Xcode
- Run the app (debug build) and observe the first issue
- 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
[-]Hermes 0.14 artifact is broken for Mac Catalyst build[/-][+]Hermes 0.14 artifact breaks Mac Catalyst build[/+]cipolleschi commentedon Jan 26, 2026
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.
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
0folderStill investigating point 2.
robertying commentedon Jan 26, 2026
Yes you are right @cipolleschi. I think the issue with 0.14.0 is that
hermesvm's symlink is not correct; it should point toVersions/Current/hermesvmto make it work.Thanks for looking into this!
Fix target triple for multi-arch builds (#1886)
Fix target triple for multi-arch builds (meta#1887)
robertying commentedon Feb 8, 2026
@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.
I believe
hermesvmneeds to be linked toVersions/Current/hermesvmbirdofpreyru commentedon Feb 12, 2026
I just tried to build something for Mac Catalyst with RN@0.84.0, the issue is still present.
robertying commentedon Feb 13, 2026
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:
robertying commentedon Feb 13, 2026
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!