升级至MacOS Monterey后Swift包出现ld版本不匹配链接警告
告警根本原因
该警告和你的项目业务代码、iOS 15的平台目标配置无关,是升级Monterey系统后Xcode自带Swift Package Manager(SPM)工具链的兼容问题:Xcode内置的libPackageDescription.dylib库最低适配版本为macOS 11.0,但SPM解析包配置文件(Package.swift)时默认使用的链接目标为macOS 10.15,两者版本不匹配就触发了该告警。
可行解决方案
- 升级Xcode到13.2.1及以上正式版本,该版本已修复了新系统下SPM默认链接目标错误的bug,是成本最低的解决方式。
- 若暂时不便升级Xcode,可手动修改Package.swift配置,强制指定manifest解析的最小macOS版本:
// swift-tools-version:5.5 import PackageDescription let package = Package( name: "你的包名", platforms: [ .macOS(.v11), .iOS(.v15) ], // 其余原有配置保持不变 products: [...], dependencies: [...], targets: [...] ) - 如果是在终端执行SPM相关命令时触发告警,可在命令前临时指定macOS部署目标即可消除警告:
MACOSX_DEPLOYMENT_TARGET=11.0 swift build
补充说明
该警告仅出现在SPM解析包配置的环节,不会影响你的iOS目标编译结果,也不会被打包进最终的iOS应用二进制中,不影响开发进度的情况下也可以选择暂时忽略。
内容的提问来源于stack exchange,提问作者MattiaCintura
相关产品推荐
相关产品推荐

