Loading...
Loading...
Compare original and translation side by side
| Tool | What it provides | Setup |
|---|---|---|
| Firebase Crashlytics | Real-time crashes, ANRs, symbolicated stack traces | Add |
| App Store Connect | Crash rate trend, crashes per session | Built-in, no code needed |
| Xcode Organizer | Aggregated crash logs from TestFlight + App Store | Xcode → Window → Organizer → Crashes |
| MetricKit | On-device diagnostics, hang rate, launch time | iOS 13+, automatic |
| 工具 | 提供的功能 | 设置方式 |
|---|---|---|
| Firebase Crashlytics | 实时崩溃、ANR、已符号化的堆栈跟踪 | 添加 |
| App Store Connect | 崩溃率趋势、每会话崩溃次数 | 内置功能,无需代码 |
| Xcode Organizer | 来自TestFlight和App Store的汇总崩溃日志 | Xcode → 窗口 → Organizer → 崩溃 |
| MetricKit | 设备端诊断、卡顿率、启动时间 | iOS 13+,自动启用 |
// AppDelegate or @main App struct
import FirebaseCore
import FirebaseCrashlytics
@main
struct MyApp: App {
init() {
FirebaseApp.configure()
// Crashlytics is auto-initialized
}
}// AppDelegate或@main App结构体
import FirebaseCore
import FirebaseCrashlytics
@main
struct MyApp: App {
init() {
FirebaseApp.configure()
// Crashlytics会自动初始化
}
}// Log a non-fatal error
Crashlytics.crashlytics().record(error: error)
// Log a custom key for debugging context
Crashlytics.crashlytics().setCustomValue(userId, forKey: "user_id")
Crashlytics.crashlytics().setCustomValue(screenName, forKey: "current_screen")// 记录非致命错误
Crashlytics.crashlytics().record(error: error)
// 记录自定义调试上下文键
Crashlytics.crashlytics().setCustomValue(userId, forKey: "user_id")
Crashlytics.crashlytics().setCustomValue(screenName, forKey: "current_screen")// build.gradle (app)
implementation("com.google.firebase:firebase-crashlytics:18.x.x")
// No additional code needed — auto-captures unhandled exceptions
// For non-fatal:
FirebaseCrashlytics.getInstance().recordException(throwable)// build.gradle (app)
implementation("com.google.firebase:firebase-crashlytics:18.x.x")
// 无需额外代码——自动捕获未处理异常
// 非致命错误记录:
FirebaseCrashlytics.getInstance().recordException(throwable)| Priority | Criteria | Response time |
|---|---|---|
| P0 — Critical | Crashes on launch / checkout / core feature; >1% of sessions | Fix today |
| P1 — High | Crashes in common flows; >0.1% of sessions | Fix this release |
| P2 — Medium | Edge case crashes; <0.1% of sessions | Fix next release |
| P3 — Low | Rare, non-blocking crashes; <0.01% of sessions | Backlog |
| 优先级 | 判定标准 | 响应时间 |
|---|---|---|
| P0 — 严重 | 启动/结账/核心功能崩溃;影响>1%的会话 | 今日修复 |
| P1 — 高 | 常见流程崩溃;影响>0.1%的会话 | 本版本修复 |
| P2 — 中 | 边缘场景崩溃;影响<0.1%的会话 | 下一版本修复 |
| P3 — 低 | 罕见、非阻塞性崩溃;影响<0.01%的会话 | 放入待办列表 |
onboardingcheckoutcore featurebackgroundlaunchonboardingcheckoutcore featurebackgroundlaunchFatal Exception: com.example.NullPointerException
at com.example.UserProfileVC.loadData:87
at com.example.HomeVC.viewDidLoad:45
Keys:
user_id: 12345
current_screen: "home"
app_version: "2.3.1"
os_version: "iOS 17.3"UserProfileVC.swift:87Fatal Exception: com.example.NullPointerException
at com.example.UserProfileVC.loadData:87
at com.example.HomeVC.viewDidLoad:45
Keys:
user_id: 12345
current_screen: "home"
app_version: "2.3.1"
os_version: "iOS 17.3"UserProfileVC.swift:87undefinedundefined
For Bitcode-enabled builds, download dSYMs from App Store Connect → Activity → Build → dSYMs.
对于启用Bitcode的构建,从App Store Connect → 活动 → 构建 → dSYMs下载dSYMs文件。rating-prompt-strategyrating-prompt-strategyStability Report — [App Name] v[version] ([period])
Crash-free sessions: [X]% (target: >99.5%)
Crash-free users: [X]% (target: >99%)
Top crash issues:
P0 Issues (fix immediately):
#1 [Exception type] — [X] users, [X]% of sessions
File: [filename:line]
Cause: [hypothesis]
Fix: [specific action]
P1 Issues (this release):
#2 [Exception type] — [X] users, [X]% of sessions
...
Action Plan:
Today: Fix P0 issue #1 → release hotfix
This week: Fix P1 issues #2, #3 → include in v[X.X]
Monitoring: Set velocity alert at 0.5% session threshold稳定性报告 — [应用名称] v[版本号] ([统计周期])
无崩溃会话占比:[X]% (目标:>99.5%)
无崩溃用户占比:[X]% (目标:>99%)
主要崩溃问题:
P0问题(立即修复):
#1 [异常类型] — 影响[X]用户,占会话的[X]%
文件:[文件名:行号]
原因:[假设分析]
修复方案:[具体行动]
P1问题(本版本修复):
#2 [异常类型] — 影响[X]用户,占会话的[X]%
...
行动计划:
今日: 修复P0问题#1 → 发布热修复
本周: 修复P1问题#2、#3 → 纳入v[X.X]版本
监控: 设置0.5%会话占比的速度告警阈值app-analyticsrating-prompt-strategyreview-managementretention-optimizationapp-store-featuredapp-analyticsrating-prompt-strategyreview-managementretention-optimizationapp-store-featured