Skip to content

Commit 68f71a2

Browse files
Copilotnannany
andcommitted
docs(android): Add detailed instructions for physical device testing and release process
Co-authored-by: nannany <14943122+nannany@users.noreply.github.com>
1 parent 944c7e1 commit 68f71a2

File tree

1 file changed

+352
-11
lines changed

1 file changed

+352
-11
lines changed

android/README.md

Lines changed: 352 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,42 @@ Android Studio が自動的に Gradle Sync を開始します。
8080

8181
#### 実機を使用する場合
8282

83-
1. Android デバイスで開発者オプションを有効化
84-
2. USB デバッグを有効化
85-
3. USB でコンピューターに接続
83+
##### 1. Android デバイスの開発者オプションを有効化
84+
85+
1. **設定** アプリを開く
86+
2. **デバイス情報** または **端末情報** を選択
87+
3. **ビルド番号** を7回連続でタップ
88+
4. 「デベロッパーになりました」というメッセージが表示される
89+
90+
##### 2. USB デバッグを有効化
91+
92+
1. **設定** > **システム** > **開発者向けオプション** を開く
93+
2. **USB デバッグ** をオンにする
94+
3. 確認ダイアログで **OK** をタップ
95+
96+
##### 3. デバイスを接続
97+
98+
1. USB ケーブルでAndroidデバイスをコンピューターに接続
99+
2. デバイスに「USB デバッグを許可しますか?」というダイアログが表示される
100+
3. **このコンピューターを常に許可する** にチェックを入れて **OK** をタップ
101+
102+
##### 4. 接続確認
103+
104+
コマンドラインで以下を実行して、デバイスが認識されているか確認:
105+
106+
```bash
107+
adb devices
108+
```
109+
110+
以下のように表示されれば成功:
111+
```
112+
List of devices attached
113+
ABC123456789 device
114+
```
115+
116+
**注意**:
117+
- デバイスが表示されない場合は、USB ケーブルを変更するか、USBモードを「ファイル転送」に変更してみてください
118+
- Windows の場合、デバイスのUSBドライバーのインストールが必要な場合があります
86119

87120
### 5. アプリの実行
88121

