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

AppDynamics.Agent.Maui在M1 Mac iOS模拟器编译报错:x86_64符号缺失

解决M1芯片Mac上iOS模拟器编译AppDynamics MAUI包失败的问题

问题说明

使用NuGet包AppDynamics.Agent.Maui 2023.2.0的MAUI应用,在Android平台、iOS物理设备、Intel处理器Mac的iOS模拟器上均可正常运行,但在M1芯片Mac的iOS模拟器编译时触发链接错误,提示x86_64架构下缺失ADEumAgentConfiguration等AppDynamics相关类的符号,推测是原生xcframework缺少对应架构支持导致。

解决办法

  • 强制用Rosetta运行VS for Mac
    M1 Mac的iOS模拟器默认以arm64架构运行,部分旧版NuGet包仅支持x86_64架构。右键点击「Visual Studio for Mac」应用选择「显示简介」,勾选「使用Rosetta打开」,重启VS后重新编译项目。

  • 修改iOS项目架构配置
    打开MAUI项目属性,进入「iOS Build」选项卡,在「高级」设置中将「支持的架构」改为x86_64,同时关闭「使用现代编译器」选项,避免架构冲突。

  • 升级AppDynamics MAUI包版本
    官方后续版本可能修复了M1模拟器的架构适配问题,尝试将AppDynamics.Agent.Maui升级到最新稳定版。

  • 手动调整NuGet包架构配置(若可操作包内容)
    解压NuGet包,找到内部iOS绑定项目的.csproj文件,添加以下配置确保xcframework同时支持arm64和x86_64架构,重新打包后引用到项目:

    <PropertyGroup>
      <MTouchArch>x86_64;arm64</MTouchArch>
    </PropertyGroup>
    
  • 临时跳过模拟器环境的AppDynamics初始化
    在MAUI的iOS入口代码中,判断当前是否为M1模拟器环境,仅在真机和Intel模拟器上启用AppDynamics初始化:

    #if DEBUG
    using ObjCRuntime;
    #endif
    
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
    #if DEBUG
        if (Runtime.Arch == Arch.Arm64 && Runtime.IsSimulator)
        {
            return base.FinishedLaunching(app, options);
        }
    #endif
        ADEumInstrumentation.WithKey("你的密钥");
        return base.FinishedLaunching(app, options);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:21