在"〜/ Library/Developer/Xcode/iOS DeviceSupport"中缺少iOS符号

atr*_*ane 5 iphone xcode ipad ios

在Xcode 5上,我无法表示崩溃报告.当我们收到从未连接到我的开发Mac的设备组合(iPad型号+ iOS版本)上生成的崩溃报告时,我遇到了问题.根本原因是我没有"/ Library/Developer/Xcode/iOS DeviceSupport"中所有iPad的所有iOS构建符号.

应用程序不是在我的机器上构建的,但我的Xcode中有.xcarchive.我可以看到与我的应用程序相关的崩溃地址的符号.不是苹果框架的其余地址.

如果你在Mac上找到路径"〜/ Library/Developer/Xcode/iOS DeviceSupport",你可以看到名称为"7.0.2(11A501)","7.0(11A4449d)",6.1.3(10B329)的文件夹......其中包含来自实际设备的二进制文件(为arm编译).当我们将任何开发iOS设备连接到Mac时,Xcode会将这些符号从实际设备复制到Mac(仅限第一次,或者每当iOS版本在开发设备上更新时).除了我的应用程序地址之外,还需要这些符号来表示崩溃符号.例如CoreFoundation 0x2ff85c27 0x2ff7e000 + 31783(崩溃日志不符号系统库地址)

简而言之,如果您在xyz iOS版本上收到崩溃,该版本的设备的构建目录应位于路径"〜/ Library/Developer/Xcode/iOS DeviceSupport".或者您应该将该版本的iPad连接到Mac,以便Xcode可以收集所有数据来自需要符号化的设备.

假设您从运行6.0(10A403)iOS版本的设备收到崩溃,您应该在"〜/ Library/Developer/Xcode/iOS DeviceSupport"中包含"6.0(10A403)"目录,以查看Xcode中的完整符号地址.

从这里我可以得到这个符号,例如我想要"iPhone OS 7.0.4 (11B554a),硬件型号:iPad3,1"的Xcode符号.或者我如何解决这个问题.

Ker*_*rni 3

解决这个问题只有两种方法:

  1. 您需要一台运行相同 iOS 版本并且具有与发生崩溃报告的 CPU 架构相同的 CPU 的设备,然后插入您的计算机,以便 Xcode 可以导入符号
  2. 或者您需要从其他开发人员处获取符号。

通常这些符号是最新 Xcode 版本的一部分,但当 iOS 版本仅包含错误修复但不包含 API 更改时,Apple 并不总是提供 Xcode 更新。