axiom-app-store-connect-ref

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

App Store Connect Reference

App Store Connect 参考文档

Overview

概述

App Store Connect (ASC) provides crash reports, TestFlight feedback, and performance metrics for your apps. This reference covers how to navigate ASC to find and export crash data for analysis.
When to use ASC vs Xcode Organizer:
TaskBest Tool
Quick crash triage during developmentXcode Organizer
Team-wide crash visibilityApp Store Connect
TestFlight feedback with screenshotsApp Store Connect
Historical metrics and trendsApp Store Connect
Downloading crash logs for analysisEither (ASC has better export)
SymbolicationXcode Organizer

App Store Connect (ASC) 为你的应用提供崩溃报告、TestFlight反馈和性能指标。本参考文档介绍了如何在ASC中导航以查找和导出崩溃数据进行分析。
何时使用ASC vs Xcode Organizer:
任务最佳工具
开发期间快速崩溃分类Xcode Organizer
团队范围内的崩溃可见性App Store Connect
带截图的TestFlight反馈App Store Connect
历史指标与趋势App Store Connect
下载崩溃日志进行分析两者均可(ASC的导出功能更优)
符号化Xcode Organizer

Navigating to Crash Data

导航至崩溃数据

Path to Crashes

崩溃数据路径

App Store Connect
└── My Apps
    └── [Your App]
        └── Analytics
            └── Crashes
Direct URL pattern:
https://appstoreconnect.apple.com/analytics/app/[APP_ID]/crashes
App Store Connect
└── 我的应用
    └── [你的应用]
        └── 分析
            └── 崩溃
直接URL格式:
https://appstoreconnect.apple.com/analytics/app/[APP_ID]/crashes

Crashes Dashboard Layout

崩溃仪表盘布局

┌─────────────────────────────────────────────────────────────────────────┐
│ [Filters: Platform ▼] [Version ▼] [Date Range ▼] [Compare ▼]           │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  Crash-Free Users Graph                                                 │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │  99.5% ─────────────────────────────────────────────────────    │   │
│  │  99.0% ─────────────────────────────────────────────────────    │   │
│  │  98.5% ─────────────────────────────────────────────────────    │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│  Crash Count by Version                                                 │
│  ┌───────────────────────────────────────────────────────────────────┐ │
│  │ v2.1.0  ████████████ 1,234 crashes                                │ │
│  │ v2.0.5  ████████ 892 crashes                                      │ │
│  │ v2.0.4  ███ 156 crashes                                           │ │
│  └───────────────────────────────────────────────────────────────────┘ │
│                                                                         │
├─────────────────────────────────────────────────────────────────────────┤
│  Top Crash Signatures                                                   │
│  ┌───────────────────────────────────────────────────────────────────┐ │
│  │ 1. EXC_BAD_ACCESS in UserManager.currentUser.getter    45% share  │ │
│  │ 2. EXC_CRASH in NetworkService.fetchData()             23% share  │ │
│  │ 3. EXC_BREAKPOINT in Array subscript                   12% share  │ │
│  └───────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ [筛选器:平台 ▼] [版本 ▼] [日期范围 ▼] [对比 ▼]           │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│ 无崩溃用户占比图表                                                 │
│  ┌─────────────────────────────────────────────────────────────────┐   │
│  │  99.5% ─────────────────────────────────────────────────────    │   │
│  │  99.0% ─────────────────────────────────────────────────────    │   │
│  │  98.5% ─────────────────────────────────────────────────────    │   │
│  └─────────────────────────────────────────────────────────────────┘   │
│                                                                         │
│ 各版本崩溃次数                                                 │
│  ┌───────────────────────────────────────────────────────────────────┐ │
│  │ v2.1.0  ████████████ 1,234次崩溃                                │ │
│  │ v2.0.5  ████████ 892次崩溃                                      │ │
│  │ v2.0.4  ███ 156次崩溃                                           │ │
│  └───────────────────────────────────────────────────────────────────┘ │
│                                                                         │
├─────────────────────────────────────────────────────────────────────────┤
│  top崩溃签名                                                   │
│  ┌───────────────────────────────────────────────────────────────────┐ │
│  │ 1. EXC_BAD_ACCESS in UserManager.currentUser.getter    占比45%  │ │
│  │ 2. EXC_CRASH in NetworkService.fetchData()             占比23%  │ │
│  │ 3. EXC_BREAKPOINT in Array subscript                   占比12%  │ │
│  └───────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘

