axiom-app-store-connect-ref について
App Store Connect でクラッシュ、TestFlight のフィードバック、アプリのパフォーマンス指標を確認する開発者やチーム向けの実用リファレンスです。手動操作、データのエクスポート、API と asc-mcp によるプログラムアクセスを説明します。
主な機能
- 01クラッシュダッシュボードの閲覧と絞り込み
- 02クラッシュシグネチャの確認とログ取得
- 03TestFlight のフィードバックとスクリーンショット確認
- 04パフォーマンスと終了指標の追跡
- 05API または asc-mcp によるデータエクスポート
活用シーン
- 01アプリのバージョン間でクラッシュを調査
- 02リリース前後のパフォーマンスを比較
- 03特定ビルドのテスター報告を確認
- 04分析用の診断データをエクスポート
MCP 対応
asc-mcp を介した App Store Connect へのプログラムアクセスを説明します。指標、診断ログ、TestFlight テスター、レビュー、ビルド状態などのツールを扱います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ charleswiltgen/ axiom --skill axiom-app-store-connect-refインストール後、Claude Code で/axiom-app-store-connect-refを入力して読み込まれたか確認します。
詳細
App Store Connect リファレンス
概要
App Store Connect(ASC)では、アプリのクラッシュレポート、TestFlight のフィードバック、パフォーマンス指標を確認できます。このリファレンスでは、ASC でクラッシュデータを検索し、分析用にエクスポートする方法を説明します。
ASC と Xcode Organizer の比較
| タスク | 最適なツール |
|---|---|
| 開発中の迅速なクラッシュのトリアージ | Xcode Organizer |
| チーム全体でのクラッシュ状況の把握 | App Store Connect |
| スクリーンショット付きの TestFlight フィードバック | App Store Connect |
| 過去の指標と傾向 | App Store Connect |
| 分析用のクラッシュログのダウンロード | どちらでも可(ASC のほうがエクスポートに優れています) |
| シンボリケーション | Xcode Organizer |
クラッシュデータへの移動
クラッシュ画面へのパス
App Store Connect
└── My Apps
└── [Your App]
└── Analytics
└── Crashes
直接 URL の形式: https://appstoreconnect.apple.com/analytics/app/[APP_ID]/crashes
クラッシュダッシュボードのセクション
- フィルターバー — プラットフォーム、バージョン、日付範囲、比較
- クラッシュのないユーザーのグラフ — 日ごとの割合の推移
- バージョン別のクラッシュ数 — バージョンを比較する棒グラフ
- 上位のクラッシュシグネチャ — 割合の高い順に表示し、例外の種類と関数名を示します
主な指標の説明
| 指標 | 意味 |
|---|---|
| クラッシュのないユーザー | クラッシュを経験しなかった日次アクティブユーザーの割合 |
| クラッシュ数 | 受信したクラッシュレポートの合計数 |
| クラッシュ率 | 1,000 セッションあたりのクラッシュ数 |
| 影響を受けたデバイス | クラッシュした一意のデバイス数 |
| クラッシュシグネチャ | 同じスタックトレースを持つクラッシュをグループ化したもの |
フィルターオプション
| フィルター | 使用例 |
|---|---|
| プラットフォーム | iOS、iPadOS、macOS、watchOS、tvOS |
| バージョン | 特定のアプリバージョンを詳しく調べる |
| 日付範囲 | 過去 7 日/30 日/90 日、またはカスタム範囲 |
| 比較 | バージョン間のクラッシュ率を比較する |
| デバイス | iPhone のモデル、iPad などで絞り込む |
| OS バージョン | 特定の OS で発生するクラッシュを見つける |
個別のクラッシュレポートの表示
クラッシュシグネチャの詳細
各クラッシュシグネチャには、次の情報が表示されます。
- ヘッダー — 例外の種類、影響を受けたデバイス数/クラッシュ数、初回確認日
- 例外情報 — 種類(例:EXC_BAD_ACCESS)、コード、アドレス
- クラッシュしたスレッド — バイナリ、関数、オフセットを含むスタックフレーム
- 分布 — iOS バージョンとデバイスモデル別の内訳
クラッシュログのダウンロード
- クラッシュシグネチャをクリックします
- Download Logs ボタン(右上)を探します
- 形式を選択します。
- .ips(JSON 形式、iOS 15 以降)
- .crash(テキスト形式、レガシー)
crash-analyzerエージェントを使用して解析します:/axiom:analyze-crash
TestFlight のフィードバック
フィードバックへのパス
App Store Connect
└── My Apps
└── [Your App]
└── TestFlight
└── Feedback
フィードバックの内容
各フィードバックには、次の項目が含まれます。
| 項目 | 説明 |
|---|---|
| スクリーンショット | テスターが見た画面(多くの場合、最も有用です) |
| コメント | テスターによる問題の説明 |
| アプリバージョン | TestFlight の正確なビルド番号 |
| デバイスモデル | iPhone 15 Pro Max、iPad Air など |
| OS バージョン | iOS 17.2.1 など |
| バッテリー残量 | バッテリー残量が少ないと動作に影響する場合があります |
| 使用可能なディスク容量 | ディスク容量が少ないと書き込みに失敗する場合があります |
| ネットワークの種類 | Wi-Fi またはモバイル通信 |
| ロケール | 言語と地域の設定 |
| タイムスタンプ | 送信日時 |
フィードバックの絞り込み
| フィルター | 使用例 |
|---|---|
| ビルド | 特定の TestFlight ビルドに絞る |
| 日付 | 新しいフィードバックを先に表示する |
| スクリーンショットあり | 視覚的な問題をすばやく見つける |
制限事項:返信不可
TestFlight のフィードバックは一方向です。ASC からテスターに返信することはできません。フォローアップするには、次の方法があります。
- TestFlight グループのメールで連絡する
- アプリ内フィードバック機能を追加する
- TestFlight のメモにメールアドレスを記載する
指標ダッシュボード
指標へのパス
App Store Connect
└── My Apps
└── [Your App]
└── Analytics
└── Metrics
利用可能なメトリクスのカテゴリ
| カテゴリ | 表示内容 |
|---|---|
| クラッシュ | クラッシュのないユーザー数、クラッシュ数、上位のシグネチャ |
| ハング率 | メインスレッドの 250ms を超えるハング |
| ディスク書き込み | 過剰なディスク I/O のパターン |
| 起動時間 | アプリの起動パフォーマンス |
| メモリ | ピーク時のメモリ使用量、終了 |
| バッテリー | フォアグラウンド/バックグラウンドでのエネルギー使用量 |
| スクロール | スクロールの引っかかり率 |
終了(クラッシュ以外の強制終了)
Metrics ダッシュボードには、クラッシュレポートが生成されない終了が表示されます。
| 終了の種類 | 原因 |
|---|---|
| メモリ制限 | メモリ不足により Jetsam がアプリを強制終了しました |
| CPU 制限(バックグラウンド) | バックグラウンド CPU の割り当て量を超過しました |
| 起動タイムアウト | アプリの起動に時間がかかりすぎました |
| バックグラウンドタスクのタイムアウト | バックグラウンドタスクが制限時間を超過しました |
バージョンの比較
Compare フィルターを使って、次の点を確認します。
- クラッシュ率は改善しましたか、それとも悪化しましたか?
- どのバージョンで急増しましたか?
- リリースごとのパフォーマンスの傾向
データのエクスポート
手動エクスポート
- Crashes または Metrics に移動します
- 日付範囲フィルターで期間を選択します
- Export をクリックします(利用可能な場合)。または、個別のクラッシュログをダウンロードします
App Store Connect API
エクスポートを自動化するには、App Store Connect API を使用します。
# Get crash diagnostic insights
GET /v1/apps/{id}/perfPowerMetrics
# Authentication requires API key from ASC
# Users and Access → Keys → App Store Connect API
API の機能:
| エンドポイント | データ |
|---|---|
perfPowerMetrics | パフォーマンスと電力のメトリクス |
diagnosticSignatures | クラッシュシグネチャの集計 |
diagnosticLogs | 個別のクラッシュログ |
betaTesters | TestFlight テスター情報 |
betaFeedback | TestFlight フィードバック項目 |
MCP を利用したアクセス
asc-mcp が設定されている場合、Claude Code からプログラムで ASC データにアクセスできます。
| ASC での手動操作 | asc-mcp ツール |
|---|---|
| クラッシュメトリクスを表示 | metrics_app_perf、metrics_build_diagnostics |
| クラッシュログをダウンロード | metrics_get_diagnostic_logs |
| TestFlight テスターを一覧表示 | builds_get_beta_testers |
| アプリのレビューを表示 | reviews_list、reviews_stats |
| レビューに返信 | reviews_create_response |
| ビルドのステータスを確認 | builds_get_processing_state |
| 売上データをエクスポート | analytics_sales_report(vendor_number が必要です) |
セットアップとワークフロー:/skill axiom-asc-mcp
Xcode Cloud との統合
Xcode Cloud を使用している場合、クラッシュデータは CI/CD と統合されます。
- ワークフローの実行ごとにクラッシュを表示
- ブランチ間でクラッシュ率を比較
- クラッシュの急増時にアラートを自動送信
ベストプラクティス
毎日のモニタリング
- クラッシュのないユーザーの割合を確認します
- 新しいクラッシュシグネチャがあれば確認します
- バージョン間のデグレードを監視します
クラッシュのトリアージ優先度
| 優先度 | 基準 |
|---|---|
| P0 - 重大 | ユーザーの 1% 超に影響、データ損失のリスクあり |
| P1 - 高 | 0.5% 超に影響、ユーザーに直接影響 |
| P2 - 中 | 0.5% 未満に影響、回避策あり |
| P3 - 低 | まれなエッジケース、影響なし |
リリースとの関連付け
各リリース後に、次の手順を実行します。
- クラッシュデータが反映されるまで 24~48 時間待ちます
- クラッシュのない割合を前のバージョンと比較します
- 新たに上位に入ったクラッシュシグネチャを調査します
- TestFlight のフィードバックでユーザー報告を確認します
よくある質問
ASC でクラッシュが表示されないのはなぜですか?
| 原因 | 対処方法 |
|---|---|
| 最近すぎる | 処理が完了するまで 24 時間待ちます |
| まだユーザーがいない | 報告には有効なインストールが必要です |
| ユーザーが共有をオプトアウトした | デバイスの分析データ共有が必要です |
| ビルドが配布されていない | TestFlight または App Store で配布する必要があります |
クラッシュがシンボリケートされないのはなぜですか?
配布時に dSYM をアップロードしていれば、ASC のクラッシュは自動的にシンボリケートされます。dSYM ファイルには、メモリアドレスを関数名や行番号に対応付けるデバッグシンボルが含まれています。
dSYM がアップロードされたことを確認する方法:
- Xcode → ウインドウ → オーガナイザー → アーカイブ → ビルドを選択
- 右クリック →「Finder で表示」→
.xcarchiveを右クリック →「パッケージの内容を表示」 dSYMs/フォルダーに.dSYMバンドルが含まれていることを確認
手動でシンボリケートする手順:
# 1. Download .ips file from ASC (Crashes → signature → Download Logs)
# 2. Find the binary UUID from the crash report
grep --after-context=2 "Binary Images" crash.ips
# Look for: 0x100000000 - 0x100ffffff MyApp arm64 <UUID>
# 3. Locate matching dSYM on your machine
mdfind "com_apple_xcode_dsym_uuids == <UUID>"
# 4. Symbolicate an address
atos -arch arm64 -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp \
-l 0x100000000 0x100045abc
# Output: -[UserManager currentUser] (UserManager.m:42)
シンボリケートでよくある問題:
| 症状 | 原因 | 解決方法 |
|---|---|---|
| すべてのアドレスがシンボリケートされない | dSYM がアップロードされていない | Xcode オーガナイザーから再アップロードする |
| 自分のコードだけシンボリケートされない | dSYM の UUID が一致しない | 同じコミットから再ビルドする |
| システムフレームワークがシンボリケートされない | デバイス固有の場合は正常です | デバイスサポートファイルと atos を使用する |
| Bitcode ビルドがシンボリケートされない | Apple がバイナリを再コンパイルした | ASC から dSYM をダウンロードする:Xcode → オーガナイザー → デバッグシンボルをダウンロード |
自動解析については crash-analyzer エージェントをご覧ください:/axiom:analyze-crash
ASC とオーガナイザー:どちらのスタックトレースが優れていますか?
どちらも同じデータを表示しますが、次の違いがあります。
- オーガナイザーは Xcode プロジェクトと連携します(クリックするとコードに移動します)
- ASCはチーム全体での可視性や過去の傾向の把握に適しています
MetricKit によるフィールド診断
デバイスレベルのクラッシュ診断、ハング時のコールスタック、ASC の集計ダッシュボード以外のカスタムテレメトリーについては、axiom-metrickit-ref をご覧ください。
主な違い:ASC はチームで傾向を把握できるよう、集計データを表示します。MetricKit は、独自のテレメトリーと関連付けられるデバイスごとの診断情報を提供します。
関連項目
スキル:axiom-testflight-triage(Xcode オーガナイザーのワークフロー)、axiom-asc-mcp(MCP 経由でのプログラムによる ASC アクセス)
エージェント:crash-analyzer(クラッシュログの自動解析)
コマンド:/axiom:analyze-crash
リソース
WWDC: 2020-10076、2020-10078、2021-10203、2021-10258
ドキュメント: /app-store-connect/api、/xcode/diagnosing-issues-using-crash-reports-and-device-logs