ios-app-store-submissionlisted
Install: claude install-skill kimny1143/claude-code-template
# iOS Local Build & Submission
ローカルビルド → App Store Connect アップロード → TestFlight / 審査提出の完全ワークフロー。
## 基本方針
- **ローカルビルドをデフォルトにする**(EAS Buildは使わない)
- EAS Free tier は月30ビルド。デバッグ反復で一瞬で溶ける
- EASはgit cloneベース → gitに入っていないファイルはビルドに含まれない → 事故の元
- ローカルビルドはファイルシステムを直接使う → 安全・高速・無制限
---
## Phase 0: ビルド前チェック
### 0.1 アプリ特定
```bash
# どのアプリをビルドするか確認
ls -d */app.json
# → muednote-mobile/app.json, muedear/app.json
```
### 0.2 ブランチ確認
| 目的 | ブランチ |
|------|---------|
| App Store 審査提出 | `main` |
| TestFlight テスト | feature ブランチ OK |
```bash
git branch --show-current
git status
```
### 0.3 バージョン・ビルド番号の確認
```bash
# app.json から現在の version と buildNumber を確認
cat <APP_DIR>/app.json | grep -E '"version"|"buildNumber"'
```
**ルール:**
- `version`: App Store に表示されるバージョン(例: 0.8.4)
- `buildNumber`: 同一 version 内で一意。**常に既存の最大値 + 1 にする**
- App Store Connect で使用済みの buildNumber は再利用不可
- version train が閉じたら(リジェクト等)、version を上げる必要あり
### 0.4 .env 管理
**重要: .env の値は prebuild 時ではなく、xcodebuild archive 時に Metro bundler が注入する。**
```bash
# 現在の .env を確認
cat <APP_DIR>/.env
# バックアップ(初回のみ)
cp <APP_DIR>/.env <APP_DIR>/.env.backup
```
| 用途 | CLERK_KEY | API_URL |
|------|-----------|---------|
| **本番** (App Store) | `pk_live_...` | `https://mued.jp` |
| **テスト** (TestFlight) | `pk_test_...` | preview deploy URL |
**TestFlight ビルドの場合:**
```bash
# .env を TestFlight 用に変更
# EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
# EXPO_PUBLIC_API_URL=https://<preview-url>.vercel.app
```
**本番ビルドの場合:**
```bash
# .env が本番値であることを確認