Key Metrics Explained

关键指标说明

MetricWhat It Means
Crash-Free UsersPercentage of daily active users who didn't experience a crash
Crash CountTotal number of crash reports received
Crash RateCrashes per 1,000 sessions
Affected DevicesNumber of unique devices that crashed
Crash SignatureGrouped crashes with same stack trace
指标含义
无崩溃用户占比未遭遇崩溃的日活跃用户百分比
崩溃次数收到的崩溃报告总数
崩溃率每1000次会话的崩溃次数
受影响设备数发生崩溃的唯一设备数量
崩溃签名具有相同堆栈跟踪的分组崩溃

Filtering Options

筛选选项

FilterUse Case
PlatformiOS, iPadOS, macOS, watchOS, tvOS
VersionDrill into specific app versions
Date RangeLast 7/30/90 days or custom range
CompareCompare crash rates between versions
DeviceFilter by iPhone model, iPad, etc.
OS VersionFind OS-specific crashes

筛选器使用场景
平台iOS、iPadOS、macOS、watchOS、tvOS
版本深入查看特定应用版本
日期范围最近7/30/90天或自定义范围
对比对比不同版本的崩溃率
设备按iPhone型号、iPad等筛选
系统版本查找特定系统版本的崩溃

Viewing Individual Crash Reports

查看单个崩溃报告

Crash Signature Detail View

崩溃签名详情页

Click a crash signature to see:
┌─────────────────────────────────────────────────────────────────────────┐
│ EXC_BAD_ACCESS in UserManager.currentUser.getter                        │
├─────────────────────────────────────────────────────────────────────────┤
│ Affected: 234 devices • 45% of crashes • First seen: Jan 10            │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│ Exception Information                                                   │
│ ───────────────────                                                     │
│ Type: EXC_BAD_ACCESS (SIGSEGV)                                         │
│ Codes: KERN_INVALID_ADDRESS at 0x0000000000000010                       │
│                                                                         │
│ Crashed Thread (0)                                                      │
│ ─────────────────                                                       │
│ 0  MyApp         UserManager.currentUser.getter + 45                    │
│ 1  MyApp         ProfileViewController.viewDidLoad() + 123              │
│ 2  UIKitCore     -[UIViewController loadView] + 89                      │
│ 3  UIKitCore     -[UIViewController view] + 27                          │
│                                                                         │
├─────────────────────────────────────────────────────────────────────────┤
│ Distribution                                                            │
│ ───────────────                                                         │
│ iOS 17.2: ████████ 65%                                                  │
│ iOS 17.1: ████ 25%                                                      │
│ iOS 16.4: ██ 10%                                                        │
│                                                                         │
│ iPhone 15 Pro: ████████ 45%                                             │
│ iPhone 14:     ████ 30%                                                 │
│ iPhone 13:     ██ 15%                                                   │
│ Other:         █ 10%                                                    │
└─────────────────────────────────────────────────────────────────────────┘
点击崩溃签名可查看:
┌─────────────────────────────────────────────────────────────────────────┐
│ EXC_BAD_ACCESS in UserManager.currentUser.getter                        │
├─────────────────────────────────────────────────────────────────────────┤
│ 受影响设备:234台 • 占崩溃总数的45% • 首次出现时间:1月10日            │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│ 异常信息                                                   │
│ ───────────────────                                                     │
│ 类型:EXC_BAD_ACCESS (SIGSEGV)                                         │
│ 代码:KERN_INVALID_ADDRESS at 0x0000000000000010                       │
│                                                                         │
│ 崩溃线程 (0)                                                      │
│ ─────────────────                                                       │
│ 0  MyApp         UserManager.currentUser.getter + 45                    │
│ 1  MyApp         ProfileViewController.viewDidLoad() + 123              │
│ 2  UIKitCore     -[UIViewController loadView] + 89                      │
│ 3  UIKitCore     -[UIViewController view] + 27                          │
│                                                                         │
├─────────────────────────────────────────────────────────────────────────┤
│ 分布情况                                                            │
│ ───────────────                                                         │
│ iOS 17.2: ████████ 65%                                                  │
│ iOS 17.1: ████ 25%                                                      │
│ iOS 16.4: ██ 10%                                                        │
│                                                                         │
│ iPhone 15 Pro: ████████ 45%                                             │
│ iPhone 14:     ████ 30%                                                 │
│ iPhone 13:     ██ 15%                                                   │
│ 其他:         █ 10%                                                    │
└─────────────────────────────────────────────────────────────────────────┘

