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

在Xcode 5上,我无法象征崩溃报告。 当我们收到从未附加到我的开发Mac的设备组合(iPad模型+ iOS版本)上生成的崩溃报告时,我遇到了问题。 根本原因是我没有在“/ Library / Developer / Xcode / iOS DeviceSupport”中为所有的iPad提供所有的iOS构build符号。

应用程序不是build立在我的机器上,但是我的Xcode中有.xcarchive 。 我只能看到与我的应用程序相关的崩溃地址的象征。 不是其余的苹果框架的地址。

如果您在Mac上访问“〜/ Library / Developer / Xcode / iOS DeviceSupport”path,则可以看到名称为“7.0.2(11A501)”,“7.0(11A4449d)”,6.1.3(10B329)的文件夹…其中包含来自实际设备的二进制文件(为arm编译)。 当我们将任何开发的iOS设备连接到Mac时,Xcode会将这些符号从实际的设备复制到Mac(只有第一次,或者iOS版本在开发设备上更新时)。 除了我的应用程序地址以外,这些都是符号化的崩溃符号。 例如CoreFoundation 0x2ff85c27 0x2ff7e000 + 31783 (崩溃日志不象征系统库地址)

简而言之,如果您收到xyz iOS版本的崩溃,那么该版本的设备构build目录应该位于“〜/ Library / Developer / Xcode / iOS DeviceSupport”的path上,或者您应该将该版本的iPad连接到Mac,以便Xcode可以收集所有数据从符号化所需的设备。

假设如果您从运行6.0(10A403)iOS版本的设备收到崩溃,则应在“〜/ Library / Developer / Xcode / iOS DeviceSupport”中包含所有数据的“6.0(10A403)”目录,以查看Xcode中的全部符号地址。

从哪里我可以得到这个符号,例如我想Xcode符号为“iPhone OS 7.0.4 (11B554a) ,硬件模型:iPad3,1”。 或者我怎么能解决这个问题。

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

  1. 你可能需要一个运行相同的iOS版本的设备,并且CPU的CPU架构与崩溃报告相同,然后插入你的电脑,这样Xcode可以导入符号
  2. 或者你需要从另一个开发人员那里得到符号。

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