Skip to content

Run the iOS test app in Release mode on CI #415

Description

@kraenhansen

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:

- 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Apple 🍎Anything related to the Apple platform (iOS, macOS, Cocoapods, Xcode, XCFrameworks, etc.)CIContinuous integration

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions