Problem
The osx-arm64 runtime built on the current macOS runner passed its native/package tests but carried LC_BUILD_VERSION minos 26.5. The build script pinned CMAKE_OSX_DEPLOYMENT_TARGET=12.0 only when ThinLTO was enabled; the ordinary release package inherited the runner SDK default.
Observed package run: https://github.com/SceneTech/WebScene/actions/runs/35015648830
Observed dylib SHA-256: 4406a4b115939fcc9fc1089cbe0be484a87a6ac0bf8e7048bff2f65415c88e68
This silently makes consumers require macOS 26.5 even when their app and other packaged libraries declare an older minimum. Code OSS AppScene declares macOS 26.0, and its linker exposed the mismatch.
Proposed fix
Apply the existing 12.0 deployment target to every Darwin runtime build, independent of ThinLTO. Before dSYM generation, inspect the produced Mach-O with xcrun vtool and fail unless minos exactly matches the pinned target.
A package or consumer bundle may still have a higher effective minimum because of its other dependencies; the WebScene runtime must not raise it accidentally.
Acceptance
- The macOS native runtime build and tests pass.
- vtool reports minos 12.0 for the packaged WebScene dylib.
- The build fails before packaging if a toolchain or runner silently changes that value.
- Package and clean-consumer jobs remain green on macOS and Linux.
Implemented in commit 5baf7e5 on draft PR #76; keep it unmerged until the complete matrix and Code OSS release smoke pass.
Problem
The osx-arm64 runtime built on the current macOS runner passed its native/package tests but carried LC_BUILD_VERSION minos 26.5. The build script pinned CMAKE_OSX_DEPLOYMENT_TARGET=12.0 only when ThinLTO was enabled; the ordinary release package inherited the runner SDK default.
Observed package run: https://github.com/SceneTech/WebScene/actions/runs/35015648830
Observed dylib SHA-256: 4406a4b115939fcc9fc1089cbe0be484a87a6ac0bf8e7048bff2f65415c88e68
This silently makes consumers require macOS 26.5 even when their app and other packaged libraries declare an older minimum. Code OSS AppScene declares macOS 26.0, and its linker exposed the mismatch.
Proposed fix
Apply the existing 12.0 deployment target to every Darwin runtime build, independent of ThinLTO. Before dSYM generation, inspect the produced Mach-O with xcrun vtool and fail unless minos exactly matches the pinned target.
A package or consumer bundle may still have a higher effective minimum because of its other dependencies; the WebScene runtime must not raise it accidentally.
Acceptance
Implemented in commit 5baf7e5 on draft PR #76; keep it unmerged until the complete matrix and Code OSS release smoke pass.