Langsung ke konten

Konfigurasi iOS Sandbox Testing

GitHub

Testing in-app purchases di iOS memerlukan konfigurasi yang tepat di App Store Connect dan perangkat pengujian Anda. Panduan ini membahas semua yang Anda butuhkan untuk memulai sandbox testing.

  • Apple Developer Program: Keanggotaan aktif dengan perpanjangan tahunan
  • Perjanjian: Sudah menandatangani “Paid Applications Agreement” dan melengkapi info bank serta pajak
  • Proyek Xcode: Sudah dikonfigurasi dengan bundle identifier dan capabilities yang sesuai
  1. Tanda tangani Paid Applications Agreement

    Di App Store Connect, buka Perjanjian, Pajak, dan Perbankan dan selesaikan:

    • Tanda tangani Paid Applications Agreement
    • Tambahkan informasi perbankan Anda
    • Lengkapi formulir pajak

    Tunggu persetujuan informasi Anda dari Apple (proses ini bisa memakan waktu 24-48 jam).

  2. Buat Sandbox Test User

    Di App Store Connect, buka Pengguna dan Akses > Penguji Sandbox.

    Klik + untuk membuat sandbox tester baru.

    Penting: Gunakan alamat email yang BELUM terhubung dengan Apple ID mana pun. Anda bisa menggunakan alias email:

    • Gmail: youremail+test@gmail.com
    • iCloud: youremail+test@icloud.com

    Buat sandbox tester

  3. Konfigurasi Test Device (iOS 12+)

    Mulai iOS 12, Anda tidak perlu lagi sign out dari akun iTunes untuk mengetes pembelian.

    Pada perangkat iOS Anda:

    1. Buka Pengaturan
    2. Ketuk App Store
    3. Scroll ke bagian bawah
    4. Ketuk Akun Sandbox
    5. Masuk dengan akun sandbox test Anda
  4. Konfigurasi Proyek Xcode

    Pastikan proyek Xcode Anda memiliki:

    Bundle Identifier

    • Harus sesuai dengan identifier di Developer Center Anda
    • Harus sesuai dengan identifier di App Store Connect

    Kemampuan In-App Purchase

    1. Pilih proyek Anda di Xcode
    2. Buka Signing & Capabilities
    3. Klik + Capability
    4. Tambah Pembelian Dalam Aplikasi
  5. Buat Produk In-App Purchase

    Di App Store Connect, buka aplikasi Anda dan buat produk In-App Purchase (langganan, consumables, dll.).

    Produk harus minimal berstatus “Ready to Submit” untuk sandbox testing.

  6. Uji Implementasi Anda

    Build dan jalankan aplikasi di perangkat uji. Saat mencoba melakukan pembelian, Anda akan melihat:

    [Lingkungan: Sandbox]

    Konfirmasi ini menandakan Anda berada di environment sandbox dan tidak akan dikenakan biaya asli.

  • Tidak ada biaya asli: Semua pembelian gratis di mode sandbox
  • Langganan dipercepat: Durasi langganan dipersingkat untuk testing yang lebih cepat
    • Langganan 1 minggu = 3 menit
    • Langganan 1 bulan = 5 menit
    • Langganan 2 bulan = 10 menit
    • Langganan 3 bulan = 15 menit
    • Langganan 6 bulan = 30 menit
    • Langganan 1 tahun = 1 jam
  • Batas perpanjangan otomatis: Langganan diperpanjang otomatis hingga 6 kali di sandbox
  • Pembatalan langsung: Langganan yang dibatalkan langsung kedaluwarsa
  • Buat beberapa akun tes untuk berbagai skenario
  • Gunakan akun tes hanya di perangkat tes
  • Jangan gunakan Apple ID pribadi untuk sandbox testing
  • Akun test dapat membeli produk apa pun tanpa batasan wilayah
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { isBillingSupported } = await NativePurchases.isBillingSupported();
if (!isBillingSupported) {
throw new Error('StoreKit not supported on this device');
}
// Fetch products (automatically uses sandbox when available)
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly'],
productType: PURCHASE_TYPE.SUBS,
});
// Make test purchase
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Test purchase successful!', transaction.transactionId);

