Summary
webrtc-sys/build.rs links framework=Appkit on macOS. The real framework name is AppKit (capital K). Newer Apple ld treats framework names as case-sensitive, so linking a crate that depends on webrtc-sys fails with:
ld: framework 'Appkit' not found
clang: error: linker command failed with exit code 1
The misspelling is still on main and in published crates (0.3.28 through 0.3.43). Older linkers ignored the case, so this did not show up until a newer Xcode/ld.
Fix
webrtc-sys/build.rs (macos branch):
- println!("cargo:rustc-link-lib=framework=Appkit");
+ println!("cargo:rustc-link-lib=framework=AppKit");
That is the only Appkit occurrence in the crate.
Environment
- OS: macOS 15.7.9 (arm64)
- Xcode: 26.3 (build 17C529)
- rustc: 1.95.0
- webrtc-sys: 0.3.28 (also present on
main / 0.3.43)
Reproduction
Link any macOS binary that depends on webrtc-sys with a current Xcode toolchain. The linker command includes -framework Appkit and fails as above.
Happy to open a PR with the one-line change if that's preferred.
Summary
webrtc-sys/build.rslinksframework=Appkiton macOS. The real framework name isAppKit(capital K). Newer Appleldtreats framework names as case-sensitive, so linking a crate that depends onwebrtc-sysfails with:The misspelling is still on
mainand in published crates (0.3.28through0.3.43). Older linkers ignored the case, so this did not show up until a newer Xcode/ld.Fix
webrtc-sys/build.rs(macos branch):That is the only
Appkitoccurrence in the crate.Environment
main/ 0.3.43)Reproduction
Link any macOS binary that depends on
webrtc-syswith a current Xcode toolchain. The linker command includes-framework Appkitand fails as above.Happy to open a PR with the one-line change if that's preferred.