From 5cd12097d6f2f53a166eba0c402eaac3d095c576 Mon Sep 17 00:00:00 2001 From: Alexey Karimov Date: Sat, 3 Oct 2026 09:51:37 +0500 Subject: [PATCH 1/2] Task 13.5: prove a release bundle's debug id matches the composed map. Gradle 9 had removed Project.exec, so the inject hook never reached that map. The dashboard symbolication half stays open. Co-authored-by: Cursor --- .../plans/2026-09-16-implementation-plan.md | 2 + examples/bare/android/app/build.gradle | 3 +- examples/bare/e2e/composed-debug-id.test.ts | 208 ++++++++++++++++++ examples/bare/scenarios/exceptions.tsx | 21 +- packages/react-native/plugin/build/gradle.js | 3 +- .../react-native/plugin/build/gradle.js.map | 2 +- .../plugin/src/__tests__/plugin.test.ts | 2 + packages/react-native/plugin/src/gradle.ts | 3 +- 8 files changed, 238 insertions(+), 6 deletions(-) create mode 100644 examples/bare/e2e/composed-debug-id.test.ts diff --git a/docs/design/plans/2026-09-16-implementation-plan.md b/docs/design/plans/2026-09-16-implementation-plan.md index 9f0ad58e..8718b0c2 100644 --- a/docs/design/plans/2026-09-16-implementation-plan.md +++ b/docs/design/plans/2026-09-16-implementation-plan.md @@ -4078,6 +4078,8 @@ Device: WOD_LX1 `AMRJCP4718402860`, Debug, logged `BUGSEE_E2E appearance nonce=9 - [x] **13.3** Android mapping and NDK symbols — the Gradle plugin's job once applied. Write `android/bugsee.properties` with the **unprefixed** `app_token=` key (not `plugin.appToken`) at the *root* project, and default `plugin.ndk.enabled=true` for RN, since every RN app ships Hermes and `libreactnative.so` it did not write. - [x] **13.4** Expo config plugin, with a `prebuild --clean` test — the `.xcscheme` edit is the most fragile part and Expo has no helper for it. `CI=1 yarn expo prebuild --clean` in `examples/expo` exited 0 (CocoaPods installed) and left `bugsee-xcode.sh` on *Bundle React Native code and images* plus the Archive `Upload dSYMs` post-action. - [ ] **13.5** End-to-end: a release build whose JS stack symbolicates in the dashboard. This is the only test that proves the whole chain. + + Local half only. A debuggable release APK (`:app:assembleRelease -PbugseeE2eDebuggable=true`, arm64, Hermes) on WOD_LX1 `AMRJCP4718402860` reported `debug_ids` `{"index.android.bundle":"3c110b23-2416-5bc6-acac-e35ac7e69aa6"}`, the same UUID as `debug_id` on the composed map `index.android.bundle.map` after `compose-source-maps.js` (`hermes-sourcemaps.js` injects into that map). `debug-files upload` was not executed. The dashboard symbolication half is still open: nothing was uploaded and no Bugsee application was created, so this checkbox stays unchecked. iPhone XS (KRSFT, `00008020-000554DC2641002E`) was offline, so that run was not taken. The iOS Simulator was not run: the SDK compiles `logException` out on the simulator, so a Release simulator build would not retain a `debug_ids` payload. - [ ] Review gate. --- diff --git a/examples/bare/android/app/build.gradle b/examples/bare/android/app/build.gradle index e5b092ad..d2bc0ef0 100644 --- a/examples/bare/android/app/build.gradle +++ b/examples/bare/android/app/build.gradle @@ -181,7 +181,8 @@ afterEvaluate { cmd.add("--hermes-arg") cmd.add(flag) } - project.exec { + // Gradle 9 removed Project.exec. ExecOperations is the task service that replaced it. + bundleTask.services.get(org.gradle.process.ExecOperations).exec { commandLine cmd } } diff --git a/examples/bare/e2e/composed-debug-id.test.ts b/examples/bare/e2e/composed-debug-id.test.ts new file mode 100644 index 00000000..103fac42 --- /dev/null +++ b/examples/bare/e2e/composed-debug-id.test.ts @@ -0,0 +1,208 @@ +/** + * Task 13.5, local half: a release build's runtime `debug_ids` value equals + * the `debug_id` on the composed Hermes source map (the map after + * `compose-source-maps.js`, which is what `hermes-sourcemaps.js` injects + * into). A Debug Metro bundle does not go through hermesc or that compose + * step, so this file runs only with `E2E_RELEASE=1` and a release binary + * already installed. `debug-files upload` is not invoked. + * + * Android: debuggable release APK (`:app:assembleRelease + * -PbugseeE2eDebuggable=true`), airplane mode on, bundles cleared. The + * composed map is + * `android/app/build/generated/sourcemaps/react/release/index.android.bundle.map` + * unless `BUGSEE_COMPOSED_MAP` names another file. + * + * The scenario is `exc-map-id`. It does not call `registerDebugIds`, which + * would replace the inject stub. `duration` stays 90. `startRun` still + * requires `Status.Launched`. + * + * iOS Simulator cannot retain the exception payload: the SDK compiles + * `logException` out there. A Debug simulator run is not this proof. + */ +import { readFileSync } from 'node:fs'; +import { join } from 'node:path'; + +import { type PulledBundle, airplane, crashOf, removePulledBundles } from './bundles'; +import { ANDROID_PACKAGE, iosTarget } from './device'; +import { + ON_ANDROID, + ON_IOS, + type Run, + awaitBundles, + clearBundles, + TARGET_NAME, + must, + report, + startRun, + useLog, +} from './harness'; +import { type DeviceLog, IosConsole, Logcat, adb, resetScenario } from './scenario'; + +const UUID_RE = + /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + +const RELEASE = process.env.E2E_RELEASE === '1'; +const ON_IOS_SIM = ON_IOS && iosTarget() === 'simulator'; +/** Simulator `logException` is compiled out, so it cannot report `debug_ids`. */ +const describeReleaseProof = + RELEASE && (ON_ANDROID || (ON_IOS && !ON_IOS_SIM)) ? describe : describe.skip; + +jest.setTimeout(20 * 60_000); + +let log: DeviceLog; + +interface JsPayload { + readonly reason?: unknown; + readonly frames?: ReadonlyArray<{ readonly debug_id?: unknown }>; + readonly debug_ids?: unknown; +} + +function composedMapPath(): string { + const override = process.env.BUGSEE_COMPOSED_MAP; + if (override !== undefined && override !== '') { + return override; + } + return join( + __dirname, + '..', + 'android/app/build/generated/sourcemaps/react/release/index.android.bundle.map', + ); +} + +/** `debug_id` on the composed map. `debugId` must be the same UUID. */ +function debugIdOfComposedMap(mapPath: string): string { + const map = JSON.parse(readFileSync(mapPath, 'utf8')) as { + debug_id?: unknown; + debugId?: unknown; + }; + if (typeof map.debug_id !== 'string' || !UUID_RE.test(map.debug_id)) { + throw new Error(`composed map ${mapPath} has no debug_id UUID`); + } + if (map.debugId !== map.debug_id) { + throw new Error(`composed map ${mapPath} debugId does not equal debug_id`); + } + return map.debug_id; +} + +function payloadOf(bundle: PulledBundle): JsPayload { + const crash = crashOf(bundle); + if (crash === undefined) { + throw new Error(`bundle ${bundle.file} has no crash capture`); + } + const exception = crash.exception; + if (exception === null || typeof exception !== 'object') { + throw new Error(`bundle ${bundle.file} crash.json has no exception object`); + } + const reason = (exception as { reason?: unknown }).reason; + if (typeof reason !== 'string' || !reason.startsWith('{')) { + throw new Error( + `bundle ${bundle.file} exception.reason is not JSON text: ${String(reason).slice(0, 120)}`, + ); + } + return JSON.parse(reason) as JsPayload; +} + +describeReleaseProof(`composed debug id on ${TARGET_NAME} (release)`, () => { + let run: Run; + let nonce: string; + let mapId: string; + let payload: JsPayload; + + beforeAll(async () => { + mapId = debugIdOfComposedMap(composedMapPath()); + report('composed map', composedMapPath()); + report('composed map debug_id', mapId); + + if (ON_IOS) { + log = IosConsole.start(); + useLog(log, '13.5'); + } else { + log = await Logcat.start(); + useLog(log, '13.5'); + await airplane(true); + } + await clearBundles(); + + run = await startRun('exc-map-id'); + nonce = run.scenario.nonce; + report('banner', run.banner.text.trim()); + expect(run.dev).toBe(false); + + must( + await log.waitFor( + new RegExp(`BUGSEE_E2E exc map-id-sent nonce=${nonce}`), + 30_000, + run.launched.index, + ), + 'the map-id-sent marker', + run.start, + ); + + const bundles = await awaitBundles(1); + report( + 'bundle files', + bundles.map(b => b.file), + ); + const matches = bundles.filter(bundle => { + try { + return payloadOf(bundle).reason === `E2E map-id ${nonce}`; + } catch { + return false; + } + }); + expect(matches).toHaveLength(1); + payload = payloadOf(matches[0]!); + report('runtime debug_ids', payload.debug_ids); + }); + + afterAll(async () => { + if (!RELEASE || ON_IOS_SIM || (!ON_ANDROID && !ON_IOS)) { + return; + } + try { + if (ON_ANDROID) { + await adb('shell', 'am', 'force-stop', ANDROID_PACKAGE).catch(() => {}); + } + } finally { + try { + if (ON_ANDROID) { + await airplane(false); + } + } finally { + try { + await clearBundles().catch((error: unknown) => report('cleanup clear failed', String(error))); + } finally { + try { + const { removed, kept } = removePulledBundles(); + report('pulled bundle roots', { removed: removed.length, kept }); + } finally { + try { + if (log !== undefined) { + log.stop(); + } + } finally { + resetScenario(); + } + } + } + } + } + }); + + it('the release bundle reports the composed map debug id', () => { + const ids = payload.debug_ids; + expect(ids).toEqual(expect.any(Object)); + expect(Array.isArray(ids)).toBe(false); + const values = Object.values(ids as Record); + expect(values.length).toBeGreaterThan(0); + for (const value of values) { + expect(value).toBe(mapId); + } + for (const frame of payload.frames ?? []) { + if (frame.debug_id !== undefined) { + expect(frame.debug_id).toBe(mapId); + } + } + report('matched', { runtime: values, map: mapId }); + }); +}); diff --git a/examples/bare/scenarios/exceptions.tsx b/examples/bare/scenarios/exceptions.tsx index 5f92ba02..becacf8e 100644 --- a/examples/bare/scenarios/exceptions.tsx +++ b/examples/bare/scenarios/exceptions.tsx @@ -5,8 +5,10 @@ * Every value carries the run's nonce. Before the first throw, the scenario * registers `globalThis._bugseeDebugIds` from inside a function in this file * (its top frame shares the bundle with every throw site), simulating Phase - * 13's inject stub. The app-level ErrorUtils handler is installed before - * `launch()` so Bugsee's handler chains to it (case 9). + * 13's inject stub. `exc-map-id` does not: a release bundle already carries + * the inject stub, and replacing it would hide that UUID. The app-level + * ErrorUtils handler is installed before `launch()` so Bugsee's handler + * chains to it (case 9). * * Markers (console.log → ReactNativeJS on Android): * BUGSEE_E2E exc handled-sent nonce= @@ -28,6 +30,7 @@ export const EXCEPTION_SCENARIOS = [ 'exc-root', 'exc-prelaunch', 'exc-observe', + 'exc-map-id', ] as const; export type ExceptionScenario = (typeof EXCEPTION_SCENARIOS)[number]; @@ -149,6 +152,20 @@ export function runExceptionScenario( return; } + // The release proof. `registerDebugIds` replaces the whole registration + // with a synthetic id, which would hide the UUID `sourcemaps inject` wrote + // into this bundle. Leave `globalThis._bugseeDebugIds` as the inject stub + // filled it. + if (scenario === 'exc-map-id') { + try { + throw new Error(`E2E map-id ${nonce}`); + } catch (e) { + Bugsee.logException(e); + } + mark(`map-id-sent nonce=${nonce}`); + return; + } + registerDebugIds(nonce); if (scenario === 'exc-handled') { diff --git a/packages/react-native/plugin/build/gradle.js b/packages/react-native/plugin/build/gradle.js index 028513da..626ca168 100644 --- a/packages/react-native/plugin/build/gradle.js +++ b/packages/react-native/plugin/build/gradle.js @@ -359,7 +359,8 @@ const HERMES_FINISH_HOOK = [ ' cmd.add("--hermes-arg")', ' cmd.add(flag)', ' }', - ' project.exec {', + ' // Gradle 9 removed Project.exec.', + ' bundleTask.services.get(org.gradle.process.ExecOperations).exec {', ' commandLine cmd', ' }', ' }', diff --git a/packages/react-native/plugin/build/gradle.js.map b/packages/react-native/plugin/build/gradle.js.map index 5a91f4b3..ca46d625 100644 --- a/packages/react-native/plugin/build/gradle.js.map +++ b/packages/react-native/plugin/build/gradle.js.map @@ -1 +1 @@ -{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../src/gradle.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../src/gradle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/react-native/plugin/src/__tests__/plugin.test.ts b/packages/react-native/plugin/src/__tests__/plugin.test.ts index 2bd0dda2..3391a1fd 100644 --- a/packages/react-native/plugin/src/__tests__/plugin.test.ts +++ b/packages/react-native/plugin/src/__tests__/plugin.test.ts @@ -550,6 +550,8 @@ describe('Android Gradle edits', () => { expect(hook).toContain('Bugsee preserve directory is the packaged asset directory'); expect(hook).toContain('/intermediates/bugsee-sourcemaps/'); expect(hook).toContain('Upload is not invoked.'); + expect(hook).toContain('bundleTask.services.get(org.gradle.process.ExecOperations).exec'); + expect(hook).not.toContain('project.exec'); expect(hook).not.toContain('../../node_modules'); expect(hook).not.toContain('bugsee-cli'); expect(hook).not.toContain('debug-files'); diff --git a/packages/react-native/plugin/src/gradle.ts b/packages/react-native/plugin/src/gradle.ts index 9b9ece06..f47c62c9 100644 --- a/packages/react-native/plugin/src/gradle.ts +++ b/packages/react-native/plugin/src/gradle.ts @@ -384,7 +384,8 @@ const HERMES_FINISH_HOOK = [ ' cmd.add("--hermes-arg")', ' cmd.add(flag)', ' }', - ' project.exec {', + ' // Gradle 9 removed Project.exec.', + ' bundleTask.services.get(org.gradle.process.ExecOperations).exec {', ' commandLine cmd', ' }', ' }', From 181a6929a0f5a4757c64e14ecbb5f18bc9214cb1 Mon Sep 17 00:00:00 2001 From: Alexey Karimov Date: Sat, 3 Oct 2026 10:12:44 +0500 Subject: [PATCH 2/2] Rewrite an existing Hermes finish hook off Project.exec. A 13.4 file that already had the preserve marker stayed on the API Gradle 9 removed. An iOS device proof now waits for BUGSEE_COMPOSED_MAP instead of reading the Android map. Co-authored-by: Cursor --- .../plans/2026-09-16-implementation-plan.md | 2 +- examples/bare/e2e/composed-debug-id.test.ts | 14 ++++-- packages/react-native/plugin/build/gradle.js | 48 +++++++++++++++++- .../react-native/plugin/build/gradle.js.map | 2 +- .../plugin/src/__tests__/plugin.test.ts | 22 ++++++++ packages/react-native/plugin/src/gradle.ts | 50 ++++++++++++++++++- 6 files changed, 131 insertions(+), 7 deletions(-) diff --git a/docs/design/plans/2026-09-16-implementation-plan.md b/docs/design/plans/2026-09-16-implementation-plan.md index 8718b0c2..9ff6217e 100644 --- a/docs/design/plans/2026-09-16-implementation-plan.md +++ b/docs/design/plans/2026-09-16-implementation-plan.md @@ -4079,7 +4079,7 @@ Device: WOD_LX1 `AMRJCP4718402860`, Debug, logged `BUGSEE_E2E appearance nonce=9 - [x] **13.4** Expo config plugin, with a `prebuild --clean` test — the `.xcscheme` edit is the most fragile part and Expo has no helper for it. `CI=1 yarn expo prebuild --clean` in `examples/expo` exited 0 (CocoaPods installed) and left `bugsee-xcode.sh` on *Bundle React Native code and images* plus the Archive `Upload dSYMs` post-action. - [ ] **13.5** End-to-end: a release build whose JS stack symbolicates in the dashboard. This is the only test that proves the whole chain. - Local half only. A debuggable release APK (`:app:assembleRelease -PbugseeE2eDebuggable=true`, arm64, Hermes) on WOD_LX1 `AMRJCP4718402860` reported `debug_ids` `{"index.android.bundle":"3c110b23-2416-5bc6-acac-e35ac7e69aa6"}`, the same UUID as `debug_id` on the composed map `index.android.bundle.map` after `compose-source-maps.js` (`hermes-sourcemaps.js` injects into that map). `debug-files upload` was not executed. The dashboard symbolication half is still open: nothing was uploaded and no Bugsee application was created, so this checkbox stays unchecked. iPhone XS (KRSFT, `00008020-000554DC2641002E`) was offline, so that run was not taken. The iOS Simulator was not run: the SDK compiles `logException` out on the simulator, so a Release simulator build would not retain a `debug_ids` payload. + Local half only. A debuggable release APK (`:app:assembleRelease -PbugseeE2eDebuggable=true`, arm64, Hermes) on WOD_LX1 `AMRJCP4718402860` reported `debug_ids` `{"index.android.bundle":"3c110b23-2416-5bc6-acac-e35ac7e69aa6"}`, the same UUID as `debug_id` on the composed map `index.android.bundle.map` after `compose-source-maps.js` (`hermes-sourcemaps.js` injects into that map). `debug-files upload` was not executed. The dashboard symbolication half is still open: nothing was uploaded and no Bugsee application was created, so this checkbox stays unchecked. iPhone XS (KRSFT, `00008020-000554DC2641002E`) was offline, so that run was not taken. An iOS device run is skipped unless `BUGSEE_COMPOSED_MAP` names the composed map. The iOS Simulator was not run: the SDK compiles `logException` out on the simulator, so a Release simulator build would not retain a `debug_ids` payload. - [ ] Review gate. --- diff --git a/examples/bare/e2e/composed-debug-id.test.ts b/examples/bare/e2e/composed-debug-id.test.ts index 103fac42..62b16912 100644 --- a/examples/bare/e2e/composed-debug-id.test.ts +++ b/examples/bare/e2e/composed-debug-id.test.ts @@ -17,7 +17,9 @@ * requires `Status.Launched`. * * iOS Simulator cannot retain the exception payload: the SDK compiles - * `logException` out there. A Debug simulator run is not this proof. + * `logException` out there. A Debug simulator run is not this proof. An iOS + * device run is skipped unless `BUGSEE_COMPOSED_MAP` names the composed map; + * this file does not default that path to the Android release map. */ import { readFileSync } from 'node:fs'; import { join } from 'node:path'; @@ -43,9 +45,15 @@ const UUID_RE = const RELEASE = process.env.E2E_RELEASE === '1'; const ON_IOS_SIM = ON_IOS && iosTarget() === 'simulator'; -/** Simulator `logException` is compiled out, so it cannot report `debug_ids`. */ +const HAS_COMPOSED_MAP = + process.env.BUGSEE_COMPOSED_MAP !== undefined && process.env.BUGSEE_COMPOSED_MAP !== ''; +/** + * Simulator `logException` is compiled out, so it cannot report `debug_ids`. + * An iOS device run reads whatever map `BUGSEE_COMPOSED_MAP` names; without + * that path the describe is skipped rather than opening the Android map. + */ const describeReleaseProof = - RELEASE && (ON_ANDROID || (ON_IOS && !ON_IOS_SIM)) ? describe : describe.skip; + RELEASE && (ON_ANDROID || (ON_IOS && !ON_IOS_SIM && HAS_COMPOSED_MAP)) ? describe : describe.skip; jest.setTimeout(20 * 60_000); diff --git a/packages/react-native/plugin/build/gradle.js b/packages/react-native/plugin/build/gradle.js index 626ca168..19e6ce40 100644 --- a/packages/react-native/plugin/build/gradle.js +++ b/packages/react-native/plugin/build/gradle.js @@ -379,10 +379,56 @@ function rewriteHermesCommand(source) { return `${indent}hermesCommand = ${HERMES_COMMAND_EXPR}`; }); } +const FINISH_EXEC_LINE = 'bundleTask.services.get(org.gradle.process.ExecOperations).exec {'; +/** + * Gradle 9 removed `Project.exec`. A finish hook written before that still + * calls it from the `doLast` that runs `hermes-sourcemaps.js finish`. Replace + * only that line, keeping its indentation. Any other `project.exec` in the + * file stays. A hook that already uses ExecOperations is unchanged. + */ +function migrateFinishHookExec(source) { + const marker = source.indexOf(PRESERVE_REFUSAL); + if (marker < 0) { + return source; + } + const finishCall = source.indexOf('"finish"', marker); + if (finishCall < 0) { + return source; + } + const doLastAt = source.lastIndexOf('bundleTask.doLast {', finishCall); + if (doLastAt < 0) { + return source; + } + const open = source.indexOf('{', doLastAt); + let depth = 0; + let end = -1; + for (let i = open; i < source.length; i += 1) { + const ch = source[i]; + if (ch === '{') { + depth += 1; + } + else if (ch === '}') { + depth -= 1; + if (depth === 0) { + end = i; + break; + } + } + } + if (end < 0 || finishCall > end) { + return source; + } + const region = source.slice(finishCall, end + 1); + const replaced = region.replace(/^([ \t]*)project\.exec \{$/m, `$1${FINISH_EXEC_LINE}`); + if (replaced === region) { + return source; + } + return source.slice(0, finishCall) + replaced + source.slice(end + 1); +} function ensureHermesHooks(source) { const rewritten = rewriteHermesCommand(source); if (rewritten.includes(PRESERVE_REFUSAL)) { - return rewritten; + return migrateFinishHookExec(rewritten); } return `${rewritten.replace(/\s*$/, '')}\n\n${HERMES_FINISH_HOOK}\n`; } diff --git a/packages/react-native/plugin/build/gradle.js.map b/packages/react-native/plugin/build/gradle.js.map index ca46d625..a76acc05 100644 --- a/packages/react-native/plugin/build/gradle.js.map +++ b/packages/react-native/plugin/build/gradle.js.map @@ -1 +1 @@ -{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../src/gradle.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"gradle.js","sourceRoot":"","sources":["../src/gradle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/react-native/plugin/src/__tests__/plugin.test.ts b/packages/react-native/plugin/src/__tests__/plugin.test.ts index 3391a1fd..9ea87979 100644 --- a/packages/react-native/plugin/src/__tests__/plugin.test.ts +++ b/packages/react-native/plugin/src/__tests__/plugin.test.ts @@ -572,6 +572,28 @@ describe('Android Gradle edits', () => { expect(ensureAppAppliesPlugin(off, null)).toBe(off); }); + it('rewrites a finish hook that still calls project.exec', () => { + const current = ensureAppAppliesPlugin(expoSdk57AppBuildGradle(), versions.sdk); + const stale = current + .replace( + 'bundleTask.services.get(org.gradle.process.ExecOperations).exec {', + 'project.exec {', + ) + .replace( + 'apply plugin: "com.facebook.react"', + 'apply plugin: "com.facebook.react"\nproject.exec {\n commandLine "other"\n}', + ); + expect(stale).toContain('Bugsee preserve directory is the packaged asset directory'); + expect(stale).toContain('project.exec {'); + + const next = ensureAppAppliesPlugin(stale, versions.sdk); + const hook = next.slice(next.lastIndexOf('// After compose-source-maps.js')); + expect(hook).toContain('bundleTask.services.get(org.gradle.process.ExecOperations).exec {'); + expect(hook).not.toContain('project.exec'); + expect(next).toContain('project.exec {\n commandLine "other"\n}'); + expect(ensureAppAppliesPlugin(next, versions.sdk)).toBe(next); + }); + it('finds hermesc nested under react-native when the app sibling package is missing', () => { const app = mkdtempSync(join(tmpdir(), 'bugsee-hermesc-')); try { diff --git a/packages/react-native/plugin/src/gradle.ts b/packages/react-native/plugin/src/gradle.ts index f47c62c9..3e2a6390 100644 --- a/packages/react-native/plugin/src/gradle.ts +++ b/packages/react-native/plugin/src/gradle.ts @@ -406,10 +406,58 @@ function rewriteHermesCommand(source: string): string { }); } +const FINISH_EXEC_LINE = + 'bundleTask.services.get(org.gradle.process.ExecOperations).exec {'; + +/** + * Gradle 9 removed `Project.exec`. A finish hook written before that still + * calls it from the `doLast` that runs `hermes-sourcemaps.js finish`. Replace + * only that line, keeping its indentation. Any other `project.exec` in the + * file stays. A hook that already uses ExecOperations is unchanged. + */ +function migrateFinishHookExec(source: string): string { + const marker = source.indexOf(PRESERVE_REFUSAL); + if (marker < 0) { + return source; + } + const finishCall = source.indexOf('"finish"', marker); + if (finishCall < 0) { + return source; + } + const doLastAt = source.lastIndexOf('bundleTask.doLast {', finishCall); + if (doLastAt < 0) { + return source; + } + const open = source.indexOf('{', doLastAt); + let depth = 0; + let end = -1; + for (let i = open; i < source.length; i += 1) { + const ch = source[i]; + if (ch === '{') { + depth += 1; + } else if (ch === '}') { + depth -= 1; + if (depth === 0) { + end = i; + break; + } + } + } + if (end < 0 || finishCall > end) { + return source; + } + const region = source.slice(finishCall, end + 1); + const replaced = region.replace(/^([ \t]*)project\.exec \{$/m, `$1${FINISH_EXEC_LINE}`); + if (replaced === region) { + return source; + } + return source.slice(0, finishCall) + replaced + source.slice(end + 1); +} + function ensureHermesHooks(source: string): string { const rewritten = rewriteHermesCommand(source); if (rewritten.includes(PRESERVE_REFUSAL)) { - return rewritten; + return migrateFinishHookExec(rewritten); } return `${rewritten.replace(/\s*$/, '')}\n\n${HERMES_FINISH_HOOK}\n`; }