iOS AdHoc应用在某些视图上崩溃

3

我有一个小型应用程序(游戏),在使用“设备开发证书”和模拟器测试时正常工作。

但是,当使用AdHoc配置文件安装应用程序时,在特定的视图中,它会50%的时间崩溃。其他视图完美地工作。

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

谢谢。


我也遇到过类似的崩溃。我通常会先在项目方案中更改构建配置为AdHoc,然后在设备上运行应用程序。这样你就能够重现崩溃并希望能够调试它。 - Tim Reddy
如果使用错误的配置文件在设备上安装应用程序,则应用程序会崩溃。如果我直接使用AdHoc配置文件安装应用程序,它确实会被安装,但会立即崩溃。 - user3141985
3
符号化崩溃日志,你就会找到答案。 - kambala
1个回答

4
您需要从设备获取符号化崩溃日志,需要几个步骤:
  1. 从设备中获取崩溃日志。您可以在Xcode的组织器窗口中找到这些日志。在组织器中,设备选项卡下应该会显示曾经连接到计算机上的各种设备。在其中一些或全部设备下,将显示“设备日志”列表。如果您为任何设备选择了设备日志,则会看到来自该设备的崩溃日志列表。在分发的 ad-hoc 应用程序中发生的崩溃日志通常不会被符号化,因为归档构建通常会使用 Release 构建配置,并且 Xcode 在新应用项目中为您设置的 Release 配置恰好会从生成的产品中剥离调试符号。

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

  3. 在现在已解包的存档的 Payload 目录中,您应该找到您的应用程序包。您需要将该应用程序包与为存档构建项目时生成的 dSYM 包放在一起,放在 Spotlight 可以找到它们的某个地方。如果您只是将应用程序和 dSYM 放在您的主目录中的某个文件夹中,那么这应该就可以解决问题。

  4. 最后,在 Xcode 组织器中,在设备日志下,选择您需要符号化的崩溃报告,并单击 Xcode 窗口底部的“重新符号化”按钮。

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

当然,一旦您获得了符号化的崩溃日志,还需要进行更多工作,以实际修复崩溃,但是获取符号化日志是重要的第一步。符号化日志将向您显示崩溃发生时堆栈的情况,并帮助您确定相关代码。


感谢您详细的回答,告诉我如何获取日志并找到原因。同时,我成功地定位了问题,我使用了这个[https://dev59.com/iHM_5IYBdhLWcg3wQQ3w#9603733]代码片段,当注释掉它时,AdHoc版本的应用程序现在可以完美地工作了。 - user3141985

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接