【问题标题】:iOS AdHoc app crashes at some viewsiOS AdHoc 应用程序在某些视图中崩溃
【发布时间】:2014-07-09 18:32:55
【问题描述】:

我有一个小型应用程序(游戏),在具有设备开发证书的设备和模拟器上测试时都可以正常工作。

但是,当通过 AdHoc 配置文件安装应用时,在特定视图上,它有 50% 的几率会崩溃。其他视图完美运行。

我如何查看导致应用崩溃的原因,因为它在 Xcode 的 AdHoc 模式下不显示任何日志信息。

谢谢。

【问题讨论】:

  • 我也遇到过类似的崩溃。我通常首先要做的是将项目方案中的构建配置更改为 AdHoc,然后在设备上运行该应用程序。然后,您将能够重现崩溃并希望对其进行调试。
  • 如果使用错误的配置文件安装在设备上,应用程序会崩溃。如果我直接使用 AdHoc 配置文件安装应用程序,它会安装,但会立即崩溃。
  • 符号化崩溃日志,你会发现

标签: ios crash ad-hoc-distribution


【解决方案1】:

您需要从设备中获取符号化的崩溃日志,这需要几个步骤:

  1. 从设备中获取崩溃日志。您可以在 Xcode 的管理器窗口中找到日志。在管理器中,在设备选项卡下,您应该会看到已在某一点或另一点连接到您的计算机的各种设备。在部分或所有这些设备下将有一个“设备日志”列表。如果您为任何设备选择设备日志,您将看到来自该设备的崩溃日志列表。临时分布式应用程序中发生的崩溃日志通常不会被符号化,因为归档构建通常是使用 Release 构建配置完成的,而 Xcode 在新应用程序项目中为您设置的 Release 配置恰好从构建的产品中去除调试符号。

  2. 您在分发 ad-hoc 之前创建的存档实际上只是一个 ZIP 文件。在 Xcode 中,在查找器中显示存档,并将存档文件的扩展名更改为“zip”,以便您可以在查找器中解压缩它(或者只需从命令行将解压缩指向文件,无论哪种方式,您只需要获取您的存档解压)。

  3. 在您现在解压的存档的 Payload 目录中,您应该可以找到您的应用程序包。您需要将该应用程序包放在构建项目以进行归档时生成的 dSYM 包旁边,Spotlight 可以找到它们的位置。如果您只是将应用程序和 dSYM 并排放置在主目录中的某个文件夹中,那应该可以解决问题。

  4. 最后,在 Xcode 管理器中,在 Device Logs 下,选择您需要符号化的崩溃报告,然后单击 Xcode 窗口底部的“重新符号化”按钮。

如果您没有存档构建中的 dSYM 包,您可能需要再次构建以进行存档,这一次,在构建日志中查找“生成 foo.dSYM”步骤(应该是“构建成功”之前的最后一步或最后一步)。如果您展开该步骤的命令,您应该能够看到 dSYM 的生成位置。只需将其保存在某个地方,以便以后使用。然后临时分发并安装您新建的存档,重现崩溃,并按照上面的步骤 1-4 符号化新的崩溃日志。

当然,在获得符号化崩溃日志后,要真正修复崩溃,还有更多工作要做,但获取符号化日志是重要的第一步。符号化日志将向您显示崩溃发生时堆栈的样子,并帮助您查明相关代码。

【讨论】:

  • 感谢您详细解答如何获取日志并查找原因。同时,虽然我能够找到问题,但我正在使用这段 [stackoverflow.com/questions/1451342/… 代码,当被注释掉时,AdHoc 版本的应用程序现在可以完美运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2022-12-01
  • 1970-01-01
相关资源
最近更新 更多