Downloading Crash Logs

下载崩溃日志

  1. Click on a crash signature
  2. Look for Download Logs button (top right)
  3. Select format:
    • .ips (JSON format, iOS 15+)
    • .crash (text format, legacy)
  4. Use
    crash-analyzer
    agent to parse:
    /axiom:analyze-crash

  1. 点击某个崩溃签名
  2. 查找右上角的下载日志按钮
  3. 选择格式:
    • .ips(JSON格式,iOS 15+)
    • .crash(文本格式,旧版)
  4. 使用
    crash-analyzer
    agent解析:
    /axiom:analyze-crash

TestFlight Feedback

TestFlight反馈

Path to Feedback

反馈路径

App Store Connect
└── My Apps
    └── [Your App]
        └── TestFlight
            └── Feedback
App Store Connect
└── 我的应用
    └── [你的应用]
        └── TestFlight
            └── 反馈

Feedback Entry Contents

反馈条目内容

Each feedback submission includes:
FieldDescription
ScreenshotWhat the tester saw (often most valuable)
CommentTester's description of the issue
App VersionExact TestFlight build number
Device ModeliPhone 15 Pro Max, iPad Air, etc.
OS VersioniOS 17.2.1, etc.
Battery LevelLow battery can affect behavior
Available DiskLow disk can cause write failures
Network TypeWiFi vs Cellular
LocaleLanguage and region settings
TimestampWhen submitted
每条反馈包含:
字段描述
截图测试者看到的界面(通常最有价值)
评论测试者对问题的描述
应用版本精确的TestFlight构建版本号
设备型号iPhone 15 Pro Max、iPad Air等
系统版本iOS 17.2.1等
电池电量低电量可能影响应用行为
可用磁盘空间磁盘空间不足可能导致写入失败
网络类型WiFi vs 蜂窝网络
区域设置语言和地区设置
时间戳提交时间

Feedback Filtering

反馈筛选

FilterUse Case
BuildFocus on specific TestFlight builds
DateRecent feedback first
Has ScreenshotFind visual issues quickly
筛选器使用场景
构建版本聚焦特定TestFlight构建版本
日期优先查看近期反馈
包含截图快速找到视觉类问题

Limitation: No Reply

局限性:无法回复

TestFlight feedback is one-way. You cannot respond to testers through ASC. For follow-up:
  • Contact through TestFlight group email
  • Add in-app feedback mechanism
  • Include your email in TestFlight notes

TestFlight反馈是单向的。你无法通过ASC回复测试者。如需跟进:
  • 通过TestFlight群组邮件联系
  • 添加应用内反馈机制
  • 在TestFlight说明中留下你的邮箱

Metrics Dashboard

指标仪表盘