Jika sudah dikonfigurasi dengan benar, Anda akan melihat:

  1. Banner Sandbox saat pembelian: “[Environment: Sandbox]”
  2. Produk berhasil dimuat dengan sukses
  3. Pembelian selesai tanpa biaya asli
  4. Resi tervalidasi dengan benar
  5. Langganan diperbarui otomatis (dengan kecepatan dipercepat)

Produk tidak dimuat:

  • Pastikan bundle identifier sesuai dengan App Store Connect
  • Pastikan perjanjian sudah ditandatangani dan disetujui
  • Pastikan status produk minimal “Ready to Submit”
  • Tunggu 2-3 jam setelah membuat produk

“Tidak dapat terhubung ke iTunes Store”:

  • Pastikan akun sandbox sudah dikonfigurasi dengan benar
  • Pastikan perangkat terhubung ke internet
  • Coba sign out lalu sign in kembali ke akun sandbox
  • Restart aplikasi

Pembelian gagal tanpa pesan error:

  • Cek konsol Xcode untuk melihat pesan error
  • Pastikan In-App Purchase capability sudah diaktifkan
  • Pastikan email akun sandbox bukan Apple ID asli
  • Coba buat akun test sandbox baru

Error validasi receipt:

  • Gunakan endpoint validasi receipt sandbox saat testing
  • Endpoint Production: https://buy.itunes.apple.com/verifyReceipt
  • Endpoint Sandbox: https://sandbox.itunes.apple.com/verifyReceipt
  • Plugin native-purchases menanganinya secara otomatis

Durasi langganan salah:

  • Ingat bahwa durasi langganan dipercepat di sandbox
  • Gunakan tabel konversi di atas untuk estimasi durasi
  • Langganan auto-renew maksimal 6 kali di sandbox

“Apple ID ini belum pernah digunakan di iTunes Store”:

  • Ini normal untuk akun sandbox baru
  • Lanjutkan pembelian untuk mengaktifkan akun
  • Hanya terjadi pada penggunaan pertama
  1. Buat beberapa akun tes untuk berbagai skenario tes
  2. Tes semua durasi langganan untuk verifikasi perilaku
  3. Uji pembatalan dan perpanjangan flows
  4. Verifikasi validasi receipt berjalan dengan benar
  5. Tes fitur restore purchases functionality
  6. Cek upgrade/downgrade langganan perilaku
  7. Tes dengan kondisi jaringan buruk
FiturSandboxProduksi
Biaya riilTidakYa
Durasi langgananDipercepatNormal
Batas perpanjangan otomatis6 kaliTanpa batas
Efek pembatalanSegeraAkhir periode
Endpoint receiptURL SandboxURL Produksi
Hanya akun testYaTidak

Untuk detail lebih lanjut, lihat dokumentasi resmi Apple StoreKit tentang pengujian sandbox.

Lanjutkan dari Konfigurasi iOS Sandbox Testing

Bagian berjudul “Lanjutkan dari Konfigurasi iOS Sandbox Testing”

Jika Anda menggunakan Konfigurasi iOS Sandbox Testing untuk merencanakan persetujuan store dan distribusi, hubungkan dengan Menggunakan @capgo/native-purchases untuk kapabilitas native di Menggunakan @capgo/native-purchases, @capgo/capacitor-in-app-review untuk detail implementasi di @capgo/capacitor-in-app-review, Menggunakan @capgo/capacitor-in-app-review untuk kapabilitas native di bagian Menggunakan @capgo/capacitor-in-app-review, @capgo/capacitor-native-market untuk detail implementasi di @capgo/capacitor-native-market, dan Menggunakan @capgo/capacitor-native-market untuk kapabilitas native di Menggunakan @capgo/capacitor-native-market.