崩溃后弹提醒:TestFlight 自动检测 + 提交崩溃详情
TestFlight 的自动崩溃检测
当你正在测试的 Beta App 崩溃时,TestFlight 会自动弹出提醒问你要不要把崩溃详情发给开发者。这是整个 TestFlight 反馈闭环里最关键的一步——崩溃日志是开发者最需要的信息,没有之一。
iOS / iPadOS 上崩溃后
- Beta App 崩了 → 闪退回到主屏。
- TestFlight 自动弹出对话框:「刚才的 Beta App 崩溃了。是否要向开发者报告?」
- 点 共享 → 进入崩溃反馈界面。
- 可以加额外注释(比如:「刚才点设置按钮就崩了,重试了三次都一样,用的 iPhone 15 Pro,iOS 18.1」)。
- 点 提交 → 崩溃详情(堆栈、寄存器、设备信息)+ 你的注释一起发给开发者。
macOS 上崩溃后
Mac 上 Beta App 崩了的体验和 iOS 不同(macOS App 崩溃通常不会立刻闪退,有时弹出崩溃报告对话框):
- 如果 Beta App 是通过 TestFlight 安装的,崩溃时 TestFlight 可能会弹出系统级崩溃提醒。
- 点 报告 → 弹出崩溃详情界面 → 加注释 → 好 / 发送。
- 崩溃栈会被格式化后发到开发者的 App Store Connect 后台。
visionOS 上崩溃后
Vision Pro 上 Beta App 崩溃时,TestFlight 弹出空间级的对话框:
- Beta App 崩溃 → 回到 TestFlight 或主屏。
- 捏合弹出崩溃报告对话框 → 捏合 共享。
- 加注释(可选)→ 捏合 提交 处。
开发者可以选择不接收崩溃反馈
有一个隐藏开关:开发者可以选择禁用崩溃反馈收集。如果开发者关闭了这个开关,你 Beta App 崩溃后 TestFlight 不会弹出崩溃报告提醒——崩溃日志仍然由 Apple 收集(用于 TestFlight 自身改进),但不会发给开发者。
为什么会有这种选择?某些开发者可能有隐私顾虑——崩溃栈里可能包含 App 内部的数据结构信息,开发者不想让 Apple 收集。或者某些崩溃类型是 Apple 系统层面的,开发者觉得不重要不想看。
如果你的 Beta App 崩溃后没有弹出崩溃报告对话框,大概率是开发者关闭了这个开关。这种情况下你仍然可以通过正常的 TestFlight 反馈入口手动发反馈——描述一下崩溃发生的场景。
崩溃日志里有什么信息
发给开发者的崩溃日志包含:
- 崩溃栈(Call Stack):精确到代码行的调用栈——开发者可以在 Xcode 里点「Open in Xcode」直接跳到崩溃行。
- 设备信息:设备型号、CPU 架构、内存大小。
- 系统信息:iOS / macOS / tvOS 版本、运行时长。
- App 版本信息:具体的 CFBundleShortVersionString 和 CFBundleVersion。
- 崩溃类型:EXC_BAD_ACCESS / EXC_BAD_INSTRUCTION / SIGSEGV / 超时 / watchdog 等。
- 线程状态:崩溃发生时每个线程的 PC 和寄存器值。
- 可选的测试者注释:你加的那段文字。
开发者最关心的是崩溃栈——它直接告诉开发者崩溃发生在哪个函数的哪一行、是哪个文件里的什么操作。结合符号化之后的信息,开发者通常能在几分钟内定位 bug。
手动提交崩溃反馈
如果自动弹窗没出现(可能开发者关闭了,或者系统没检测到崩溃),你可以手动在 TestFlight App 里提交:
- TestFlight → 选中 Beta App → 向下滚 → 发送 Beta 版反馈。
- 在注释里写清楚「刚遇到崩溃」+ 复现步骤。
- 加一张崩溃前后的截屏(如果有)。
- 提交。
手动反馈里不包含完整的崩溃栈,但开发者仍然能看到你的文字描述,可以手动去 App Store Connect → Crashes 面板里翻那个时间点的崩溃日志。