You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI iOS构建报错:clang++ exited with code 1,ld:framework not found System

.NET iOS构建报错:ld:framework not found System(Xcode 14.3 + 最新版macOS)

问题现象

更新到最新版macOS和Xcode 14.3后,原.NET iOS项目构建失败,报错信息如下:

clang++ exited with code 1:
ld:framework not found System
clang: error: linker command failed with exit code 1

已尝试的排查操作

  • 已在Visual Studio偏好设置>SDK位置>Apple中配置SDK路径,且通过终端命令xcode-select -p确认路径正确
  • 切换过多个不同的Xcode版本
  • 通过global.json指定过不同.NET版本(包括最新的7.0.203)
  • 尝试调整iOS目标版本时,无法设置高于16.4(提示“SupportedOSPlatformVersion 16.4不能高于TargetPlatformVersion 16.1”)
  • 卸载并重装iOS workload:执行dotnet workload uninstall ios和dotnet workload install ios命令
  • 删除过项目的bin和obj目录
  • 新建MAUI项目可正常构建,逐步添加故障项目所用的所有库后仍能正常运行,但原项目始终报错

可行解决建议

  1. 检查项目文件的框架引用
    打开原项目的.csproj或.fsproj文件,排查是否存在错误的<FrameworkReference>或<PackageReference>,尤其是和System相关的引用,确认版本和当前.NET iOS workload兼容。另外看看有没有手动加过-framework System的链接器参数,这类参数在Xcode 14.3环境下可能引发冲突,直接删掉试试。

  2. 清理全局缓存

    • 执行命令清理.NET全局缓存:
      dotnet nuget locals all --clear
      
    • 清理Xcode派生数据:打开Xcode,点击Xcode>Settings>Locations,找到Derived Data对应的路径,删除该文件夹。
  3. 调整链接器配置
    在项目属性的iOS构建选项里,切换链接器行为为Link Framework SDKs Only或Don't Link(仅用来排查问题,发布时记得调回合适选项)。同时检查有没有自定义的链接器参数,比如<MtouchExtraArgs>里的内容,暂时移除后再构建试试。

  4. 重置项目MSBuild配置
    先备份原项目,然后删除项目根目录下的.vs、bin、obj文件夹,再删掉用户目录~/.nuget/packages里和项目相关的包。重新打开项目,还原NuGet包后再尝试构建。

  5. 统一TargetPlatformVersion配置
    打开项目文件,把<TargetPlatformVersion>设置为16.4,确保和<SupportedOSPlatformVersion>版本匹配——Xcode 14.3对应的是iOS 16.4,这样就能解决版本不匹配的提示问题。

内容的提问来源于stack exchange,提问作者Jimmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:22:26