# RevenueCat: cara pasang langganan in-app di iOS

> RevenueCat menghubungkan produk App Store Connect ke aplikasimu dan mengelola hak akses. Ini langkah-langkah memasang langganan in-app iOS pertamamu.

Halaman asli: [RevenueCat: cara pasang langganan in-app di iOS](https://devoria.fr/id/blog/revenuecat-langganan-in-app-ios)
Penulis: [Mehdi Azizi](https://devoria.fr/id/mehdi-azizi)
Terbit: 2026-10-01
Revisi konten terakhir: 2026-10-09


## Kenapa pakai RevenueCat, bukan StoreKit saja

StoreKit, framework milik Apple, memungkinkan kamu menjual langganan tanpa layanan pihak ketiga. Tapi bagi pemula, menulis sendiri seluruh logika pembelian, pemulihan, dan pengecekan hak akses berarti banyak kode yang harus dirawat, dengan kasus-kasus tepi yang gampang terlupa: ganti perangkat, masa berlaku habis, refund.

[RevenueCat](https://www.revenuecat.com/docs/welcome/overview) berada di antara App Store Connect dan aplikasimu: ia membaca produkmu, mengelola langganan aktif, dan membuatmu tidak perlu menulis lapisan itu sendiri. Kamu tetap pegang kendali atas harga dan penawaran dari dashboard, tanpa harus merilis ulang aplikasi setiap kali ada perubahan.

## Langkah 1: buat produkmu di App Store Connect

Sebelum RevenueCat, produknya harus sudah ada di sisi Apple. Di App Store Connect, buat sebuah grup langganan, lalu satu atau beberapa level dengan durasinya, misalnya bulanan atau tahunan, beserta harganya per wilayah. Isi juga teks yang ditampilkan ke pengguna untuk setiap level: Apple memintanya sebelum menerima produk dalam review.

Kelalaian yang sering terjadi di tahap ini: produk sudah dibuat, tapi tidak pernah diajukan bersama versi aplikasinya di review pertama. Produk yang masih menunggu dan belum pernah disertakan dalam pengajuan aplikasi tetap tidak terlihat oleh penggunamu, meskipun RevenueCat sudah melihatnya.

## Langkah 2: hubungkan RevenueCat ke aplikasimu

Di RevenueCat, kamu membuat project, menghubungkan API key App Store Connect supaya RevenueCat menyinkronkan produkmu secara otomatis, lalu mendefinisikan "entitlements", yaitu hak akses. Sebuah entitlement mewakili apa yang dibuka oleh langganan, misalnya akses penuh ke aplikasi, terlepas dari produk mana persisnya yang memicunya.

Lapisan perantara ini berguna: kalau nanti kamu mengubah struktur penawaranmu, misalnya menambah level tahunan, kamu cukup menghubungkan produk baru ke entitlement yang sama, tanpa menyentuh kode yang mengecek akses di aplikasimu.

Di sisi aplikasi, [SDK RevenueCat untuk React Native](https://www.revenuecat.com/docs/getting-started/installation/reactnative) dipasang di project Expo dengan plugin khusus, dan menyediakan fungsi sederhana untuk mengetahui apakah pengguna saat ini punya entitlement aktif.

## Langkah 3: bangun paywall-mu

Paywall adalah layar yang menampilkan penawaran dan memicu pembelian. RevenueCat menyediakan paywall yang bisa diatur dari dashboard dan diubah tanpa merilis ulang aplikasi, atau kamu bisa membangun sendiri dengan SDK kalau ingin kendali penuh atas desainnya.

Penempatan sama pentingnya dengan desain. Paywall yang muncul sebelum orang melihat nilai aplikasimu biasanya konversinya lebih rendah dibanding paywall yang ditaruh tepat setelah aksi pertama yang berhasil. Panduan [kesalahan paywall iOS untuk pemula](https://devoria.fr/id/blog/paywall-ios-kesalahan-pemula-penjualan) membahas jebakan paling umum di tahap ini, di luar urusan teknis pemasangannya.

## Langkah 4: uji pembelian, pemulihan, dan masa berlaku habis

Ini tahap yang paling sering dikerjakan asal-asalan, padahal paling diperiksa oleh Apple. Tiga skenario harus berjalan sebelum pengajuan:

**Pembelian.** Dengan akun tester sandbox, pembelian harus langsung membuka entitlement, dan aplikasimu harus merespons perubahan itu tanpa perlu di-restart.

**Pemulihan.** Di perangkat baru atau setelah instal ulang, dengan akun Apple yang sama, tombol "Pulihkan pembelian" harus menemukan langganan yang aktif. Apple selalu memeriksa alur ini saat review, dan jika tombol ini tidak ada atau tidak berfungsi, itu alasan penolakan yang sering terjadi berdasarkan [guideline 3.1.1](https://devoria.fr/id/blog/guideline-3-1-1-in-app-purchase-wajib).

**Masa berlaku habis.** Di lingkungan sandbox, langganan berakhir dalam hitungan menit, bukan bulan, sehingga kamu bisa memastikan akses tertutup dengan benar setelah periodenya selesai, tanpa menunggu siklus penagihan sungguhan.

## Yang tidak digantikan oleh RevenueCat

RevenueCat menangani mekanisme pembelian, bukan kepatuhan halaman aplikasimu maupun paywall-mu terhadap [guideline 3.1.2](https://devoria.fr/id/blog/guideline-3-1-2-aplikasi-ditolak-langganan). Kamu tetap harus menjelaskan langganan dengan benar di deskripsi App Store, mencantumkan harga dan durasinya secara tepat, dan mengisi syarat penggunaanmu. Halaman [langganan atau pembelian sekali bayar di iOS](https://devoria.fr/id/blog/langganan-atau-beli-sekali-aplikasi-ios) membantumu memilih model yang tepat bahkan sebelum sampai ke tahap teknis ini.

Selain itu, RevenueCat mengambil komisi dari pendapatan di atas ambang bulanan tertentu, di luar komisi Apple untuk langganan yang dijual di dalam aplikasi. Cek tingkatan terbarunya di situs mereka sendiri sebelum menyusun model bisnismu dengan memperhitungkan dua komisi ini.

## Kesalahan paling umum pada pemula

**Lupa state loading.** Saat aplikasi dibuka, RevenueCat butuh sesaat untuk mengambil hak akses pengguna. Kalau aplikasimu menampilkan konten berbayar secara default sebelum respons itu datang, pengguna tanpa langganan bisa melihat sekilas konten yang tidak dia bayar. Siapkan state loading yang eksplisit, jangan tampilan default yang terlalu optimis.

**Mengecek hak akses di tempat yang salah.** Entitlement aktif harus dicek ulang setiap kali layar berbayar dibuka, bukan hanya sekali saat aplikasi dimulai. Kalau pengguna membatalkan atau langganannya habis saat dia sedang memakai aplikasi, layar berikutnya harus mencerminkan perubahan itu.

**Mencampuradukkan sandbox dan production.** ID produk dan akun tester sandbox terpisah dari production. Tes yang berhasil di sandbox dengan akun Apple yang salah, atau produk yang hanya dibuat di production, bisa memberi kesan palsu bahwa semuanya sudah siap.

## Aplikasi yang sudah dicek, bukan sekadar aplikasi yang bisa di-compile

Langganan yang "jalan" saat tes cepat di akunmu sendiri tidak menjamin ia tetap berfungsi saat dipulihkan di perangkat lain atau saat benar-benar habis masa berlakunya. Justru itulah yang dicek reviewer Apple. Halaman [langganan in-app iOS](https://devoria.fr/id/expertise/langganan-in-app-ios) menjelaskan seluruh rangkaian ini, dari pembuatan produk sampai pengecekan akhir.

Kalau kamu ingin mulai dari basis yang paywall dan langganannya sudah ada di kode, itulah isi kode awal di [iOS Kit](https://devoria.fr/id/kits/ios). Untuk mengecek langgananmu seperti yang akan dilakukan reviewer, [Apple Review Kit](https://devoria.fr/id/kits/review-apple) berisi checklist saya sebelum pengajuan dan catatan yang perlu ditinggalkan untuk tester terkait pembelian in-app.

## Pertanyaan umum

### Bagaimana cara memasang langganan RevenueCat di iOS?

Dalam empat langkah. Pertama, buat produkmu di App Store Connect. Lalu hubungkan RevenueCat dengan API key App Store Connect dan definisikan entitlements (hak akses), kemudian bangun paywall. Terakhir, uji pembelian, pemulihan, dan masa berlaku habis: tahap ini sering dikerjakan asal-asalan, padahal diperiksa oleh Apple.

### Apakah RevenueCat wajib untuk menjual langganan di iOS?

Tidak. StoreKit, framework milik Apple, memungkinkan kamu menjual langganan tanpa layanan pihak ketiga. Tapi kamu jadi harus menulis sendiri seluruh logika pembelian, pemulihan, dan pengecekan hak akses, dengan kasus tepi yang gampang terlupa: ganti perangkat, masa berlaku habis, refund. RevenueCat berada di antara App Store Connect dan aplikasimu supaya kamu tidak perlu menulis lapisan itu.

### Apa itu entitlement di RevenueCat?

Entitlement adalah hak akses: ia mewakili apa yang dibuka oleh langganan, misalnya akses penuh ke aplikasi, apa pun produk persis yang memicunya. Kalau nanti kamu menambah level tahunan, kamu cukup menghubungkan produk baru ke entitlement yang sama. Kode yang mengecek akses di aplikasimu tidak perlu diubah.

### Bagaimana cara menguji langganan RevenueCat sebelum mengajukan ke Apple?

Tiga skenario harus berjalan sebelum pengajuan. Pembelian: dengan akun tester sandbox, akses langsung terbuka tanpa me-restart aplikasi. Pemulihan: di perangkat baru atau setelah instal ulang, dengan akun Apple yang sama, tombol pemulihan menemukan langganan yang aktif. Masa berlaku habis: di sandbox, langganan berakhir dalam hitungan menit, jadi kamu bisa memastikan aksesnya tertutup.

### Kenapa produk yang terlihat di RevenueCat tetap tidak terlihat oleh pengguna?

Sering kali karena produk itu belum pernah disertakan dalam pengajuan aplikasi. Produk yang dibuat di App Store Connect tapi tidak pernah diajukan di review pertama bersama versi aplikasinya tetap tidak terlihat oleh penggunamu, meskipun RevenueCat sudah melihatnya. Ini kelalaian yang sering terjadi di tahap pembuatan produk.

### Apakah RevenueCat mengambil komisi dari langganan?

RevenueCat mengambil komisi dari pendapatan di atas ambang bulanan tertentu. Komisi ini ditambahkan ke komisi Apple untuk langganan yang dijual di dalam aplikasi. Cek tingkatan terbarunya di situs RevenueCat sebelum menyusun model bisnismu dengan memperhitungkan dua komisi ini.


## Proyekmu

[iOS Kit](https://devoria.fr/id/kits/ios): Bikin aplikasi iPhone dengan Claude Code: starter code aplikasiku, skill yang memeriksa kerjanya, plus Apple Review Kit, App Store Screenshots Kit, dan ASO Kit. 129,99 €.