Path to Metrics

指标路径

App Store Connect
└── My Apps
    └── [Your App]
        └── Analytics
            └── Metrics
App Store Connect
└── 我的应用
    └── [你的应用]
        └── 分析
            └── 指标

Available Metrics Categories

可用指标分类

CategoryWhat It Shows
CrashesCrash-free users, crash count, top signatures
Hang RateMain thread hangs > 250ms
Disk WritesExcessive disk I/O patterns
Launch TimeApp startup performance
MemoryPeak memory usage, terminations
BatteryEnergy usage during foreground/background
ScrollingScroll hitch rate
分类展示内容
崩溃无崩溃用户占比、崩溃次数、top崩溃签名
卡顿率主线程卡顿超过250ms的情况
磁盘写入过度磁盘I/O模式
启动时间应用启动性能
内存峰值内存使用量、终止事件
电池前台/后台期间的能耗
滚动滚动卡顿率

Terminations (Non-Crash Kills)

终止事件(非崩溃类关闭)

The Metrics dashboard shows terminations that don't produce crash reports:
Termination TypeCause
Memory LimitJetsam killed app for memory pressure
CPU Limit (Background)Exceeded background CPU quota
Launch TimeoutApp took too long to launch
Background Task TimeoutBackground task exceeded time limit
指标仪表盘会显示不会生成崩溃报告的终止事件:
终止类型原因
内存限制因内存压力被Jetsam关闭应用
CPU限制(后台)超出后台CPU配额
启动超时应用启动耗时过长
后台任务超时后台任务超出时间限制

Comparing Versions

版本对比

Use the Compare filter to see:
  • Did crash rate improve or regress?
  • Which version introduced a spike?
  • Performance trends over releases

使用对比筛选器可查看:
  • 崩溃率是提升还是恶化?
  • 哪个版本导致崩溃率飙升?
  • 各版本发布后的性能趋势

Exporting Data

导出数据

Manual Export

手动导出

  1. Navigate to Crashes or Metrics
  2. Use date range filter to select period
  3. Click Export (if available) or download individual crash logs
  1. 导航至崩溃或指标页面
  2. 使用日期范围筛选器选择时间段
  3. 点击导出按钮(若可用)或下载单个崩溃日志

App Store Connect API

App Store Connect API

For automated export, use the App Store Connect API:
bash
undefined
如需自动导出,可使用App Store Connect API
bash
undefined

Get crash diagnostic insights

获取崩溃诊断洞察

GET /v1/apps/{id}/perfPowerMetrics
GET /v1/apps/{id}/perfPowerMetrics

Authentication requires API key from ASC

认证需要ASC中的API密钥

Users and Access → Keys → App Store Connect API

用户与访问 → 密钥 → App Store Connect API


**API capabilities:**

| Endpoint | Data |
|----------|------|
| `perfPowerMetrics` | Performance and power metrics |
| `diagnosticSignatures` | Crash signature aggregates |
| `diagnosticLogs` | Individual crash logs |
| `betaTesters` | TestFlight tester info |
| `betaFeedback` | TestFlight feedback entries |

**API功能:**

| 接口 | 数据 |
|----------|------|
| `perfPowerMetrics` | 性能与功耗指标 |
| `diagnosticSignatures` | 崩溃签名聚合数据 |
| `diagnosticLogs` | 单个崩溃日志 |
| `betaTesters` | TestFlight测试者信息 |
| `betaFeedback` | TestFlight反馈条目 |

Xcode Cloud Integration

Xcode Cloud 集成

If using Xcode Cloud, crash data integrates with CI/CD:
  • View crashes per workflow run
  • Compare crash rates between branches
  • Automated alerts on crash spikes

若使用Xcode Cloud,崩溃数据可与CI/CD集成:
  • 查看每个工作流运行的崩溃情况
  • 对比不同分支的崩溃率
  • 崩溃率飙升时自动触发警报

