概述:

客户希望运用程序是安稳的,没有bug,并有效地运用体系资源。操作体系经过搜集不同类型的日志来帮助您满足这些希望,您能够运用这些日志来确诊运用程序中的问题:

  • 溃散陈述描述了运用程序是怎么停止的,并记载了溃散时在每个线程上运转的代码。
  • Jetsam事情陈述描述了操作体系停止运用程序时的体系内存条件。
  • 设备控制台日志包括操作体系和运用程序中产生的操作的详细信息。

运用的发行版别,比方运用商店、企业环境或测验团队,都需求你运用溃散陈述和设备日志来确诊客户遇到的问题。发行版构建不包括在Xcode中调试的必要权利。

运用溃散陈述处理安稳性问题

溃散陈述是确诊问题时最常用的日志类型。当收到运用程序的溃散陈述时,运用它们来了解运用程序存在的安稳性问题。溃散陈述描述了你的运用程序是怎么停止的,还包括了每个线程的完整回溯,显现了溃散时代码的运转状况。

运用溃散陈述调试问题:

  • 运用符号信息构建你的运用程序,并在发布运用程序之前保存Xcode存档。

  • 检索某个问题的溃散陈述。有关获取溃散陈述的不同方法,请参阅获取溃散陈述和确诊日志。

– 将十六进制的地址转换为运用程序的符号称号,如在溃散陈述中增加可辨认符号称号所述。

– 确定溃散是否符合辨认常见溃散原因的任何模式。能够参考剖析溃散陈述和查看溃散陈述中的字段来获得关于这个问题的更多信息。

– 更新代码来处理这个问题。

– 运用XCTest结构增加测验,以保证问题不会再次呈现。

### 运用Jetsam事情陈述发现内存低效

保证你的运用程序有效地运用内存。当iOS、iPadOS、watchOS或tvOS上的运用程序低效地运用内存时,其他运用程序能够留在后台内存中的内存就更少了。较低的可用内存限制了用户在运用程序之间切换的速度,因为运用程序无法从内存中恢复,必须先完成完整的运用程序启动。

当操作体系遇到内存不足的状况,并且需求比当前空闲内存更多的内存时,设备的操作体系能够停止运用程序以回收它们正在运用的内存。jetsam事情陈述描述了操作体系停止运用程序的体系内存条件。请参见定位设备上的溃散陈述和内存日志,了解怎么拜访这些日志,并运用jetsam事情陈述辨认高端内存运用,以了解解说jetsam事情陈述的信息。

Jetsam事情陈述不包括运用程序中执行线程的仓库盯梢,但它们包括有关内存运用的额定体系信息。当您的运用程序因为内存压力而溃散时,请参阅搜集有关内存运用的信息以了解您的运用程序的内存运用模式,并响应低内存警告以了解何时降低内存运用。

运用设备控制台日志确诊问题

苹果设备在内存中继续维护着操作体系和各个运用程序的操作记载。在产生问题后,能够查看这些日志。有些问题,比方安装运用程序时呈现的问题,能够经过运用macOS上的Console运用程序查看操作体系日志来确诊。有关拜访设备控制台日志的阐明,请参阅拜访设备控制台日志。

运用日志记载结构将运用程序的日志音讯增加到操作体系的日志中。您提供的日志能够包括额定的分组和标记信息,以帮助从原始用户操作盯梢问题。这些信息关于确诊复杂的交互十分有用,例如调试运用程序与其某个运用扩展之间的交互。


不要在日志中包括隐私灵敏信息

获取溃散陈述和确诊日志

从App Store、TestFlight或直接从设备上搜集溃散陈述和设备日志。

概述

在你的运用发布给用户之后,学习怎么经过搜集溃散陈述和确诊日志来改进它。假如客户陈述你的运用程序呈现问题,请运用Xcode中的Crashes organizer获取有关该问题的陈述,如怎么创建陈述(How are reports created?)假如溃散管理器不包括您需求的确诊信息,或许您无法拜访,客户能够从他们的设备搜集日志,并直接与您共享,以处理问题。有了溃散陈述后,你或许需求在溃散陈述中增加可辨认符号信息,详细信息请参见8.2.3节“在溃散陈述中增加可辨认符号称号”。

关于不是溃散的问题,查看操作体系的控制台日志,以找到确诊问题来源的重要信息。

从TestFlight和App Store搜集溃散陈述

TestFlight和App Store会为你提交的每个版别的运用搜集溃散陈述。假如你在向App Store提交构建时包括了符号信息,溃散陈述会主动符号化。 ReviewBuilding your app to include debugging informationfor the recommended settings.

客户发送的确诊和运用信息会显现在Crash organizer中,如“Share crash, energy, and metrics data with developers”中所述。不管用于手机上的 共享确诊和运用数据选项怎么设置,您运用程序的TestFlight用户都会主动与您共享溃散陈述。假如crash organizer中没有呈现crash陈述,请查看organizer中是否没有crash、energy或metrics陈述,以便从您的客户那里搜集crash陈述。

以下溃散陈述类型无法经过 Crashes organizer 获得,但能够经过其他方法获得。See Transfer Crash Reports and Device Logs To a Mac and Locate Crash Reports and Memory Logs on the Device.

  • 监督事情,比方那些运用启动时刻较慢的事情
  • 无效的code-signature溃散 (签名无效的溃散)
  • 热事情,因为运用程序运用了过多的CPU,设备过热
  • Jetsam事情,用于运用程序的高内存运用

定位设备上的溃散陈述和内存日志

假如客户在您的运用程序中陈述了溃散,而您在溃散管理器中没有针对它的溃散陈述,请让客户经过他们的设备将溃散陈述经过电子邮件发送给您。


watchOS的溃散陈述能够在配对的iPhone上看到