57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
# 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 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 がバイナリに入る
|