crash-analytics
アプリのクラッシュ率の監視・トリアージ・改善を行いたい場合に使用するスキル。Crashlyticsのセットアップ、修正優先度の決定、クラッシュデータの解釈、App Storeランキングへの影響把握まで幅広くサポートします。「crash」「ANR」「crash-free sessions」「symbolication」「Firebase crashes」などに言及した際にトリガーされます。
description の原文を見る
When the user wants to monitor, triage, or reduce their app's crash rate — including setting up Crashlytics, prioritizing which crashes to fix first, interpreting crash data, and understanding how crashes affect App Store ranking. Use when the user mentions "crash", "crashlytics", "crash rate", "ANR", "app not responding", "crash-free sessions", "crash-free users", "symbolication", "stability", "firebase crashes", "app crashing", or "crash report". For overall analytics setup, see app-analytics.
SKILL.md 本文
クラッシュ分析
アプリのクラッシュをトリアージ・優先順位付け・削減し、クラッシュレートが App Store の発見可能性とレーティングにどのように影響するかを理解するのをサポートします。
クラッシュレートが ASO シグナルである理由
- App Store ランキング — Apple のアルゴリズムはクラッシュレートが高いアプリにペナルティを課す
- App Store フィーチャリング — クラッシュレートが高いとエディトリアルの検討対象から除外される
- レーティング — クラッシュは 1 つ星レビューの最大の原因
- リテンション — 最初のセッションでのクラッシュは Day 1 リテンションを破壊する
目標: クラッシュフリーセッション > 99.5% | クラッシュフリーユーザー > 99%
ツール
| ツール | 提供内容 | セットアップ |
|---|---|---|
| Firebase Crashlytics | リアルタイムクラッシュ、ANR、シンボル化されたスタックトレース | FirebaseCrashlytics pod/SPM パッケージを追加 |
| App Store Connect | クラッシュレートのトレンド、セッションあたりのクラッシュ数 | 組み込み、コード不要 |
| Xcode Organizer | TestFlight + App Store から集約されたクラッシュログ | Xcode → Window → Organizer → Crashes |
| MetricKit | オンデバイス診断、ハング率、起動時間 | iOS 13+、自動 |
推奨: Crashlytics (リアルタイムアラート + 検索) + App Store Connect (トレンド検証)
Crashlytics セットアップ
iOS (Swift)
// AppDelegate or @main App struct
import FirebaseCore
import FirebaseCrashlytics
@main
struct MyApp: App {
init() {
FirebaseApp.configure()
// Crashlytics is auto-initialized
}
}
致命的ではないエラー (クラッシュなしで追跡)
// 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")
Android (Kotlin)
// 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)
トリアージフレームワーク
すべてのクラッシュが同じではありません。インパクトで優先順位付けします:
優先度スコア = クラッシュ頻度 × 影響を受けたユーザー × ユーザーセグメント重要度
| 優先度 | 条件 | 対応時間 |
|---|---|---|
| P0 — 緊急 | 起動時・チェックアウト・中核機能でのクラッシュ; セッションの >1% | 本日修正 |
| P1 — 高 | 一般的なフローでのクラッシュ; セッションの >0.1% | このリリースで修正 |
| P2 — 中 | エッジケースのクラッシュ; セッションの <0.1% | 次回リリースで修正 |
| P3 — 低 | レアで非ブロッキングのクラッシュ; セッションの <0.01% | バックログ |
Crashlytics ダッシュボード トリアージ
- 頻度ではなく 「Impact」(影響を受けた一意のユーザー) でソート
- グループ化:
onboarding、checkout、core feature、background、launch - トップ 3~5 の問題を P0/P1 に割り当て
- ユーザーの >0.5% に影響する問題については、Crashlytics で velocity アラート を設定
クラッシュレポートの読み方
Fatal 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"
デバッグの手順:
- Xcode でファイルと行を開く (
UserProfileVC.swift:87) - その時点で何が nil になる可能性があるかを確認
- ユーザーコンテキスト (OS バージョン、デバイス、スクリーン) で再現
- 修正前に失敗するテストを記述
シンボル化
dSYM をアップロードすると、Crashlytics は自動的にシンボル化されます。シンボル化されていないトレースが表示される場合:
# dSYM を手動アップロード
./Pods/FirebaseCrashlytics/upload-symbols -gsp GoogleService-Info.plist -p ios MyApp.app.dSYM
Bitcode 有効なビルドの場合、App Store Connect → Activity → Build → dSYM から dSYM をダウンロードします。
App Store Connect クラッシュデータ
- App Store Connect → App Analytics → Crashes — バージョンごとのクラッシュレートトレンド
- 各リリース前後でクラッシュレートを比較
- 特定のバージョンでのスパイク = そのリリースでの回帰
クラッシュレート計算式: クラッシュ数 / セッション数 × 100
影響範囲を最小化するリリース戦略
段階的リリースを使用して、フルロールアウト前にクラッシュをキャッチします:
iOS: App Store Connect → Version → Phased Release (7 日間ロールアウト: 1% → 2% → 5% → 10% → 20% → 50% → 100%)
Android: Play Console → Production → Managed publishing → Rollout percentage
ルール: 各フェーズで Crashlytics を 24 時間監視します。クラッシュレートが >0.2% 増加した場合はロールアウトを一時停止します。
クラッシュ関連の 1 つ星レビューへの対応
- クラッシュ関連の 1 つ星が現れたアプリバージョンを特定
- クラッシュを修正
- 各クラッシュ関連レビューに返信: 「バージョン X.X で修正 — 更新してください」
- アップデート公開後、
rating-prompt-strategyを使用してレーティングを回復
出力フォーマット
クラッシュ監査レポート
安定性レポート — [アプリ名] v[バージョン] ([期間])
クラッシュフリーセッション: [X]% (目標: >99.5%)
クラッシュフリーユーザー: [X]% (目標: >99%)
トップクラッシュ問題:
P0 問題 (即座に修正):
#1 [例外タイプ] — [X] ユーザー、セッションの [X]%
ファイル: [ファイル名:行番号]
原因: [仮説]
修正: [具体的なアクション]
P1 問題 (このリリース):
#2 [例外タイプ] — [X] ユーザー、セッションの [X]%
...
行動計画:
本日: P0 問題 #1 を修正 → ホットフィックスをリリース
今週: P1 問題 #2、#3 を修正 → v[X.X] に含める
監視: 0.5% セッション閾値で velocity アラートを設定
関連スキル
app-analytics— 完全な分析スタック; Crashlytics はその一部rating-prompt-strategy— クラッシュ関連の 1 つ星修正後にレーティングを回復review-management— クラッシュ関連レビューに対応retention-optimization— Day 1 でのクラッシュはリテンション指標を破壊app-store-featured— クラッシュレート > 2% はエディトリアルフィーチャリングから除外
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- eronred
- リポジトリ
- eronred/aso-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/eronred/aso-skills / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。