RevenueCat: sediakan langganan dalam aplikasi di iOS
Oleh Mehdi Azizi
Dikemas kini pada , 7 min
RevenueCat menghubungkan produk App Store Connect dengan aplikasi anda dan mengurus hak akses. Langkah untuk memasang langganan dalam aplikasi iOS pertama anda.
Kenapa guna RevenueCat dan bukan StoreKit sahaja
StoreKit, framework Apple, membolehkan anda menjual langganan tanpa sebarang perkhidmatan pihak ketiga. Tetapi bagi pemula, menulis sendiri semua logik pembelian, pemulihan dan semakan hak akses bermakna banyak kod yang perlu diselenggara, dengan kes-kes tepi yang mudah terlepas pandang: tukar peranti, tamat tempoh, bayaran balik.
RevenueCat duduk di antara App Store Connect dan aplikasi anda: ia membaca produk anda, mengurus langganan aktif dan menjimatkan anda daripada menulis lapisan ini sendiri. Anda tetap mengawal harga dan tawaran dari papan pemuka, tanpa perlu menerbitkan semula aplikasi setiap kali ada perubahan.
Langkah 1: cipta produk anda dalam App Store Connect
Sebelum RevenueCat, produk mesti wujud di pihak Apple dahulu. Dalam App Store Connect, cipta satu kumpulan langganan, kemudian satu atau beberapa tahap dengan tempohnya, contohnya bulanan atau tahunan, serta harganya mengikut wilayah. Isikan juga teks yang dipaparkan kepada pengguna untuk setiap tahap: Apple memerlukannya sebelum menerima produk dalam semakan.
Satu kesilapan biasa pada peringkat ini: produk dicipta tetapi tidak pernah dihantar bersama versi aplikasi yang berkaitan untuk semakan pertama. Produk yang masih menunggu dan tidak pernah disertakan dalam penghantaran aplikasi kekal tidak kelihatan kepada pengguna anda, walaupun RevenueCat sudah nampak produk itu.
Langkah 2: sambungkan RevenueCat ke aplikasi anda
Dalam RevenueCat, anda cipta satu projek, sambungkan kunci API App Store Connect supaya RevenueCat menyegerakkan produk anda secara automatik, kemudian tetapkan "entitlements", iaitu hak akses. Satu entitlement mewakili apa yang dibuka oleh langganan, contohnya akses penuh kepada aplikasi, tanpa mengira produk tepat yang mencetuskannya.
Lapisan perantara ini berguna: jika anda ubah struktur tawaran kemudian, contohnya dengan menambah tahap tahunan, anda hanya perlu kaitkan produk baharu itu dengan entitlement yang sama, tanpa menyentuh kod yang menyemak akses dalam aplikasi anda.
Di pihak aplikasi, SDK RevenueCat untuk React Native dipasang dalam projek Expo dengan plugin khusus, dan menyediakan fungsi ringkas untuk mengetahui sama ada pengguna semasa mempunyai entitlement yang aktif.
Langkah 3: bina paywall anda
Paywall ialah skrin yang membentangkan tawaran dan mencetuskan pembelian. RevenueCat menawarkan paywall yang boleh dikonfigurasi dari papan pemuka, boleh diubah tanpa menerbitkan semula aplikasi, atau anda boleh bina sendiri dengan SDK jika mahu kawalan penuh ke atas reka bentuk.
Kedudukan sama penting dengan reka bentuk. Paywall yang dipaparkan sebelum pengguna nampak nilai aplikasi biasanya kurang berjaya menukar berbanding paywall yang diletakkan sejurus selepas satu tindakan pertama yang berjaya. Panduan kesilapan paywall iOS untuk pemula menghuraikan perangkap paling biasa pada peringkat ini, melangkaui pemasangan teknikal semata-mata.
Langkah 4: uji pembelian, pemulihan dan tamat tempoh
Inilah langkah yang paling kerap dibuat sambil lewa, sedangkan inilah yang paling disemak oleh Apple. Tiga senario mesti berfungsi sebelum penghantaran:
Pembelian. Dengan akaun penguji sandbox, pembelian mesti membuka entitlement serta-merta, dan aplikasi anda mesti bertindak balas terhadap perubahan ini tanpa perlu dimulakan semula.
Pemulihan. Pada peranti baharu atau selepas pemasangan semula, dengan akaun Apple yang sama, butang "Pulihkan pembelian" mesti menemui semula langganan aktif. Apple sentiasa menyemak aliran ini semasa semakan, dan ketiadaannya atau fungsinya yang rosak ialah sebab penolakan yang biasa di bawah guideline 3.1.1.
Tamat tempoh. Dalam persekitaran sandbox, langganan tamat dalam beberapa minit dan bukan beberapa bulan, jadi anda boleh semak bahawa akses ditutup dengan betul selepas tempoh berakhir, tanpa menunggu kitaran pengebilan sebenar.
Apa yang RevenueCat tidak gantikan
RevenueCat mengurus mekanisme pembelian, bukan pematuhan halaman aplikasi anda atau paywall anda terhadap guideline 3.1.2. Anda masih perlu menerangkan langganan dengan betul dalam penerangan App Store, menyatakan harga tepat dan tempohnya, serta mengisi terma penggunaan anda. Halaman langganan atau pembelian sekali di iOS membantu anda memilih model yang betul sebelum sampai ke langkah teknikal ini.
RevenueCat juga mengambil komisen atas hasil melebihi satu had bulanan tertentu, sebagai tambahan kepada komisen Apple atas langganan yang dijual dalam aplikasi. Semak tahap terkini di laman web mereka sendiri sebelum membina model perniagaan anda di sekitar dua komisen ini.
Kesilapan paling biasa pemula
Terlupa keadaan memuatkan. Semasa aplikasi dilancarkan, RevenueCat perlukan sedikit masa untuk mendapatkan hak akses pengguna. Jika aplikasi anda memaparkan kandungan berbayar secara lalai sebelum jawapan ini tiba, pengguna tanpa langganan mungkin nampak, walaupun sekejap, kandungan yang belum dibayarnya. Sediakan keadaan memuatkan yang jelas dan bukan paparan lalai yang terlalu optimistik.
Menyemak hak akses di tempat yang salah. Entitlement aktif perlu disemak semula setiap kali skrin berbayar dibuka, bukan sekali sahaja semasa permulaan. Jika pengguna membatalkan langganan atau langganannya tamat semasa dia menggunakan aplikasi, skrin seterusnya mesti mencerminkan perubahan itu.
Mengelirukan persekitaran sandbox dengan production. ID produk dan akaun penguji sandbox berasingan daripada production. Ujian yang berjaya dalam sandbox dengan akaun Apple yang salah, atau produk yang hanya dicipta dalam production, boleh memberi gambaran palsu bahawa semuanya sudah sedia.
Aplikasi yang disemak, bukan sekadar aplikasi yang boleh dikompil
Langganan yang "berfungsi" dalam ujian pantas pada akaun anda sendiri tidak menjamin ia akan bertahan apabila dipulihkan pada peranti lain atau apabila tamat tempoh sebenar. Itulah tepat yang disemak oleh reviewer Apple. Halaman langganan dalam aplikasi iOS menghuraikan keseluruhan rantaian ini, daripada penciptaan produk hinggalah semakan akhir.
Jika anda mahu bermula daripada asas di mana paywall dan langganan sudah ada dalam kod, itulah yang terkandung dalam kod permulaan iOS Kit. Untuk menyemak langganan anda seperti yang akan dibuat oleh reviewer, Apple Review Kit menghimpunkan senarai semak saya sebelum penghantaran dan nota untuk ditinggalkan kepada penguji bagi pembelian dalam aplikasi.
Soalan lazim
Bagaimana untuk sediakan langganan RevenueCat di iOS?
Dalam empat langkah. Mula-mula cipta produk anda dalam App Store Connect. Kemudian sambungkan RevenueCat dengan kunci API App Store Connect anda dan tetapkan entitlements (hak akses), lalu bina paywall. Akhir sekali, uji pembelian, pemulihan dan tamat tempoh: langkah ini sering dibuat sambil lewa, sedangkan Apple menyemaknya.
Adakah RevenueCat wajib untuk menjual langganan di iOS?
Tidak. StoreKit, framework Apple, membolehkan anda menjual langganan tanpa perkhidmatan pihak ketiga. Tetapi anda perlu menulis sendiri semua logik pembelian, pemulihan dan semakan hak akses, dengan kes-kes tepi yang mudah terlepas pandang: tukar peranti, tamat tempoh, bayaran balik. RevenueCat duduk di antara App Store Connect dan aplikasi anda supaya anda tidak perlu menulis lapisan ini.
Apakah entitlement dalam RevenueCat?
Entitlement ialah hak akses: ia mewakili apa yang dibuka oleh langganan, contohnya akses penuh kepada aplikasi, tanpa mengira produk tepat yang mencetuskannya. Jika kemudian anda tambah tahap tahunan, anda hanya kaitkan produk baharu itu dengan entitlement yang sama. Kod yang menyemak akses dalam aplikasi anda tidak perlu diubah.
Bagaimana untuk menguji langganan RevenueCat sebelum menghantar kepada Apple?
Tiga senario mesti berfungsi sebelum penghantaran. Pembelian: dengan akaun penguji sandbox, akses dibuka serta-merta, tanpa memulakan semula aplikasi. Pemulihan: pada peranti baharu atau selepas pemasangan semula, dengan akaun Apple yang sama, butang pemulihan menemui semula langganan aktif. Tamat tempoh: dalam sandbox, langganan tamat dalam beberapa minit, jadi anda boleh semak bahawa akses ditutup.
Kenapa produk yang kelihatan dalam RevenueCat masih tidak kelihatan kepada pengguna?
Selalunya kerana produk itu tidak pernah disertakan dalam penghantaran aplikasi. Produk yang dicipta dalam App Store Connect tetapi tidak pernah dihantar untuk semakan pertama bersama versi berkaitannya kekal tidak kelihatan kepada pengguna anda, walaupun RevenueCat sudah nampak produk itu. Ini kesilapan biasa semasa langkah penciptaan produk.
Adakah RevenueCat mengambil komisen atas langganan?
RevenueCat mengambil komisen atas hasil melebihi satu had bulanan tertentu. Komisen ini ditambah kepada komisen Apple atas langganan yang dijual dalam aplikasi. Semak tahap terkini di laman web RevenueCat sebelum membina model perniagaan anda di sekitar dua komisen ini.