分析崩溃报告
在您通过使用TestFlight分发应用程序以进行测试之后,或者在应用商店上提供该应用程序之后,您可以定期下载并分析崩溃报告。当应用程序崩溃时,系统创建一个崩溃日志,描述应用程序终止的条件,在大多数情况下,包括每个执行线程的完整堆栈跟踪。Apple提供了一个崩溃报告服务,用于收集和聚合用户崩溃日志。崩溃报告可用于应用,WatchKit扩展程序和其他附加应用信息。
或者,直接在设备上查看崩溃日志或导入崩溃报告,如在设备窗口中查看和导入崩溃中所述。例如,如果您在应用商店之外发布应用,您可以直接从用户处索取崩溃报告并将其导入Xcode。
关于崩溃报告服务
苹果提供的服务允许您下载最新的应用程序版本并且构建您通过商店分发的崩溃报告。该服务收集并将类似的崩溃日志分组到崩溃报告中。每个应用程序的构建可能有多个崩溃报告,每个崩溃报告可能包含多个崩溃日志。但是,崩溃日志不会发送到Apple,除非用户同意与应用开发人员共享崩溃数据。TestFlight用户自动同意共享崩溃数据。该服务执行以下操作来生成崩溃报告:
1、从在用户设备上运行的应用和附加应用中收集崩溃日志
2、表示崩溃日志(用可读名称替换内存地址)
3、比较堆栈跟踪,以识别并将类似的崩溃日志分组到崩溃报告中
4、从崩溃日志中删除所有个人用户数据
5、提供发生崩溃的非重复设备的总数
6、为每个崩溃报告提供一组示例崩溃日志
7、每天更新崩溃报告
Xcode在崩溃组织者中显示有关崩溃报告的信息:
查看崩溃报告之前
执行所有这些步骤以完全启用崩溃报告服务。如果您之前已将带有符号的应用程序上传到iTunes Connect并使用TestFlight或商店分发过,则您可能已经在崩溃管理器中看到崩溃报告。如果您在“崩溃”管理器中未看到崩溃报告,请验证是否已执行这些步骤。
1、在Xcode中,在账户偏好设置中,添加开发者的Apple ID,添加您的Apple ID帐户中。
2、按照设置版本号和构建字符串中所述设置版本和内部版本号。如果您正在分发您的应用程序的另一个版本,请增加构建字符串。
3、创建单个应用程序归档,并将其上传到iTunes Connect与符号,如上传您的应用程序到iTunes Connect中所述。(请确保在点击上传之前选中了“为应用添加应用符号...”复选框。)
4、不要删除您上传到iTunes Connect的存档。
5、在iTunes Connect中,按照TestFlight Beta测试(可选)中所述,使用TestFlight将应用程序分发给测试人员,或者将应用程序提交审核,如将应用程序提交到应用程序审阅中所述。
6、从应用商店下载应用的用户需要同意与应用开发者共享崩溃数据,如使用应用开发者共享崩溃数据中所述。(TestFlight用户自动同意共享崩溃数据。)
7、在Xcode中,要查看崩溃报告,请输入作为团队代理或管理员或iTunes Connect用户的Apple ID。
8、在Xcode中,要从崩溃组织器中的堆栈框架转到调试导航器中的源代码,请打开已归档并上传到iTunes Connect的Xcode项目。
此外,允许最多三天之间,从您第一次分发您的应用程序,当崩溃报告出现在Xcode。为了保持良好的用户体验,当用户允许时,崩溃数据从用户设备发送到Apple。
在崩溃管理器中查看崩溃报告
The Crashes organizer 显示所有您的团队开发的所有应用程序的崩溃报告。
查看崩溃报告
1、在The Crashes organizer,点击crashes 。
2、在左侧列中,从列表中选择一个应用程序或本地存档。
应用程序列表从iTunes Connect获取,并包括有关您上传到iTunes Connect的每个版本和构建的信息。
3、在第二列的顶部,从弹出菜单中选择一个版本和构建。
Xcode开始刷新您选择的版本和构建的崩溃报告。Xcode下载前25个崩溃报告 - 在过去两周内,在非重复设备上发生次数最多的崩溃报告。
4、在第二列中,选择崩溃报告。
崩溃报告的标题默认为可能发生崩溃的堆栈框架。崩溃唯一设备发生的次数显示在崩溃标题下方。WatchKit扩展程序的崩溃报告用手表图标()表示,其他应用程序扩展程序的崩溃报告用拼图图标()表示。
5、在详细信息区域中,查看崩溃日志。
详细信息区域显示每个线程的堆栈跟踪。发生崩溃的堆栈帧以橙色突出显示。
6、在检查器中,添加信息并查看崩溃报告的统计信息。
查看和查找崩溃报告
在崩溃报告列表中,执行以下操作:
1、要搜索崩溃报告,请在底部的搜索字段中输入字符串。
2、要在Finder中查看崩溃报告的崩溃日志,按住Control键并单击崩溃报告,然后选择在Finder中显示。
在详细信息区域中,执行以下操作:
1、要查看崩溃报告的上一个或下一个崩溃日志,请单击页脚中的页面箭头(<或>),或单击页面计数(例如11 of 20),然后从弹出菜单中选择一个页面。
2、要折叠或展开崩溃日志,请单击页脚左下角的过滤器图标()。折叠崩溃日志以仅查看应用程序中的堆栈框架。展开崩溃日志以查看所有堆栈帧,包括框架和系统堆栈帧。
编辑有关崩溃报告的信息
解决问题时,可以在本地存储有关崩溃报告的信息。
在崩溃报告列表中,执行以下操作:
1、要将崩溃报告标记为已解决,请选择崩溃报告旁边的圆形或检查器底部的圆形,然后点击“标记为已解决”。
2、要显示或隐藏已解决的崩溃报告,请在搜索字段旁边的页脚中选择圈子()。
在详细信息区域中,执行以下操作:
1、要更改崩溃报告的名称,请将插入点放在标题中并编辑文本。
在检查器中,执行以下操作:
要添加有关崩溃报告的注释,请在注释文本字段中输入注释。
在调试导航器中打开源代码
1、在详细信息区域中,执行以下操作:
2、要转到堆栈帧的源代码,将鼠标悬停在堆栈框架上,然后单击右侧显示的箭头。
要转到发生崩溃的源代码,请单击将指针悬停在已突出显示的堆栈框架上时出现的箭头。
在检查器中,执行以下操作:
1、要转到堆栈框架的源代码,请单击“在项目中打开”。
Xcode打开关联的项目并在调试导航器中显示代码行。
查看关于崩溃报告的统计信息
根据设备类型,操作系统和日期查看过去两周的崩溃数据。要更改设备类型,请从弹出菜单中选择设备类型。要更改操作系统,请从弹出菜单中选择操作系统。
与应用开发者共享崩溃数据
如果用户不与应用开发人员共享崩溃数据,Apple不能提供崩溃报告。如果用户报告崩溃并且没有相应的崩溃报告,请让用户与应用开发者共享崩溃数据。崩溃数据自动发送到Apple的TestFlight应用程序,而不是用户从应用商店下载的应用程序。
给用户这些指令。在所有平台上,崩溃数据选项位于隐私设置的诊断部分。
与iOS开发人员共享崩溃数据
1、在设置中,点击隐私。
2、滚动到底部,然后点击诊断和使用。
3、如有必要,请点按与应用程序开发者共享开关启用它。
同样,要求Mac用户与应用开发者共享其崩溃数据。
与Mac开发人员共享崩溃数据
1、在系统偏好设置中,单击安全和隐私。
2、点击隐私权,然后在左侧列中点击诊断和使用。
3、选择“与应用开发者共享崩溃数据”。
要启用隐私权选项,请点击锁定图标。在出现的对话框中,输入具有管理员权限的系统帐户的凭据,然后单击解锁。
苹果电视用户也可以共享他们的崩溃数据。
与tvOS开发人员共享崩溃数据
1、在设置中,单击常规,然后单击隐私。
2、在诊断数据下,点击“与应用开发人员共享”。
3、在显示的对话框中,点击“发送到苹果”。
在设备窗口中查看和导入崩溃
在设备窗口中,您可以直接在设备上查看崩溃日志的详细信息,或导入从其他来源收到的崩溃报告。如果您拥有包含匹配的构建和.dSYM文件的归档,Xcode会自动表示崩溃报告。Xcode使用人类可读的函数名和行号来替换崩溃日志中的内存地址。然后,您可以在“设备”窗口中查看每个执行线程的堆栈跟踪。
因此,请勿删除您上传,导出并分发给用户的归档文件。例如,如果您使用自动配置配置文件或团队配置配置文件(请阅读导出您的测试应用程序(iOS,tvOS,watchOS)和导出应用程序以进行测试(Mac))分发应用程序,请保留存档,以便导入从测试人员收到的未签名崩溃报告。
您还可以查看使用TestFlight或商店分发的应用程序的崩溃。如果在上传应用程序时包含位码,商店将保留这些.dSYM文件,您必须先下载这些文件,然后才能在“设备”窗口中查看崩溃。如果您不包含bitcode或在应用商店之外分发您的应用,则您的存档已包含这些.dSYM文件。
注意:如果您使用符号上传应用程序,则可以在“崩溃”管理器中查看崩溃报告,如“崩溃管理器”中的“查看崩溃报告”中所述。
如果您在上传应用程序时包括位码,请先下载相关.dSYM文件。
下载dSYMs文件
1、在档案管理器中,选择存档。
2、单击下载dSYMs按钮。
Xcode将.dSYM文件插入所选归档中。
重要:Xcode使用存档中的版本号和内部版本号请求.dSYM文件。因此,在上传应用程序之前,请始终增加构建号,如设置版本号和构建字符串中所述。
在设备上查看崩溃日志或导入崩溃报告
1、选择“窗口”>“设备”。
2、如有必要,将设备连接到Mac。
3、在设备下选择设备,然后单击查看设备日志按钮。
将显示一张在设备上显示崩溃日志的工作表。
4、要查看崩溃日志,请在左侧列中选择它。
在右侧的详细视图中查看崩溃日志。
5、要导入崩溃报告,请将崩溃报告从Finder拖动到工作表的左侧列。
6、点击完成。
在Xcode中重现崩溃
确保测试崩溃的完全相同的构建。保存您分发用于测试或上传到iTunes Connect的所有档案。通过比较构建版本号和版本号来验证Xcode中的归档是否与崩溃报告匹配。按照这些相同的步骤确定您是否正在测试您提交到商店的同一个版本。
对于Mac应用程序,要重现崩溃,请使用客户帐户,并重新安装与崩溃报告匹配的OS X版本。请勿尝试使用开发人员或管理系统帐户重新创建崩溃,因为您可能无法分析问题。
支持的崩溃报告
崩溃日志从在这些操作系统版本上运行的应用程序收集,并且可以在这些Xcode版本中查看。