ios - “~/Library/Developer/Xcode/iOS DeviceSupport” 处缺少 iOS 符号

标签 ios iphone xcode ipad

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

应用程序不是在我的机器上构建的,但我的 Xcode 中有 .xcarchive。我只能看到与我的应用相关的崩溃地址符号。不适用于 Apple 框架的其余地址。

如果您在 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 版本的设备收到崩溃,您应该有“6.0 (10A403)”目录,其中包含“~/Library/Developer/Xcode/iOS DeviceSupport”中的所有数据,以查看完整的符号化所有地址的Xcode。

从哪里可以获得这些符号,例如我想要“iPhone OS 7.0.4 (11B554a),硬件型号:iPad3,1”的 Xcode 符号。或者我该如何解决这个问题。

最佳答案

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

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

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

关于ios - “~/Library/Developer/Xcode/iOS DeviceSupport” 处缺少 iOS 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20781026/

相关文章:

android - 在 Facebook 审查之前,我有哪些 App 权限?

ios - Xcode 7.3 - 警告未显示且无法搜索项目

ios - 使用 avcapture session 拉伸(stretch)捕获图像

iPhone:UITextField 结束编辑事件不会隐藏键盘

ios - AWS Cognito 和 DynamoDB 中的 Swift 未解析标识符

iphone - 如何使用 MonoTouch 在 iPhone 上播放视频?

Xcode Haskell 语法高亮

ios - 以编程方式覆盖大小类中的字体

c++ - 空文件中的 Valgrind C++ 内存泄漏

ios - 如何在 Swift 中从 GameScene 移动到 View Controller