# Checklist Rilis Google Play

Dokumen ini menjelaskan langkah teknis dari repo ini sampai file `AAB` siap diupload ke Google Play Console.

## Status proyek saat ini

- [x] Nama aplikasi sudah diganti menjadi `JamShalat`
- [x] `applicationId` Android sudah diset ke `com.jamshalat.app`
- [x] File keystore rilis sudah ada di `android/app/upload-keystore.p12`
- [x] Konfigurasi signing release sudah disiapkan di `android/app/build.gradle.kts`
- [x] Versi aplikasi sudah ada di `pubspec.yaml`
- [x] Ikon dan branding aplikasi sudah ada
- [ ] File `android/key.properties` belum ada di repo
- [ ] URL privacy policy belum disiapkan
- [ ] Screenshot Play Store belum disiapkan
- [ ] Store listing dan form Play Console belum diisi

## Catatan penting soal signing

- Teks `Releases signed by Google Play` di Play Console berarti app signing dikelola Google Play.
- Itu berbeda dari upload key yang dipakai saat kamu membangun file `AAB` dari mesin lokal.
- `applicationId` ada di [android/app/build.gradle.kts](/Users/dwindown/Applications/jamshalat-diary/android/app/build.gradle.kts) dan saat ini bernilai `com.jamshalat.app`.
- File `android/key.properties` adalah file lokal di mesin rilis, bukan file yang di-upload ke Play Console.
- Pada repo ini, file keystore ada di `android/app/upload-keystore.p12`, dan isi `storeFile` di `key.properties` harus mengarah ke file itu dari folder `android/`.

## Yang perlu dipersiapkan

1. Siapkan kredensial signing release
   - Buat file `android/key.properties`
   - Isi dengan lokasi file keystore, alias, dan password
   - Contoh isi:

```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 `storePassword` dan `keyPassword` adalah password yang kamu tentukan saat membuat keystore

2. Naikkan versi aplikasi setiap kali rilis
   - Edit `pubspec.yaml`
   - Ubah `version` menjadi format `major.minor.patch+versionCode`
   - Contoh:

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

3. Jalankan build release
   - Dari root project, jalankan:

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

4. Ambil file hasil build
   - File yang diupload ke Play Console adalah:

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

5. Upload ke Play Console
   - Buka Google Play Console
   - Masuk ke app `JamShalat`
   - Upload `app-release.aab` ke track yang sesuai
   - Saran alur:
     - Internal testing untuk cek awal
     - Closed testing jika diperlukan oleh akun baru
     - Production setelah siap rilis

## Alur step by step

1. Pastikan file signing sudah lengkap
   - `android/app/upload-keystore.p12` ada
   - `android/key.properties` sudah dibuat
   - password dan alias benar

2. Pastikan versi sudah dinaikkan
   - Jangan upload `versionCode` yang sama dua kali
   - Play Store menolak upload dengan `versionCode` yang sama atau lebih kecil

3. Build bundle release
   - Jalankan `flutter build appbundle --release`
   - Tunggu sampai selesai

4. Verifikasi file output
   - Cari `build/app/outputs/bundle/release/app-release.aab`
   - Inilah file utama untuk upload

5. Siapkan akun Play Console
   - Login ke akun developer yang sudah diverifikasi
   - Pastikan payment/profile/account sudah lengkap

6. Isi store listing
   - Nama aplikasi
   - Deskripsi singkat
   - Deskripsi lengkap
   - Ikon
   - Screenshot
   - Feature graphic
   - Privacy policy

7. Isi form compliance
   - Data safety
   - Content rating
   - Target audience
   - App access jika ada login

8. Upload ke testing track dulu
   - Disarankan jangan langsung produksi
   - Tes install, buka app, login jika ada, dan semua fitur utama

9. Promosikan ke production
   - Setelah semua aman, promote release ke production

## Catatan penting

- Karena `applicationId` saat ini sudah berubah menjadi `com.jamshalat.app`, upload ini akan dianggap sebagai app baru di Play Store jika sebelumnya ada app lain dengan package berbeda.
- Jangan gunakan APK untuk upload ke Play Store utama. Gunakan AAB.
- Kalau file `android/key.properties` belum ada, build lokal mungkin tetap jalan dengan debug signing, tetapi itu tidak boleh dipakai untuk upload ke Play Store.
- Untuk akun developer personal baru, biasanya perlu closed testing lebih dulu sebelum production. Cek aturan akun di Play Console jika diminta.
