mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-17 13:13:35 +08:00
The macOS notification bridge is compiled by build.rs outside Cargo's Rust target handling. On Apple Silicon, clang defaulted macos_notifications.o to arm64 even when Cargo was building x86_64, so the x64 release job ignored the object and missed the exported notification symbols. Constraint: The ObjC bridge is linked manually through cargo:rustc-link-arg Constraint: Release workflow builds both aarch64-apple-darwin and x86_64-apple-darwin from macOS runners Rejected: Rely on clang default architecture | Apple Silicon defaults arm64 and breaks x86_64 linking Confidence: high Scope-risk: narrow Directive: Keep native ObjC bridge compilation aligned with Cargo TARGET when adding platform bridge files Tested: cargo fmt --check Tested: git diff --check Tested: cargo check --target aarch64-apple-darwin Tested: cargo build --target x86_64-apple-darwin --release Tested: file target/x86_64-apple-darwin/release/.../macos_notifications.o reports Mach-O 64-bit object x86_64 Not-tested: Full GitHub release workflow after retag before pushing