Xcode Mac Catalyst项目构建链接macOS x86_64静态库报错如何解决
报错含义
这个是Xcode链接器ld抛出的目标平台不兼容错误:你当前正在构建Mac Catalyst应用,但你引入的自定义静态库libBackend.a中的my-file.cpp.o目标文件是针对原生macOS平台编译生成的,两者的构建目标规范不匹配,无法完成链接流程,所以触发构建失败。
修复步骤
- 打开
libBackend.a对应的静态库Xcode项目,进入Build Settings > General > Deployment,勾选Mac Catalyst选项,静态库的Catalyst最低部署版本要和主App的Catalyst部署版本保持一致。 - 回到静态库项目的Build Settings页,找到
Architectures配置项,不要手动硬编码仅支持x86_64,使用默认的$(ARCHS_STANDARD)配置即可,Xcode会自动根据构建目标生成适配的架构。 - 编译静态库时,运行目标选择My Mac (Catalyst),不要选择普通的My Mac,编译完成后替换主项目中引用的旧版本
libBackend.a文件。 - 如果你是用自动化脚本、CocoaPods或其他包管理工具编译生成的静态库,需要修改编译配置,添加
SUPPORTS_MACCATALYST=YES编译参数,指定正确的Catalyst部署目标版本。 - 编译完静态库后可以执行命令
lipo -info libBackend.a验证架构,输出中如果包含x86_64-apple-iosx.x-macabi(x.x对应你的部署版本号)即说明Catalyst架构编译成功,重新构建主App即可解决问题。
内容的提问来源于stack exchange,提问作者Top-Master
相关产品推荐
相关产品推荐

