Repository navigation
Description
Tracking the TODO in the test-ios job of .github/workflows/check.yml.
The iOS integration tests only ever run in the default (Debug) configuration; the Release invocation is present but commented out:
react-native-node-api/.github/workflows/check.yml
Lines 236 to 240 in 29a527d
| - name: Run tests (iOS) | |
| run: pnpm run test:ios:allTests | |
| # TODO: Enable release mode when it works | |
| # run: pnpm run test:ios:allTests --mode Release | |
| working-directory: apps/test-app |
Debug-only coverage leaves the configuration users actually ship untested. Release differs in ways that matter for this project specifically: optimisation and dead-stripping can drop symbols the addon loader looks up at runtime, NDEBUG removes the asserts that the C++ host relies on for its invariants, and code-signing/bitcode behaviour differs for the dynamic libraries inside the prebuilt XCFrameworks.
The TODO says "when it works", so the first step is to find out how it currently fails — run pnpm run test:ios:allTests --mode Release locally against apps/test-app and capture the failure. Depending on what it is, the fix may live in the prebuild pipeline (packages/host/src/node/prebuilds/apple.ts) rather than in the workflow.
Related: Logger.cpp unconditionally emits debug logs, which a Release run would surface (see the "disable debug logging in release builds" issue).
Activity