ponshu-room-lite/CLAUDE.md

57 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <deployment-url> 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 storeprovider=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 がバイナリに入る