エラー分類

定義済み Error 型

StoreError(StoreManager)

enum StoreError: Error {
    case productNotFound
    case verificationFailed
    case userCancelled
    case pending
    case unknown(String)
}

エラー一覧

エラーID分類発生条件ユーザー表示復旧ロギング
WD-SK-01StoreKitproductNotFound「商品が見つかりません」復元ボタン誘導error
WD-SK-02StoreKitverificationFailed「決済の検証に失敗しました」サポート問合せerror
WD-SK-03StoreKitpending「処理中です」承認後に自動更新info
WD-AD-01広告Banner ロード失敗サイレント(高さ0)info
WD-AD-02広告Rewarded ロード失敗「広告を読み込めませんでした」再試行warning
WD-DB-01SwiftDatacontext.save() 失敗「データ保存に失敗しました」再試行 / 再起動error
WD-DB-02SwiftDataマイグレーション失敗サイレント(旧データ保持)error
WD-NOTIF-01権限通知許可拒否「設定アプリで通知を有効に」設定アプリ起動info
WD-ATT-01権限ATT拒否サイレントinfo
WD-INPUT-01ビジネス重量・レップ未入力「入力してください」入力促進
WD-INPUT-02ビジネス負の値入力赤枠 + 警告正の値に修正

UI 表示パターン

重要度表示形式
インラインメッセージ入力検証
AlertダイアログStoreKit / SwiftData失敗
フルスクリーン誘導該当なし(ローカル完結)

RewardedAdManager の continuation leak 対策

adContinuation プロパティで CheckedContinuation を手動管理。重複表示やメモリリークを防止。
// 簡略例
private var adContinuation: CheckedContinuation<Bool, Never>?

func showAd() async -> Bool {
    await withCheckedContinuation { continuation in
        self.adContinuation = continuation
        // 広告表示後、コールバックで resume
    }
}

変更履歴

バージョン日付変更内容
1.02026-05-09初版作成(ソースコードからリバース)