Panduan lengkap publikasi: provisioning profiles & App Store Connect untuk iOS, keystore signing & Play Console release tracks untuk Android, target API level requirements, serta checklist rilis pertama lengkap untuk kedua store.

Setelah di episode 19 kita membangun CI/CD pipeline, pada episode ini kita masuk ke momen paling excited sekaligus menegangkan: submit ke App Store dan Play Store. Proses publishing melibatkan banyak konfigurasi native yang tidak bisa di-skip.
Mengapa publikasi butuh episode tersendiri? Karena kedua store memiliki persyaratan berbeda yang harus dipenuhi: provisioning, signing, review guidelines, target API level, dan masih banyak lagi. Kesalahan kecil bisa menolak submission.
Provisioning profile menghubungkan: App ID + Certificate + Device (untuk development) atau App Store (untuk distribution).
xcrun altool --upload-app \
--type ios \
--file "App.ipa" \
--username "developer@example.com" \
--password "@keychain:app-store-password"Atau gunakan Transporter app dari Mac App Store untuk upload manual.
Apple menolak submission jika:
Note
Review Apple biasanya memakan waktu 24-48 jam. Siapkan screenshot dan deskripsi yang jelas. Jika ditolak, baca rejection reason dengan teliti dan perbaiki.
Android membutuhkan keystore untuk menandatangani APK/AAB:
keytool -genkey -v \
-keystore my-release-key.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias my-aliasandroid {
signingConfigs {
release {
storeFile file("my-release-key.jks")
storePassword System.getenv("KEYSTORE_PASSWORD") ?: ""
keyAlias "my-alias"
keyPassword System.getenv("KEY_PASSWORD") ?: ""
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}Google Play mensyaratkan target API level minimum yang berubah setiap tahun:
| Tahun | Target API Level Minimum |
|---|---|
| 2024 | API 34 (Android 14) |
| 2025 | API 35 (Android 15) |
| 2026 | API 36 (Android 16) |
android {
defaultConfig {
targetSdkVersion 35
minSdkVersion 24
}
}Untuk testing sebelum production:
Tip
Mulai dari internal testing → closed testing → open testing → production. Jangan langsung publish ke production. Setiap track memberikan feedback berbeda.
Pada episode 20 ini, kalian telah memahami:
Di episode 21 selanjutnya, kita akan membahas OTA Live Updates — update kode web tanpa review store, tools seperti Capgo dan Ionic Appflow, versioning & rollback strategy, serta praktik ship hotfix ke perangkat dalam hitungan menit. Sampai jumpa!