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時間
- マージ済み PR(30日)
- 3
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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 件 ·
-
enhancement Host 🏡
難易度 5/5 1週間以上 初心者へのやさしさ 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
-
S: triage
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
fix(errors): EHOSTUNREACH from a happy-eyeballs connect is reported as a resolver error (STAMP-80) オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
snapshot-labs/stamp#666 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
GauravKarakoti/SecureFlow#1070 · コメント 1 件 ·
-
feature:Languages/Translations good first issue ready Web
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
digitalfabrik/integreat-app#4394 ·