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