diff --git a/.github/workflows/ios_build.yml b/.github/workflows/ios_build.yml index e5b3761..b6c7837 100644 --- a/.github/workflows/ios_build.yml +++ b/.github/workflows/ios_build.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: '3.29.x' + flutter-version: '3.38.x' channel: 'stable' - name: Install dependencies diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..4ce0b99 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,56 @@ +# Ponshu Room Lite — AI 規約 + +## デプロイ手順(必ず守ること) + +### Android APK ビルド +```bash +bash build_consumer.sh # maita + eiji の consumer APK を生成 +bash build_4_apks.sh # 全4バリアント(consumer + business × maita/eiji) +``` +- `.env` から `MAITA_API_KEY` / `EIJI_API_KEY` を読んで `--dart-define` に渡す +- 直接 `flutter build apk` を叩かないこと(キーが secrets.local.dart にフォールバックする) + +### ダウンロードページ(Vercel) +```bash +# 必ず web/download/ ディレクトリから実行すること(web/ からではない) +cd web/download && vercel --prod +vercel alias set ponshu-room-download.vercel.app +``` +- **URL**: https://ponshu-room-download.vercel.app +- `releases.json` を更新してからデプロイする +- `web/` ルートは Flutter web アプリなので絶対にデプロイしない + +### Gitea リリース(APK アップロード) +```bash +# APK ビルド後に Gitea の API でリリース作成 → アセットアップロード +# 認証: git credential store(provider=generic)から自動取得 +GITEA_TOKEN=$(echo "protocol=http\nhost=100.76.7.3:3000" | git credential fill | grep password | cut -d= -f2) +``` + +### iOS / TestFlight +- GitHub tag push(`v*`)で自動トリガー(.github/workflows/ios_build.yml) +- Flutter バージョンは **3.38.x** を使用(pubspec の sdk: ^3.10.1 に対応) + +## リリース手順チェックリスト + +1. `pubspec.yaml` のバージョン番号を上げる +2. `git tag vX.Y.Z && git push gitea main`(タグも push) +3. `bash build_consumer.sh` で APK ビルド +4. Gitea API でリリース作成 + APK アップロード +5. `web/download/releases.json` を新バージョンに更新 +6. `cd web/download && vercel --prod` → alias set +7. iOS CI は GitHub tag push で自動実行 + +## ディレクトリ構成の注意点 + +| ディレクトリ | 内容 | デプロイ先 | +|-------------|------|-----------| +| `lib/` | Flutter アプリ本体 | APK / TestFlight | +| `web/download/` | ダウンロードページ | ponshu-room-download.vercel.app | +| `web/` ルート | Flutter web ビルド出力 | **デプロイ対象外** | + +## secrets の扱い + +- `lib/secrets.local.dart` — gitignore 済み。ローカル開発専用 +- リリースビルドは必ず `build_consumer.sh` 経由(`--dart-define` でキーを注入) +- 直接 `flutter build apk --release` すると secrets.local.dart がバイナリに入る