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

Xcode Instruments Time Profile报Unknown Address符号化失败

Xcode Instruments Time Profiler 显示 <Unknown Address> [inlined] 修复方案

该问题是Xcode 13及以上版本的常见问题,通常由CLT路径配置错误、Instruments沙盒权限拦截、dSYM UUID不匹配三个原因叠加导致,按以下顺序操作即可修复:

  • 修复Command Line Tools路径配置
    打开终端执行命令:
    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
    
    执行完成后彻底退出Xcode和Instruments再重新打开,此时Instruments的File > Symbols页面的CLT权限报错会直接消失。注意不要将CLT路径设置为独立安装的Command Line Tools目录(即/Library/Developer/CommandLineTools),必须指向Xcode内置的开发者目录,否则Instruments无法读取Xcode构建产物的符号信息
  • 校验dSYM与运行包的UUID匹配性
    手动选择dSYM不生效的核心原因通常是dSYM和当前设备/模拟器上运行的应用二进制UUID不匹配,可通过终端命令校验:
    1. 查询应用二进制UUID:dwarfdump --uuid <你的AppName.app路径>/AppName
    2. 查询dSYM文件UUID:dwarfdump --uuid <你的AppName.app.dSYM路径>/Contents/Resources/DWARF/AppName
      若两个命令输出的UUID不一致,直接执行rm -rf ~/Library/Developer/Xcode/DerivedData/清空构建缓存,重新Build产物即可,不要复用旧的dSYM文件。
  • 关闭Instruments沙盒限制
    Xcode 13之后Instruments默认开启沙盒,无权限读取用户目录下的dSYM文件,即使手动选择路径也会被系统拦截,导致配置不持久、符号不生效。终端执行命令:
    defaults write com.apple.dt.Instruments DisableSandbox -bool YES
    
    执行完成后彻底退出Instruments再重启。
  • 用正确流程启动Profiler
    不要手动打开Instruments后附加进程,必须在Xcode中打开项目,按Cmd + I直接唤起Instruments启动Profile流程,Xcode会自动将当前构建版本对应的dSYM路径同步给Instruments,无需手动配置。启动Time Profiler后,在顶部录制设置中取消勾选Defer symbol resolution until after recording选项,避免录制完成后再解析符号导致的匹配失败。
  • 真机场景额外检查
    如果是真机调试,先打开Xcode的Window > Devices and Simulators,选中连接的真机右键选择Show Provisioning Profiles,清理所有过期的描述文件;同时确认真机上开发者模式已开启,且已经信任当前使用的开发者证书,第一次启动Profile时真机弹出的调试权限申请要选择允许。

验证标准

完成上述配置后重新录制性能数据,若Symbols页面中你的应用条目旁无黄色警告标识,调用栈可以正常显示自定义函数名,没有大量<Unknown Address> [inlined]提示,即为修复成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.21 16:16:02