# Panduan Rilis per Track Google Play

Dokumen ini menjelaskan langkah detail untuk tiap jenis rilis: Internal Testing, Closed Testing, dan Production.

## Status proyek saat ini

- [x] Nama aplikasi sudah final: `JamShalat`
- [x] Package name Android sudah final: `com.jamshalat.app`
- [x] Keystore rilis sudah ada: `android/app/upload-keystore.p12`
- [ ] `android/key.properties` masih perlu disiapkan di mesin rilis
- [ ] URL privacy policy perlu disiapkan
- [ ] Screenshot Play Store perlu disiapkan
- [ ] Feature graphic perlu disiapkan

## Sebelum semua rilis

1. Naikkan versi aplikasi
   - Edit `pubspec.yaml`
   - Tambahkan `versionCode` baru
   - Contoh:

```yaml
version: 1.0.1+2
```

2. Pastikan signing release aktif
- File `android/key.properties` harus ada
- Isi password dan alias harus benar
- Contoh isi yang sesuai dengan repo ini:

```properties
storeFile=../app/upload-keystore.p12
storePassword=PASSWORD_STORE_ANDA
keyAlias=upload
keyPassword=PASSWORD_KEY_ANDA
```

Catatan:
- alias pada keystore yang ada di repo ini adalah `upload`
- password keystore tidak diambil dari Play Console, tapi dari saat keystore itu dibuat

3. Build bundle release
   - Jalankan:

```bash
flutter pub get
flutter build appbundle --release
```

4. Ambil file hasil build
   - File upload ada di:

```text
build/app/outputs/bundle/release/app-release.aab
```

## 1. Internal Testing

Gunakan track ini untuk cek awal sebelum rilis lebih luas.

### Tujuan

- memastikan app bisa di-install
- memastikan login, beranda, jadwal, qibla, quran, dzikir, dan share berjalan
- menangkap crash atau bug awal

### Langkah

1. Buka Google Play Console
2. Pilih app `JamShalat`
3. Masuk ke `Testing` lalu `Internal testing`
4. Klik `Create new release`
5. Upload file `app-release.aab`
6. Tulis release notes
   - contoh:

```text
Perbaikan stabilitas, penyempurnaan tampilan, dan pembaruan fitur ibadah harian.
```

7. Simpan release
8. Review ringkas halaman release
9. Klik `Save` atau `Publish` ke internal testing
10. Tambahkan tester internal jika diminta
11. Install dari link testing
12. Cek:
   - buka aplikasi
   - navigasi utama
   - push notification
   - audio murattal
   - share gambar/tulisan

### Kapan dipakai

- setiap kali ada perubahan kecil
- saat ingin tes cepat setelah build baru
- sebelum closed testing

## 2. Closed Testing

Gunakan track ini untuk tes yang lebih serius dengan tester terbatas.

### Tujuan

- validasi sebelum produksi
- cek aplikasi pada beberapa device nyata
- kumpulkan feedback dari tester terbatas

### Langkah

1. Buka Google Play Console
2. Pilih app `JamShalat`
3. Masuk ke `Testing` lalu `Closed testing`
4. Buat tester list atau Google Group jika belum ada
5. Tambahkan alamat email tester
6. Klik `Create new release`
7. Upload `app-release.aab`
8. Tulis release notes
   - contoh:

```text
Rilis uji tertutup untuk validasi stabilitas, performa, dan kesiapan produksi.
```

9. Simpan release
10. Pastikan tester menerima link opt-in
11. Minta tester install dari link closed test
12. Tunggu hasil tes dan feedback

### Jika akun developer personal baru

Kalau Google Play Console meminta syarat tes 14 hari:

1. Jalankan closed testing sesuai aturan akun
2. Pastikan jumlah tester sesuai permintaan Google
3. Pastikan testing berjalan kontinu sesuai masa yang diminta
4. Setelah lolos, baru lanjut ke production

### Kapan dipakai

- sebelum production pertama kali
- saat perlu validasi lebih luas dari internal testing

## 3. Production

Gunakan track ini untuk rilis publik.

### Tujuan

- app tersedia untuk publik di Google Play

### Langkah

1. Pastikan internal testing dan closed testing sudah aman
2. Pastikan versionCode sudah naik
3. Pastikan listing sudah lengkap
   - nama
   - deskripsi
   - screenshot
   - feature graphic
   - privacy policy
   - data safety
   - content rating
4. Masuk ke `Release` atau `Production` di Play Console
5. Klik `Create new release`
6. Upload file `app-release.aab`
7. Isi release notes publik
   - contoh:

```text
Rilis awal JamShalat dengan fitur jadwal shalat, Al-Qur'an, dzikir, kiblat, laporan ibadah, dan sharing ayat.
```

8. Review summary
9. Pastikan tidak ada error atau warning fatal
10. Kirim ke review Google Play
11. Tunggu approval
12. Setelah disetujui, app akan tayang ke publik

### Kapan dipakai

- hanya ketika kamu siap publikasi
- jangan dipakai untuk tes harian

## Checklist per rilis

### Internal Testing

- [ ] versionCode dinaikkan
- [ ] `flutter build appbundle --release` berhasil
- [ ] `app-release.aab` siap
- [ ] release notes ditulis
- [ ] tester internal sudah ada
- [ ] install dari Play Console berhasil

### Closed Testing

- [ ] versionCode dinaikkan
- [ ] `app-release.aab` siap
- [ ] tester list sudah dibuat
- [ ] opt-in link sudah dibagikan
- [ ] feedback tester sudah dicek

### Production

- [ ] semua testing track aman
- [ ] store listing lengkap
- [ ] data safety diisi
- [ ] content rating selesai
- [ ] privacy policy aktif
- [ ] release notes publik ditulis
- [ ] review produksi sudah dikirim

## Catatan penting

- Jangan upload APK ke production. Pakai AAB.
- Jangan lupa menaikkan `versionCode` untuk setiap upload baru.
- Jika kamu mengganti `applicationId`, Play Console menganggapnya sebagai app baru.
- Simpan file keystore dan `android/key.properties` dengan aman.
