Skip to content

iOS: EAS Submit + App Store 公開 #194

Description

@hirokisakabe

Status: Draft

親: #12

実装前に親 issue を必ず読むこと。

概要

tascal の iOS production build を App Store Connect へアップロードし、審査を経て App Store から公開・インストールできる状態にする。

背景 / モチベーション

実機向け EAS Build の基本設定は #228 で完了している。現在は apps/mobile/eas.json に production build profile がある一方、submit profile、App Store Connect の登録情報、ストアメタデータ、審査・公開手順が未整備。

公開対象の機能範囲と運用方法を決め、再現可能なリリース手順にする必要がある。

受け入れ条件

  • Apple Developer Program と App Store Connect で必要な契約・権限・アプリ登録が完了している
  • Bundle ID com.hirokisakabe.tascal と App Store Connect のアプリ設定が一致する
  • apps/mobile/eas.json に決定した production build / submit 設定がある
  • production 用 API URL とシークレットを安全な方法で設定できる
  • EAS Build で審査提出可能な iOS build を作成できる
  • EAS Submit で App Store Connect へ build をアップロードできる
  • アプリ名、説明、カテゴリ、年齢区分、スクリーンショット、アイコン、サポート URL、プライバシーポリシー等の必須メタデータが登録されている
  • App Privacy、暗号化輸出コンプライアンス、必要な privacy manifest の申告が実装内容と一致する
  • TestFlight または提出前確認でログイン・タスク閲覧・作成・編集・完了切替・削除のスモークテストが成功する
  • App Review へ提出し、承認後に App Store からインストールできる
  • リポジトリ内の設定変更は PR でレビューされ、公開に必要な外部作業は issue コメントへ記録されている
  • Mobile の lint・format-check・typecheck・test が成功する

Ready にするための未決事項

  • 初回公開に iOS: ホーム画面ウィジェット #193 のホーム画面ウィジェットを含めるか、コア機能を先に公開するか決める
  • 対象地域、公開方法(自動 / 手動)、段階的リリースの有無を決める
  • production build・submit をローカル手順にするか、GitHub Actions から実行するか決める
  • App Store の表示名、説明文、カテゴリ、サポート URL を確定する
  • スクリーンショットを用意する対象端末・言語を決める
  • Apple Developer / App Store Connect / EAS の必要権限を確認する

スコープ外

  • Android / Google Play 公開
  • 有料課金・サブスクリプション
  • 大規模なマーケティング施策
  • iOS: ホーム画面ウィジェット #193 を初回公開から外すと決めた場合のウィジェット実装

実装メモ

  • 現在の Bundle ID は apps/mobile/app.jsoncom.hirokisakabe.tascal
  • apps/mobile/eas.json には production build profile があるが、submit profile はない
  • App Store Connect への upload だけでは公開されないため、メタデータ登録・審査提出・公開操作を別工程として扱う
  • CI から submit する場合も、審査提出や公開の承認境界を明確にする

完了形

リポジトリ設定の PR が merge され、App Store Connect 上の外部作業・審査が完了し、App Store からアプリをインストールできることを確認した時点で完了とする。

参考

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions