定義済み Error型
enum StoreError: Error {
case productNotFound
case verificationFailed
case userCancelled
}
enum AppUpdateError: Error {
case fetchFailed
case parseFailed
}
エラー一覧
| ID | 分類 | 発生条件 | 表示 | 復旧 | ログ |
| SS-SK-01 | StoreKit | 商品未取得 | 「商品を読込中」 | 再試行 | error |
| SS-SK-02 | StoreKit | verification失敗 | 「決済の検証に失敗しました」 | サポート問合せ | error |
| SS-LA-01 | Live Activity | Activity.request失敗 | サイレント | — | error |
| SS-LA-02 | Live Activity | orphaned activity 検出 | サイレント(クリーンアップ) | — | warning |
| SS-WID-01 | Widget | AppGroup nil | Widget空表示 | 本体起動で同期 | warning |
| SS-NOTIF-01 | 権限 | 通知許可拒否 | 「設定で通知を有効に」 | 設定アプリ | info |
| SS-AD-01 | 広告 | Banner ロード失敗 | サイレント(高さ0) | — | info |
| SS-AD-02 | 広告 | Interstitial 未ロード | サイレント | — | info |
| SS-DB-01 | SwiftData | save失敗 | 「データ保存に失敗」 | 再試行 | error |
| SS-TIMER-01 | タイマー | 24時間境界超え | サイレントリセット | — | info |
| SS-UPDATE-01 | 更新 | App Store API失敗 | サイレント | — | warning |
UI 表示パターン
| 重要度 | 表示 |
| 低 | サイレント / Logger のみ |
| 中 | Alert ダイアログ |
| 高 | 該当なし |
タイマー24時間境界の扱い
アプリ再起動時、保存済み startTime と現在時刻の差が 24時間以内のみ復元。
朝をまたいだ場合は自動的にリセットして、誤った長時間記録を防ぐ。
変更履歴
| バージョン | 日付 | 変更内容 |
|---|
| 1.0 | 2026-05-09 | 初版作成 |