Context
docs/NATIVE_ONLY_REDESIGN.md line 227 notes that "the macOS build cannot be exercised from CI on Linux." Today the Swift broker (native-app/Sources/NativeAppLib/AuthenticationServicesBroker.swift) is only validated through BrokerCoreTests with a StubCredentialBroker. The actual ASAuthorizationController path is not exercised in CI.
Issue #40 is already open for Extended Validation OpenSSL/pkg-config issues on the macOS runner — that's a related but narrower bug. This roadmap item is broader: stand up a macOS runner with the build/test matrix needed to exercise the real broker, signing, and notarization pre-flight on every PR (or a nightly cadence).
Proposed Fix
- Provision a self-hosted macOS runner (or evaluate GitHub-hosted
macos-latest for cost/throughput).
- Add a workflow (or extend
extended-validation.yml) that runs xcodebuild against native-app/, executes the Swift test suite, and exercises the Rust+Swift IPC contract end-to-end against a debug-signed bundle.
- Gate notarization-pre-flight checks (codesign verify, entitlements diff) here rather than only at release time.
Acceptance criteria
Context
docs/NATIVE_ONLY_REDESIGN.mdline 227 notes that "the macOS build cannot be exercised from CI on Linux." Today the Swift broker (native-app/Sources/NativeAppLib/AuthenticationServicesBroker.swift) is only validated throughBrokerCoreTestswith aStubCredentialBroker. The actualASAuthorizationControllerpath is not exercised in CI.Issue #40 is already open for
Extended ValidationOpenSSL/pkg-config issues on the macOS runner — that's a related but narrower bug. This roadmap item is broader: stand up a macOS runner with the build/test matrix needed to exercise the real broker, signing, and notarization pre-flight on every PR (or a nightly cadence).Proposed Fix
macos-latestfor cost/throughput).extended-validation.yml) that runsxcodebuildagainstnative-app/, executes the Swift test suite, and exercises the Rust+Swift IPC contract end-to-end against a debug-signed bundle.Acceptance criteria
xcodebuild testagainstnative-app/on every PR or nightly, with results reported.ASAuthorizationControllerpath against a stub identity provider.