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

时间:2013-12-26 07:36:34

标签: ios iphone xcode ipad

在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符号。或者我如何解决这个问题。

1 个答案:

答案 0 :(得分:3)

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

  1. 您需要一个运行相同iOS版本的设备,并且具有与崩溃报告相同的CPU架构的CPU,然后插入您的计算机,以便Xcode可以导入符号
  2. 或者您需要从其他开发者处获取符号。
  3. 通常这些符号是最新Xcode版本的一部分,但是当iOS版本仅包含错误修复但没有API更改时,Apple并不总是提供Xcode更新。