如何提交出色的错误报告

错误是开发过程中不可避免的一部分。尽管遇到错误可能会令人沮丧,但您可以通过识别遇到的问题、重现该问题并通过 Apple 的反馈助理提交错误报告来帮助快速解决这些问题。

Learn more about bug reporting

Learn more about our privacy policy when filing bugs with Feedback Assistant

在为 Apple 平台进行开发时,您应该始终针对您发现的任何错误提交反馈;毕竟,我们只能在知悉错误后才能进行修复。但是,您如何确定自己提供的信息有助于对问题进行分类,而不是对解决错误徒劳无益。以下是我们的重要提示,可确保错误报告清晰、可操作,最重要的是确保错误可修复。

清晰、直接、详细

在记录任何新的错误报告时,请尽可能采用叙述性的风格,首先确保标题能够清晰描述问题和诱因。比如,“日历日程丢失”这样的标题省略了发生错误的方式或原因等重要信息,而“创建快速日程后 macOS 12.4 上的日历日程丢失”这样的标题则提供了更多可操作的详细信息。


提示:这通常有助于错误筛选人员了解问题如何影响 App 开发。如果您在开发 App 时发现问题,请在标题和描述字段中包含 App 的名称和版本 (即使您可以在独立示例项目中重现该问题),并添加您在 App Store 上发布的 App 或 TestFlight 构建版本的链接。


在写下您的问题时,请详尽描述每个步骤。最好假定阅读错误报告的人从未接触过您正在撰写的报告所涉及的 App 或系统。例如,“当我在日历中创建一个日程时,该日程一会儿就消失了”这样的描述忽略了重现问题所需的许多细节。您在创建日历日程时,使用了“快速日程”按钮,还是通过 Siri,又或是通过拖动来添加新日程?一会儿是多久?日程是在多任务处理后消失,还是在您仍使用 App 时消失?

每当错误筛选人员必须暂停并考虑此类问题时,都会降低问题得到快速修复的可能性。因而,请考虑如何详细描述遇到的错误。例如,您可以按以下方式描述:

1. 单击日历 App 中的“快速日程”按钮。 
2. 为日程填写任意标题。 
3. 按回车键。

实际结果:该日程出现在我的日历中的正确位置,但随后消失。

预期结果:日历日程应该出现并保留在我的日历上。

填写重现步骤和预期结果后,请考虑可能导致该问题的任何其他因素。您是否已登录 iCloud?您是否打开了任何辅助功能设置?您能在操作系统的其他地方重现这个问题吗?您在初始报告中包含的信息越多,筛选人员就能越快地对其进行有效分类,并将其交给合适的团队进行修复。

添加一些视觉辅助说明

重现错误的屏幕截图或屏幕录像可以提供有价值的线索,并且可能包含您可能未考虑在描述字段中写入的详细信息。如果您对 UI 有疑问,应始终包含视觉辅助说明。

记录崩溃日志

遗憾的是,并非所有错误都可以重现或具有易于执行的步骤。对于这些更棘手的情况,请考虑提供日志信息,例如 sysdiagnose;如果您在 iPhone 或 iPad 上提交错误,可以使用“反馈助理”App 自动捕获错误。如果您通过 Apple 的门户网站提交错误,可以安装配置文件来帮助您手动收集 sysdiagnose。

您还可以提供与该问题相关的任何其他日志记录。例如,如果您遇到崩溃,请附上 App 的崩溃日志。如果您要报告性能下降,请附上 iOS 或 iPadOS 上的 Instruments 跟踪或 macOS 上的示例。

创建示例项目

在开发 App 时遇到问题?考虑将问题隔离到一个小的示例项目或编译的 Swift Playgrounds 项目中。这不仅可以帮助您缩小所面临的特定错误,也是错误筛选人员和工程师对问题进行分类的最简单方法之一。如果您无法生成完整的示例项目,示例代码也很有帮助,所有有助于缩小问题范围的附加信息都很有价值。

上报您的报告

如果您是 Apple Developer Program、Enterprise Program 或 MFi Program 的付费会员,且在正式版本中遇到 Apple 平台之一的技术问题,请考虑提交技术支持事件。这是在您无法修复错误、在实施特定技术时遇到问题或对您的代码有一般性问题时,对 Apple 框架、API 和工具提出的代码级支持请求。

Request technical support