Best Practices

最佳实践

Daily Monitoring

日常监控

  1. Check crash-free users percentage
  2. Review any new crash signatures
  3. Monitor for version-to-version regressions
  1. 检查无崩溃用户占比
  2. 查看所有新的崩溃签名
  3. 监控版本间的崩溃率变化

Crash Triage Priority

崩溃分类优先级

PriorityCriteria
P0 - Critical>1% of users affected, data loss risk
P1 - High>0.5% affected, user-facing impact
P2 - Medium<0.5% affected, workaround exists
P3 - LowRare, edge case, no impact
优先级判断标准
P0 - 严重影响超过1%的用户,存在数据丢失风险
P1 - 高影响超过0.5%的用户,对用户体验有直接影响
P2 - 中影响不足0.5%的用户,存在可行的解决办法
P3 - 低罕见问题,边缘场景,无明显影响

Correlating with Releases

与版本发布关联分析

After each release:
  1. Wait 24-48 hours for crash data to populate
  2. Compare crash-free rate to previous version
  3. Investigate any new top crash signatures
  4. Check TestFlight feedback for user reports

每次版本发布后:
  1. 等待24-48小时让崩溃数据完成统计
  2. 对比当前版本与上一版本的无崩溃用户占比
  3. 调查所有新出现的top崩溃签名
  4. 查看TestFlight反馈中的用户报告

Common Questions

常见问题

Why don't I see crashes in ASC?

为什么我在ASC中看不到崩溃数据?

CauseFix
Too recentWait 24 hours for processing
No users yetNeed active installs to report
User opted outRequires device analytics sharing
Build not distributedMust be TestFlight or App Store
原因解决办法
数据太新等待24小时完成处理
暂无用户需要有活跃安装用户才能上报
用户已退出需要用户开启设备分析共享
构建版本未分发必须是TestFlight或App Store分发的版本

Why are crashes unsymbolicated?

为什么崩溃数据未被符号化?

ASC crashes should auto-symbolicate if:
  • You uploaded dSYMs during distribution
  • "Upload debug symbols" was enabled
If still unsymbolicated:
  1. Download .ips file from ASC
  2. Use
    mdfind
    to locate dSYM by UUID
  3. Symbolicate with
    atos
See
crash-analyzer
agent:
/axiom:analyze-crash
若满足以下条件,ASC的崩溃数据应自动完成符号化:
  • 分发时已上传dSYM文件
  • 已启用"上传调试符号"选项
若仍未符号化:
  1. 从ASC下载.ips文件
  2. 使用
    mdfind
    通过UUID定位dSYM文件
  3. 使用
    atos
    进行符号化
可查看
crash-analyzer
agent:
/axiom:analyze-crash

ASC vs Organizer: Which stack trace is better?

ASC vs Organizer:哪个堆栈跟踪更优?

Both show the same data, but:
  • Organizer integrates with Xcode projects (click to jump to code)
  • ASC better for team-wide visibility and historical trends

两者展示的数据相同,但:
  • Organizer与Xcode项目集成(点击可跳转至代码)
  • ASC更适合团队范围内的可见性和历史趋势分析

Related

相关内容

Skills: axiom-testflight-triage (Xcode Organizer workflows)
Agents: crash-analyzer (automated crash log parsing)
Commands:
/axiom:analyze-crash

技能: axiom-testflight-triage(Xcode Organizer工作流)
Agent: crash-analyzer(自动化崩溃日志解析)
命令:
/axiom:analyze-crash

Resources

参考资源

WWDC: 2020-10076, 2020-10078, 2021-10203, 2021-10258
Docs: /app-store-connect/api, /xcode/diagnosing-issues-using-crash-reports-and-device-logs
WWDC: 2020-10076, 2020-10078, 2021-10203, 2021-10258
文档: /app-store-connect/api, /xcode/diagnosing-issues-using-crash-reports-and-device-logs