我有一个小应用程序(游戏),在使用设备开发证书和模拟器的设备上测试时工作正常。
但是当通过AdHoc配置文件安装应用时,在特定视图上,它会崩溃50%的次数。其他观点完美无缺。
如何查看导致应用崩溃的原因,因为它在Xcode中的AdHoc模式下未显示任何日志信息。
感谢。
答案 0 :(得分:4)
您需要从设备获取符号化的崩溃日志,这需要几个步骤:
从设备上获取崩溃日志。您可以在Xcode的管理器窗口中找到日志。在组织器中,在设备选项卡下,您应该看到各种设备已连接到您的计算机。在部分或全部设备下,将出现“设备日志”列表。如果为任何设备选择设备日志,您将看到该设备的崩溃日志列表。 ad-hoc分布式应用程序中发生崩溃的日志通常不会被符号化,因为归档构建通常是使用Release构建配置完成的,并且Xcode在新的应用程序项目中为您设置的Release配置恰好从构建的产品中剥离调试符号。
您在分发ad-hoc之前创建的存档实际上只是一个ZIP文件。从Xcode中,在finder中显示存档,并将存档文件的扩展名更改为“zip”,以便您可以在finder中解压缩它(或者只需从命令行解压缩该文件,无论哪种方式,您只需要获取存档解压缩)。
在您现在解压缩的存档的Payload目录中,您应该找到您的应用包。您需要获取该应用程序包并将其放在生成用于存档的项目时生成的dSYM包旁边,Spotlight可以在其中找到它们。如果您只是将应用程序和dSYM放在主目录中的某个文件夹中,那么这应该可以解决问题。
最后,在Xcode组织器的“设备日志”下,选择需要符号化的崩溃报告,然后单击Xcode窗口底部的“重新符号化”按钮。
如果你没有拥有你的存档版本中的dSYM包,你可能需要再次构建存档,这次,在构建日志中,查找“Generate foo.dSYM” step(应该是“Build succeeded”之前的最后一步或最后一步)。如果展开该步骤的命令,您应该能够看到dSYM的生成位置。只需将它保存在某处,以便以后再使用。然后ad-hoc分发并安装新构建的存档,重现崩溃,并按照上面的步骤1-4来表示新的崩溃日志。
当然,一旦你有了符号化的崩溃日志,就可以做更多事情来实际修复崩溃,但获取符号化日志是重要的第一步。符号化日志将显示崩溃发生时堆栈的样子,并帮助您查明相关代码。