macOS test app is blocked on react-native-macos ≥ 0.82 (Hermes static_h build scripts)
@kraenhansen 已经在做这个了。
开始于 2026年8月10日。
评估
这个 Issue 还没有评估数据。
描述
Tracking the Test app (macOS) failure on #372 ("Adopt Hermes' first-party Node-API (static_h)"), and the conditions under which the macOS job can be re-enabled.
Status
The MacOS 💻 label has been removed from #372, so Test app (macOS) no longer runs there. macOS is knowingly deferred — everything else in that PR (iOS, Android, the Node.js tooling) is unaffected.
Why it fails
#372 vendors Hermes from facebook/hermes static_h (pinned SHA) and lets React Native build it from source via REACT_NATIVE_OVERRIDE_HERMES_DIR. On iOS that's RN 0.88.0-nightly, whose Hermes build scripts match. On macOS the app is scaffolded by scripts/init-macos-test-app.ts against react-native-macos@0.81.8 / react-native@0.81.6, and RN 0.81's Hermes build scripts predate the static_h changes we depend on:
-
[RN] [1] Build Hermescfails immediately. RN 0.81'ssdks/hermes-engine/utils/build-hermesc-xcode.shinvokescmake -S … -B … -DJSI_DIR=…with no-DCMAKE_BUILD_TYPE, and wraps it inenv -i, so nothing can be injected from the outside. The pinned Hermes hard-errors in its rootCMakeLists.txt:CMake Error at CMakeLists.txt:46 (message): Please set CMAKE_BUILD_TYPEReproduced locally against the pinned SHA with
react-native-macos@0.81.8'sReactCommon/jsi: configure fails as above, and succeeds once-DCMAKE_BUILD_TYPE=Releaseis added. Upstream RN added that flag in 0.82.0. -
[RN] [2] Build Hermeswould fail next. RN 0.81'sbuild-hermes-xcode.shbuilds--target libhermesand copiesAPI/hermes/hermes.framework. In the pinned Hermes the target ishermesvmand the bundle islib/hermesvm.framework(same rename we handled for Android in #372). RNmainwas updated for this; 0.81 was not. -
Likely next: JSI header skew. #372 drops the step that copied Hermes' JSI headers into RN's
ReactCommon/jsi, on the grounds that the pinned Hermes and RN 0.87+ agree. RN 0.81 does not, so the host module's use ofIHermes/getVMRuntimeUnsafe()may not compile even once (1) and (2) are past.
Note: the second failed phase in CI ([CP] Copy XCFrameworks for weak-node-api) is most likely collateral — an earlier run with the same Hermesc error reported that phase as passing. Confirm rather than assume once the build gets further.
What gates re-enabling macOS
react-native-macos must ship a release based on React Native ≥ 0.82 (that release carries both the CMAKE_BUILD_TYPE fix and the hermesvm rename). Today latest is 0.81.9, next is 0.81.0, nightly is 0.78.4 — there is no 0.82+ line at all, so bumping the pin within 0.81.x buys nothing.
When that lands:
- Bump
REACT_NATIVE_MACOS_VERSION/REACT_NATIVE_VERSIONinscripts/init-macos-test-app.ts(they are peer-locked; keep them in lockstep). - Re-add the
MacOS 💻label to the relevant PR — the job in.github/workflows/check.ymlis already label-gated, so no workflow change is needed. - Expect to work through (3) above: JSI/
IHermescompatibility against the newer react-native-macos.
A local workaround is possible in the meantime (patch react-native-macos's two Hermes scripts from vendor-hermes), but it papers over a gap that keeps widening with every further static_h change, and does nothing about (3). Preferred order is: wait for upstream, then bump.
Related: #372, #391 (captures the raw xcodebuild log so a script phase failure is diagnosable at all).
- 主要语言
- TypeScript
- 星标
- 188
- 派生
- 10
- 平均合并
- 2 天 17 小时
- 30 天内合并 PR
- 3
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
callstackincubator/react-native-node-api 的其他 Issue
-
Android 🤖
难度 2/5 1-3 小时 新手友好度 66/100
-
Sanity check of Hermes source directory via environment variable, when building Android projects 未关闭Android 🤖 good first issue
难度 2/5 1-3 小时 新手友好度 78/100
callstackincubator/react-native-node-api#163 · 1 条评论 ·
-
enhancement good first issue gyp-to-cmake
难度 2/5 1-3 小时 新手友好度 72/100
callstackincubator/react-native-node-api#161 · 3 条评论 · 1 个 reaction ·
-
enhancement Host 🏡
难度 5/5 一周以上 新手友好度 25/100
-
Automatable good first issue
难度 3/5 1-2 天 新手友好度 15/100
callstackincubator/react-native-node-api#424 · 1 条评论 ·
查看 callstackincubator/react-native-node-api 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
mksglu/context-mode#1200 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
难度 2/5 1-3 小时 新手友好度 75/100
anthropics/claude-code#96687 ·
-
good first issue
难度 1/5 1 小时以内 新手友好度 95/100
AOSSIE-Org/DebateAI#582 · 2 条评论 ·