在Xcode中处理符号文件


285

我想知道是否有人能告诉我Xcode在插入设备后显示“正在处理符号文件”时实际上在做什么?

屏幕截图


我不得不等待很长时间……大约30分钟,之后在设备上的部署成功了。Mac可能需要一些时间来识别设备。
Jayprakash Dubey's

Answers:


263

它会从设备上下载(调试)符号,因此可以在具有特定iOS版本的设备上进行调试,也可以符号化在该iOS版本上发生的崩溃报告。

由于符号是特定于CPU的,因此仅当您不仅为特定的iOS设备而且为特定的CPU类型导入了符号时,以上操作才有效。当前需要的CPU类型是armv7(例如iPhone 4,iPhone 4s),armv7s(例如iPhone 5)和arm64(例如iPhone 5s)。

因此,如果您要符号化在具有armv7s的iPhone 5上发生的崩溃报告,并且仅具有该特定iOS版本的armv7的符号,则Xcode将无法(完全)符号化崩溃报告。


19
我最近发现Xcode无法处理我的iPad2或iPhone4s中的符号文件。它总是会在中途停止并且永远不会完成,即使在半小时后也是如此。最后,我通过一根全新的连接器电缆并将其直接插入我的Mac Mini(以前我是通过一根扩展电缆插入)的方法来工作的。我得出的结论是,不良的连接确实会使符号更新陷入混乱。
Ash

5
那么,为什么不将这些符号与xcode分发捆绑在一起呢?为什么要麻烦从设备中提取它们的麻烦呢?
马修·埃克森

3
每个(iOS)版本的所有体系结构的符号大小都大于1GB,并且每个bugfix版本并不总是有Xcode更新。仅使用API​​更新/更改来更新Xcode。
科尔尼

@VladimirDespotovic您想在这里解决什么?这不是问题。这需要完成,因为调试器需要此数据,并且对于崩溃符号也需要这样做。这个问题也没有说明问题。
克尼

36

在Xcode 6.1.1(6A2008a)中,在“处理符号文件”之后,在〜/ Library / Developer / Xcode / iOS DeviceSupport /中创建了一个包含与设备关联的符号的文件夹(包括iOS版本和CPU类型),如下所示:

在此处输入图片说明


6
(null)(null)中是什么?
Anton Tropashko 2015年

6
@AntonTropashko (null) ((null))实际上。
亚历杭德罗·伊万

6
在我的情况下,“(null)((null))”不包含任何内容!
Sjakelien '16

7
由于Sym文件是在需要时下载的,因此我将这个位置中的所有文件夹都丢弃了。它在我的SSD上释放了超过24个演出!
Sjakelien '16

@Sjakelien文件夹的标签正确,然后
Brad Thomas

19

xCode只是复制所有崩溃日志。如果要加快速度:在分析崩溃报告后,直接在此窗口中将其删除。

Devices -> View Device Logs -> All Logs

屏幕截图


@QLiu好的。似乎是错误,或日志大于预期。
WINSergey

如何访问这些日志?(我有Xcode的0经验)

@Ben窗口->设备->在左侧选择设备->完成
WINSergey

4

在我看来,象征是永远的。我用开/关和主页按钮强制重启手机。现在快速完成符号化,我开始通过xcode运行我的应用程序。


1

我知道这不是技术解决方案,但是我通过电缆将iphone与计算机连接,然后将设备与计算机断开连接,然后再次(通过电缆再次连接)对我有用,因为我无法通过以下解决方案解决它之前提供。


那可能是幸运的时机……或对您采取的其他行动的反应迟钝。我断开连接并重新连接,然后回到此模式,直到完成为止。
Paul Masri-Stone


0

烦人的错误。我通过将电缆直接插入iPad来解决此问题。由于某种原因,如果我将iPad放在Apple的直通支架上,该过程将永远无法完成。


3
这是一个错误,因为如果我将其放在架子上,它将永远无法完成。
GoldenJoe

2
我认识到答案的表达很差,但对我来说确实是正确的,尽管usb-hub可以很好地完成任何其他任务,但直接连接到为我解决的usb端口
jalone

0

添加与您的iPhone iOS对应的SDK版本,例如:iOS 10.3

路径:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport


正在下载。完成后就可以了。如图所示:

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.