👟

<DAY2>走らないとお金が請求されるアプリ、Apple Developer Programへの申請やsupabaseとstripeへの接続

に公開

あまり勝算があるわけではないが、iosの審査を通してみたいのと、俺も走りたいのでこれを作る。
イメージこんなことを考えている。

  • ユーザーに今月いくらを預けるかを聞き、実際にお金を振り込む予約をする。
  • iPhoneかApple watchで、healthkitを通じてユーザーの走行距離計測
  • 強制的に走らざるを得ないので、日本人の運動習慣の貢献に寄与する。
  • ユーザーが元々設定した距離に満たない場合、ユーザーがあらかじめ設定したお金が運営に出金される。

ちなみに、僕は個人開発2回目だが基本vibe coderです!普段はコードをたまーにかくデータアナリストみたいなことしてます(ほぼ営業)

今日のまとめ

  • Apple Developer Program、反映まで最大2日かかるらしく遅い。
  • 認証が通らないためあまり検証周りが進められない。
  • とはいえいい感じに進めた、友人にこの土日にテストをしてもらいたいが流石に間に合わんかな

2026-01-23 開発日報

実施内容

1. Apple Developer Program 登録

  • $99 支払い完了
  • Xcode への反映待ち(最大48時間)
  • Sign in with Apple は反映後に実装予定

2. 月末バッチ処理(Edge Functions)

  • process-expired-challenges を作成・デプロイ
    • 28日経過したチャレンジを判定
    • 目標達成 → オーソリをキャンセル(返金)
    • 目標未達 → キャプチャ実行(課金)
  • update-progress を作成・デプロイ
    • 進捗(ランニング分数)を更新

3. GitHub Actions 設定

  • .github/workflows/process-challenges.yml を作成
  • 毎日0時(UTC)に process-expired-challenges を実行
  • Secrets 設定は GitHub push 後に行う

4. HealthKit 連携

  • Info.plistNSHealthShareUsageDescription を追加
  • ActivityMinuteSource プロトコルに requestAuthorization() を追加
  • ChallengeView で起動時に HealthKit 認可をリクエスト
  • 実機テスト成功 🎉
    • HealthKit 認可ダイアログが表示された
    • ワークアウトデータの読み取り許可を取得

5. UI 改善

  • 残り日数の表示を追加
    • 2日以上: 「残り X 日」
    • 1日〜2日: 「残り 1日とX時間」
    • 1日未満: 「残り hh:mm」
  • コミット金額表示の修正
    • 決済完了後にシートを閉じるタイミングを修正

6. コード修正

  • Challenge モデルに stripePaymentIntentId を追加
  • Challenge モデルに残り時間計算プロパティを追加
  • SupabaseChallengeStore で開発用ユーザーIDを使用するよう変更

ブロッカー

Developer Program 反映待ち

  • Sign in with Apple が使えない
  • RLS で認証が必要なため、DB保存のテストができない

一時的な回避策(未実施)

  • Supabase RLS を緩和すれば認証なしでもテスト可能

次回やること

  1. Developer Program 反映確認

    • Xcode → Settings → Accounts で確認
    • Team が追加されていれば OK
  2. Sign in with Apple 実装

    • Supabase Auth との連携
    • Apple ID → Supabase ユーザー作成
  3. DB保存のテスト

    • チャレンジ作成 → Supabase に保存確認
  4. リリース準備

    • GitHub push & Secrets 設定
    • アプリアイコン作成
    • プライバシーポリシー作成

コミット履歴

  • feat: add countdown UI and commitment money
  • その他、Edge Functions デプロイ等

動作確認済み

機能 シミュレータ 実機
Stripe 決済
HealthKit 認可 -
UI 表示
DB 保存 ❌ RLS ❌ RLS

Discussion