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

Windows下.NET MAUI iOS模拟器编译失败求助(clang++错误)

解决方案:iOS模拟器编译架构不匹配问题(AppCenter相关)

问题分析

错误核心是:编译iOS模拟器(arm64架构)时,链接了为iOS真机编译的AppCenter.a库文件,导致架构不兼容。添加ForceSimulatorX64ArchitectureInIDE未生效,大概率是配置范围不准确或AppCenter包本身的兼容问题。

解决步骤

1. 调整模拟器架构强制配置

修改项目的.csproj文件,将架构强制配置的条件放宽,确保覆盖所有iOS模拟器编译场景:

<PropertyGroup Condition="'$(TargetFramework)' == 'net8.0-ios' and '$(IsSimulator)' == 'true'">
  <ForceSimulatorX64ArchitectureInIDE>true</ForceSimulatorX64ArchitectureInIDE>
  <RuntimeIdentifier>iossimulator-x64</RuntimeIdentifier>
  <MtouchArch>x64</MtouchArch>
</PropertyGroup>
  • 用IsSimulator条件替代原有的严格配置,更准确匹配模拟器编译场景
  • 显式指定RuntimeIdentifier和MtouchArch为x64,强制使用x64架构编译模拟器版本

2. 更新AppCenter NuGet包到最新版本

当前使用的Microsoft.AppCenter 5.0.4版本较旧,可能未适配ARM64模拟器或.NET 8 iOS 18.0 SDK。尝试更新到最新稳定版:

<PackageReference Include="Microsoft.AppCenter" Version="5.0.5" />
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="5.0.5" />
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="5.0.5" />

3. 清理编译缓存

删除Mac上的Xamarin编译缓存,避免残留的旧架构文件干扰:

  1. 关闭Visual Studio和Mac上的Xcode
  2. 删除目录:/Users/sam/Library/Caches/Xamarin/mtbs/builds/CompanyMobile/
  3. 回到Windows端,清理项目的bin和obj目录,重新生成解决方案

4. 手动指定模拟器架构

在Visual Studio中:

  1. 右键项目 → 属性 → iOS → 构建
  2. 在"高级"选项卡中,将"模拟器架构"设置为x64
  3. 保存设置后重新编译

5. 验证SDK兼容性

如果上述步骤无效,可尝试:

  • 降级.NET iOS SDK到17.x版本(与iOS 17.5对应),确认是否与AppCenter 5.0.4兼容
  • 检查AppCenter官方文档,确认当前版本对.NET 8 + iOS 18.0的支持情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:52:21