testflight 中文文档 下载 App

开发者看崩溃:Open in Xcode 终极定位

App Store Connect 的崩溃面板

崩溃日志和普通反馈分两个面板管理。开发者看崩溃日志的路径:

App Store Connect → TestFlight → Feedback → 崩溃(Crashes)

崩溃面板的表格视图

进入崩溃面板后,右侧表格列出每条崩溃:

列含义
时间崩溃日志提交的时间
平台iOS / macOS / tvOS / visionOS / watchOS
App 版本CFBundleShortVersionString(如 1.2.0)
构建版本CFBundleVersion(如 123)
设备设备型号 + OS 版本
次数这个构建版本上同类型崩溃的总次数(同一崩溃签名聚合成一行)

注意:TestFlight 会自动聚合相同崩溃签名的日志——如果 100 个测试者在同一个位置遇到同一个崩溃,App Store Connect 里会聚合成一条,旁边次数显示 100。这个功能极大方便开发者定位高频问题。

筛选崩溃

顶部有 添加过滤器 按钮,可以按以下维度筛选:

常用筛选组合:

Open in Xcode:崩溃定位的终极武器

这是 TestFlight 崩溃面板里最有价值的按钮:

  1. 在崩溃面板里点某一条崩溃 → 右侧展开详情。
  2. 详情里有完整的崩溃栈(堆栈跟踪)——但只是符号化的原始栈。
  3. 右上角或崩溃详情旁边有一个 「Open in Xcode」 按钮。
  4. 点一下 → Xcode 自动打开,加载你对应版本的符号文件(dSYM)→ 崩溃栈符号化处理——每个地址翻译成具体的函数名、文件名、行号。
  5. 现在你能看到精确到一行代码的崩溃位置,比如:
   -[MyViewController viewDidLoad] (MyViewController.m:142)

为什么有时 Open in Xcode 失败

Open in Xcode 需要两个东西:

  1. Xcode Archive 时生成的 dSYM 符号文件——Apple 要求你上传构建时同时上传 dSYM。如果你选了「Strip Debug Symbols」或者用了自定义构建流程没传 dSYM,Open in Xcode 就会失败。
  2. 本地有对应的 Xcode 版本——崩溃栈是在特定 Xcode 版本里编译的,你本地需要同一个或相近版本的 Xcode 来正确符号化。

如果 Open in Xcode 失败了,你仍然可以在 App Store Connect 里手动下载 dSYM 文件和崩溃日志 → 用 Xcode 的 Organizer → Crashes → Import 功能手动导入。

崩溃日志 vs 崩溃统计

除了 TestFlight → Feedback → Crashes 面板,App Store Connect 还有一个统计视图:

这个统计视图方便你快速看哪个构建崩溃多、哪个构建崩溃少。