@@ -92,6 +125,125 @@ Android Studio の "Run" ボタン(▶️)をクリックするか、以下
92125
./gradlew installDebug
93126
```
94127

128+
## 実機でのテスト
129+
130+
実機でアプリをテストすることで、実際のユーザー体験を確認できます。
131+
132+
### デバイス選択
133+
134+
Android Studio で実行する際:
135+
136+
1. ツールバーのデバイス選択ドロップダウンをクリック
137+
2. 接続されている実機を選択(エミュレーターと実機が両方表示されます)
138+
3. "Run" ボタンをクリック
139+
140+
### コマンドラインから実機にインストール
141+
142+
```bash
143+
# 接続されているデバイスを確認
144+
adb devices
145+
146+
# デバッグ版をインストール
147+
./gradlew installDebug
148+
149+
# 特定のデバイスにインストール(複数接続時)
150+
adb -s DEVICE_ID install app/build/outputs/apk/debug/app-debug.apk
151+
```
152+
153+
### 実機でのデバッグ
154+
155+
#### Logcat でログを確認
156+
157+
Android Studio の **Logcat** タブで、実機からのログをリアルタイムで確認できます:
158+
159+
1. **Logcat** タブを開く
160+
2. デバイスを選択
161+
3. フィルターを設定(例: `tag:TaskManagement``package:com.tryjunie.tasks`
162+
163+
コマンドラインから:
164+
165+
```bash
166+
# すべてのログを表示
167+
adb logcat
168+
169+
# アプリのログのみ表示
170+
adb logcat | grep "com.tryjunie.tasks"
171+
172+
# クラッシュレポートを確認
173+
adb logcat | grep "AndroidRuntime"
174+
```
175+
176+
#### ワイヤレスデバッグ(Android 11以上)
177+
178+
USB ケーブルなしでデバッグできます:
179+
180+
1. デバイスで **設定** > **開発者向けオプション** > **ワイヤレス デバッグ** をオンにする
181+
2. **ペア設定コードによるデバイスのペア設定** をタップ
182+
3. コンピューターで以下を実行:
183+
184+
```bash
185+
adb pair IP_ADDRESS:PORT
186+
# 表示されたペアリングコードを入力
187+
188+
adb connect IP_ADDRESS:PORT
189+
```
190+
191+
これで、USB ケーブルなしでデバッグできます。
192+
193+
### パフォーマンステスト
194+
195+
実機でのパフォーマンスを確認:
196+
197+
#### メモリ使用量
198+
199+
Android Studio の **Profiler** を使用:
200+
201+
1. **View** > **Tool Windows** > **Profiler**
202+
2. 実機を選択
203+
3. **Memory** をクリックしてメモリ使用量を監視
204+
205+
#### ネットワーク通信
206+
207+
Supabase への通信を確認:
208+
209+
1. **Profiler** > **Network** タブ
210+
2. API 呼び出しの時間とデータサイズを確認
211+
212+
#### CPU 使用率
213+
214+
1. **Profiler** > **CPU** タブ
215+
2. UI のレンダリングやバックグラウンド処理の負荷を確認
216+
217+
### 実機特有の問題
218+
219+
実機でテストすることで、以下のような問題を発見できます:
220+
221+
- **ネットワーク接続**: Wi-Fi やモバイルデータでの動作
222+
- **バッテリー消費**: バックグラウンドでの電力使用
223+
- **画面サイズ**: 様々な解像度での表示
224+
- **OS バージョン**: 古いバージョンでの互換性
225+
- **パフォーマンス**: 低スペックデバイスでの動作
226+
227+
### 複数デバイスでのテスト推奨
228+
229+
可能であれば、以下のような異なる特性のデバイスでテストすることを推奨します:
230+
231+
- **低スペック端末**: メモリやCPUが限られたデバイス
232+
- **高解像度端末**: 大画面や高DPIディスプレイ
233+
- **古いOS**: サポート対象の最小APIレベル(API 24)
234+
- **メーカー別**: Samsung、Xiaomi、OPPOなど、カスタムUIを持つデバイス
235+
236+
### Firebase Test Lab(オプション)
237+
238+
Google の Firebase Test Lab を使用すると、クラウド上の実機で自動テストができます:
239+
240+
1. Firebase Console でプロジェクトを作成
241+
2. APK をアップロード
242+
3. テスト対象のデバイスとOS バージョンを選択
243+
4. テストを実行
244+
245+
詳細: [Firebase Test Lab](https://firebase.google.com/docs/test-lab)
246+
95247
## プロジェクト構造
96248

97249
```
@@ -227,17 +379,206 @@ fun TaskItemPreview() {
227379

228380
## リリースビルド
229381

230-
### 署名付き APK/AAB の作成
382+
### 前提条件
383+
384+
リリース版のアプリを作成する前に、以下が必要です:
385+
386+
1. **キーストアファイル**: アプリに署名するための証明書
387+
2. **Google Play Console アカウント**: Google Play にアプリを公開する場合
388+
3. **アプリアイコン**: 適切なサイズのランチャーアイコン
389+
4. **プライバシーポリシー**: Google Play で必須
390+
391+
### ステップ1: キーストアの作成
392+
393+
初回のみ、キーストアを作成する必要があります:
394+
395+
#### Android Studio を使用する場合
396+
397+
1. **Build** > **Generate Signed Bundle / APK** を選択
398+
2. **Android App Bundle** または **APK** を選択し、**Next**
399+
3. **Create new...** をクリック
400+
4. 以下の情報を入力:
401+
- **Key store path**: キーストアの保存場所(例: `~/keystores/tryjunie-release.jks`
402+
- **Password**: 安全なパスワード(必ず記録してください)
403+
- **Alias**: キーのエイリアス(例: `tryjunie-key`
404+
- **Key password**: キーのパスワード
405+
- **Validity (years)**: 25年以上を推奨
406+
- **Certificate**: 組織情報(最低限、名前を入力)
407+
5. **OK** をクリックしてキーストアを作成
408+
409+
#### コマンドラインを使用する場合
410+
411+
```bash
412+
keytool -genkey -v -keystore ~/keystores/tryjunie-release.jks \
413+
-alias tryjunie-key -keyalg RSA -keysize 2048 -validity 10000
414+
```
415+
416+
**重要**: キーストアファイルとパスワードは**絶対に失わないでください**。これらがないとアプリの更新ができなくなります。
417+
418+
### ステップ2: 署名設定の追加
419+
420+
`android/app/build.gradle.kts` に署名設定を追加(または `keystore.properties` ファイルを作成):
421+
422+
#### 方法1: keystore.properties を使用(推奨)
423+
424+
`android/keystore.properties` ファイルを作成:
425+
426+
```properties
427+
storePassword=your-store-password
428+
keyPassword=your-key-password
429+
keyAlias=tryjunie-key
430+
storeFile=/path/to/tryjunie-release.jks
431+
```
432+
433+
`.gitignore``keystore.properties` を追加して、Git にコミットしないようにします。
434+
435+
#### 方法2: 環境変数を使用
436+
437+
環境変数を設定:
438+
439+
```bash
440+
export KEYSTORE_PASSWORD=your-store-password
441+
export KEY_PASSWORD=your-key-password
442+
export KEY_ALIAS=tryjunie-key
443+
export KEYSTORE_FILE=/path/to/tryjunie-release.jks
444+
```
445+
446+
### ステップ3: リリースビルドの作成
447+
448+
#### Android App Bundle (AAB) の作成(推奨)
449+
450+
Google Play に公開する場合は AAB 形式が推奨されます:
451+
452+
```bash
453+
./gradlew bundleRelease
454+
```
455+
456+
生成されたファイル: `app/build/outputs/bundle/release/app-release.aab`
457+
458+
#### APK の作成
459+
460+
直接配布する場合や、Google Play 以外のストアに公開する場合:
461+
462+
```bash
463+
./gradlew assembleRelease
464+
```
465+
466+
生成されたファイル: `app/build/outputs/apk/release/app-release.apk`
467+
468+
#### Android Studio から作成
469+
470+
1. **Build** > **Generate Signed Bundle / APK**
471+
2. **Android App Bundle** を選択し、**Next**
472+
3. キーストア情報を入力
473+
4. **release** ビルドバリアントを選択
474+
5. **Finish** をクリック
475+
476+
### ステップ4: ビルドの検証
477+
478+
リリースビルドを実機でテストします:
479+
480+
```bash
481+
# APK をインストール
482+
adb install app/build/outputs/apk/release/app-release.apk
483+
484+
# または bundletool を使用して AAB をテスト
485+
bundletool build-apks --bundle=app/build/outputs/bundle/release/app-release.aab \
486+
--output=app.apks --ks=/path/to/keystore.jks \
487+
--ks-key-alias=tryjunie-key
488+
489+
bundletool install-apks --apks=app.apks
490+
```
491+
492+
### ステップ5: Google Play へのデプロイ
493+
494+
#### 5.1 Google Play Console の準備
495+
496+
1. [Google Play Console](https://play.google.com/console) にアクセス
497+
2. 新しいアプリを作成
498+
3. 以下の情報を入力:
499+
- アプリ名
500+
- デフォルト言語
501+
- アプリの種類(アプリまたはゲーム)
502+
- 無料/有料
503+
504+
#### 5.2 ストア掲載情報の作成
505+
506+
以下の情報が必要です:
507+
508+
- **アプリアイコン**: 512 x 512 px(PNG)
509+
- **スクリーンショット**:
510+
- 携帯電話: 最低2枚(最大8枚)
511+
- 7インチタブレット(オプション)
512+
- 10インチタブレット(オプション)
513+
- **短い説明**: 80文字以内
514+
- **詳しい説明**: 4000文字以内
515+
- **カテゴリ**: アプリのカテゴリを選択
516+
- **連絡先情報**: メールアドレス
517+
- **プライバシーポリシー**: URL(必須)
518+
519+
#### 5.3 コンテンツレーティング
520+
521+
アプリのコンテンツに関する質問票に回答し、レーティングを取得します。
522+
523+
#### 5.4 対象ユーザーとコンテンツ
524+
525+
- 対象年齢層を設定
526+
- 広告の有無を申告
527+
- データの取り扱いに関する情報を提供
528+
529+
#### 5.5 リリース
530+
531+
1. **製品版** > **リリース** > **新しいリリースを作成** を選択
532+
2. AAB ファイルをアップロード
533+
3. リリースノートを入力(各言語)
534+
4. **審査に送信** をクリック
535+
536+
審査には通常1~3日かかります。
537+
538+
### ステップ6: 継続的な更新
539+
540+
#### バージョンコードとバージョン名の更新
541+
542+
新しいバージョンをリリースする際は、`app/build.gradle.kts` を更新:
543+
544+
```kotlin
545+
defaultConfig {
546+
versionCode = 2 // 前回より大きい整数
547+
versionName = "1.1.0" // セマンティックバージョニング
548+
}
549+
```
550+
551+
#### 段階的公開
552+
553+
Google Play では、リリースを段階的に公開できます:
554+
555+
1. 初期公開率を設定(例: 5%、10%、20%)
556+
2. クラッシュレートやユーザーフィードバックを監視
557+
3. 問題がなければ段階的に公開率を上げる
558+
4. 最終的に100%に到達
559+
560+
### リリースチェックリスト
561+
562+
- [ ] キーストアファイルを安全に保管
563+
- [ ] ProGuard/R8 で難読化を有効化(本番用)
564+
- [ ] デバッグログを無効化
565+
- [ ] すべてのテストが通過
566+
- [ ] 実機で動作確認
567+
- [ ] スクリーンショットを準備
568+
- [ ] プライバシーポリシーを準備
569+
- [ ] リリースノートを作成
570+
- [ ] バージョンコードを更新
571+
572+
### トラブルシューティング(リリース)
231573

232-
1. Android Studio で **Build** > **Generate Signed Bundle / APK**
233-
2. キーストアを作成または選択
234-
3. リリース設定を選択してビルド
574+
**問題**: 「キーストアが見つかりません」エラー
575+
**解決策**: `keystore.properties` のパスが正しいか確認。絶対パスを使用することを推奨。
235576

236-
### Google Play へのデプロイ
577+
**問題**: Google Play で「重複する APK」エラー
578+
**解決策**: `versionCode` を前のバージョンより大きい値に更新。
237579

238-
1. AAB ファイルを作成
239-
2. Google Play Console にアップロード
240-
3. リリーストラックを選択してデプロイ
580+
**問題**: アプリがリリースビルドでクラッシュする
581+
**解決策**: ProGuard ルールを確認。必要なクラスが難読化されていないか確認(`proguard-rules.pro`)。
241582

242583
## 参考リンク
243584

0 commit comments

Comments
 (0)