TestFlight: cara tes aplikasi iPhone sebelum dikirim ke Apple
Oleh Mehdi Azizi
Diperbarui , 8 mnt
Penguji internal atau eksternal, beta review, link publik, build berlaku 90 hari: TestFlight dijelaskan dengan simpel, plus daftar cek sebelum kirim ke Apple.
Apa itu TestFlight dan apa gunanya?
TestFlight adalah layanan Apple yang memungkinkan kamu memasang aplikasimu di iPhone sungguhan sebelum rilis di App Store. Kamu mengirim build ke App Store Connect, mengundang penguji, lalu mereka memasangnya lewat aplikasi TestFlight, yang gratis di App Store. Ada dua jenis penguji: internal, hingga 100 anggota timmu, tanpa review dari Apple; dan eksternal, hingga 10.000 orang, diundang lewat e-mail atau link publik, setelah beta review untuk build pertamamu. Setiap build bisa dites selama 90 hari.
| Kriteria | Penguji internal | Penguji eksternal |
|---|---|---|
| Jumlah maksimum | 100 | 10.000 |
| Akses ke akunmu | Ya, dengan peran | Tidak |
| Undangan | Ditambahkan ke grup internal | E-mail atau link publik |
| Beta review Apple | Tidak ada | Pada build pertama |
| Untuk siapa | Kamu, partner, orang terdekat | Teman, pengguna pertama |
Untuk memakai TestFlight, kamu butuh akun Apple Developer berbayar: layanan ini tidak bisa diakses dengan akun gratis. Seluruh panduan ini menganggap kamu sudah punya akun tersebut, lewat program standar: program Enterprise Apple tidak memberi akses ke TestFlight.
Di aplikasi-aplikasiku, setiap build yang dikirim lewat EAS Submit melewati TestFlight dan iPhone-ku dulu sebelum dikirim ke review. Di situlah aku menemukan masalah yang tidak kelihatan saat development.
Mengirim build ke TestFlight
Build adalah versi aplikasimu yang sudah dikompilasi dan ditandatangani: kalau tanda tangannya salah, Apple menolaknya saat dikirim dengan ITMS-90034. Agar muncul di TestFlight, kamu harus mengirimnya ke App Store Connect. Dengan Expo, caranya eas build --platform ios lalu eas submit --platform ios, dengan image build yang cukup baru untuk menghindari ITMS-90725. Menurut dokumentasi Expo, build muncul di TestFlight setelah diproses Apple, biasanya dalam 10 sampai 15 menit. Kamu bisa melakukan semua ini dari PC: panduan memublikasikan app iOS tanpa Mac menjelaskan alurnya secara lengkap.
Dua hal kecil sering bikin macet di percobaan pertama:
- Nomor build harus berubah di setiap pengiriman. Apple menolak dua build dengan nomor yang sama untuk satu versi. Dengan EAS, aktifkan penambahan otomatis dan kamu tidak perlu memikirkannya lagi.
- Pertanyaan soal enkripsi. Selama kamu belum menjawab pertanyaan tentang penggunaan enkripsi, build tetap tertahan dengan status Missing Compliance. Kamu bisa menjawabnya setiap kali di App Store Connect, atau mendeklarasikannya sekali untuk selamanya di konfigurasi aplikasimu.
Penguji internal: timmu, tanpa menunggu
Penguji internal adalah pengguna akun App Store Connect-mu yang punya peran tertentu. Apple mengizinkan hingga 100 orang, dan masing-masing bisa memasang aplikasi di beberapa perangkat, hingga 30.
Kelebihan utamanya: tidak ada beta review. Begitu build selesai diproses, tanpa error otomatis seperti ITMS-90717, kamu tambahkan ke grup internal dan build langsung tersedia. Ini grup yang pas untukmu, juga untuk partner atau orang terdekat yang kamu beri akses ke akunmu.
Batasannya: mereka harus ditambahkan sebagai pengguna akun App Store Connect-mu. Tidak cocok untuk orang yang tidak kamu kenal.
Penguji eksternal dan beta review
Penguji eksternal tidak butuh akses apa pun ke akunmu. Kamu bisa mengundang hingga 10.000 orang, lewat e-mail atau link publik. Ini grup yang pas untuk teman, pengguna pertama, atau komunitas.
Sebagai gantinya, Apple memeriksa build sebelum membukanya untuk mereka. Saat kamu menambahkan build pertama dari sebuah versi ke grup eksternal, build itu masuk beta review. Build berikutnya dari versi yang sama belum tentu butuh review lengkap.
Sebelum pengiriman ini, App Store Connect meminta informasi pengujian:
- deskripsi beta, yang memberi tahu penguji apa yang harus mereka perhatikan;
- alamat e-mail untuk masukan;
- kontakmu, agar Apple bisa menghubungimu.
Beta review bukan review App Store. Build yang diterima di TestFlight masih bisa ditolak saat publikasi.
Beta review memeriksa apakah build mematuhi aturan, tapi review final juga melihat halaman produkmu, langgananmu, teks legalmu, dan pengalaman secara keseluruhan. Ingat alasan penolakan yang umum, yang dibahas di kenapa Apple menolak aplikasi.
Mengundang penguji lewat link publik
Link publik adalah cara paling mudah untuk membuat aplikasimu dites oleh orang yang belum kamu kenal. Ini langkah-langkah dari Apple, dengan label antarmuka dalam bahasa Inggris:
- Di App Store Connect, buka aplikasimu lalu tab TestFlight.
- Di bawah External Testing, pilih grup eksternalmu.
- Klik Create Public Link.
- Pilih Open to Anyone untuk membuka link bagi semua orang, atau Filter by Criteria untuk membatasinya ke perangkat dan versi iOS tertentu.
- Kalau mau, tetapkan batas jumlah penguji dengan Set Limit.
Lalu bagikan link-nya di mana saja: pesan, media sosial, e-mail. Orang itu memasang aplikasi TestFlight, membuka link, dan menerima undangan.
Dua hal yang perlu kamu tahu sebelum menyebarkannya secara luas:
- Tetapkan batas. Kalau link-mu menyebar lebih luas dari perkiraan, kamu tetap memegang kendali atas jumlah penguji.
- Penguji lewat link publik bersifat anonim. App Store Connect hanya menampilkan tanggal instalasi, sesi, dan crash mereka. Kalau kamu ingin tahu siapa mengetes apa, lebih baik undang lewat e-mail.
Berapa lama build TestFlight berlaku?
Sebuah build tetap tersedia bagi penguji selama 90 hari. Setelah itu, build kedaluwarsa dan penguji tidak bisa membukanya lagi. Kalau beta-mu berlangsung lebih lama, cukup kirim build baru sebelum tenggatnya.
Dalam praktiknya, kamu akan mengirim build baru jauh lebih sering: di setiap perbaikan penting. Setiap build baru yang ditambahkan ke grup akan ditawarkan ke pengujimu, yang mengambilnya di aplikasi TestFlight.
Mengumpulkan masukan dari penguji
TestFlight punya sistem masukan bawaan: penguji mengambil screenshot di aplikasimu, bisa memberi anotasi, lalu mengirimkannya ke kamu. Kalau aplikasi crash, kamu menerima laporan crash, dan penguji bisa menambahkan konteks. Semuanya ada di App Store Connect.
Ini berguna, tapi tidak cukup untuk memahami crash yang spesifik. Di aplikasi-aplikasiku, aku menambahkan Sentry, yang melaporkan error beserta baris kode penyebabnya, dan PostHog, yang menunjukkan di mana pengguna berhenti. Keduanya berjalan di build TestFlight sama seperti di produksi.
Mengetes langganan di TestFlight
Kalau aplikasimu menjual langganan, TestFlight adalah tempat kamu memastikan langganan itu benar-benar berfungsi. Pembelian di build TestFlight melewati lingkungan pengujian Apple: pengujimu tidak ditagih. Perpanjangan dipercepat: setiap langganan diperpanjang sekali sehari, paling banyak enam kali dalam seminggu, berapa pun durasi aslinya.
Minimal, pastikan harga yang ditampilkan sudah benar, pembelian benar-benar membuka aplikasi, dan tombol restore menemukan kembali langganan setelah instal ulang. Aku memakai RevenueCat untuk mengelola langganan di aplikasi-aplikasiku; seluruh penyiapannya, dari produk App Store Connect sampai paywall, dijelaskan di halaman langganan in-app iOS.
Yang harus kamu tes sebelum mengirim ke Apple
Ini daftar yang aku terapkan sebelum setiap pengiriman ke review. Setiap poin sesuai dengan alasan penolakan atau crash yang bisa dihindari.
Peluncuran pertama
- Hapus aplikasi, instal ulang dari TestFlight, lalu buka. Itulah yang akan dilakukan reviewer.
- Jalani onboarding sampai selesai, tanpa melewatkan apa pun.
- Tolak setiap izin (notifikasi, kamera, lokasi) dan pastikan aplikasi tetap berfungsi.
Soal uang
- Paywall menampilkan harga, durasi, dan link ke syarat penggunaan serta kebijakan privasi.
- Pembelian berfungsi, restore juga.
- Semua produk yang dikonfigurasi terlihat oleh reviewer: guideline 2.1 mensyaratkan pembelian in-app lengkap, terlihat, dan berfungsi.
Kondisi sulit
- Mode pesawat dan jaringan lambat: pesan yang jelas, bukan layar putih.
- iPhone terkecil dan terbesar yang kamu dukung: tidak ada yang terpotong, tidak ada yang tertutup keyboard. Layar yang terpotong di iPhone kecil pernah membuat Solys ditolak.
- Teks panjang, kalau aplikasimu diterjemahkan.
Berkas untuk reviewer
- Kalau aplikasimu butuh login, sediakan akun demo di catatan review, dengan backend-mu dalam keadaan menyala. Guideline 2.1 memintanya secara eksplisit.
- Catatan review yang menjelaskan dalam dua kalimat apa yang dilakukan aplikasi dan di mana fitur utamanya.
Kalau aplikasimu tetap ditolak, halaman aplikasi ditolak Apple menjelaskan cara menanggapinya tanpa kehilangan seminggu. Dan untuk gambaran lengkap publikasi, dari halaman produk sampai rilis, baca memublikasikan aplikasi di App Store.
Lembar uji untuk diisi pada build-mu
Unduh lembar 16 skenario dalam format CSV. Lembar ini memisahkan persiapan, tindakan yang dilakukan, hasil yang diharapkan, dan bukti yang diamati. Impor ke Numbers, Excel, atau Google Sheets, lalu isi versi, perangkat, dan hasil setiap percobaan.
Untuk aplikasi catatan bacaan fiktif, "menyimpan halaman" saja tidak cukup: catat halaman 24, tutup aplikasi sepenuhnya, buka lagi, dan temukan kembali nilainya. Tes yang belum dijalankan tetap berstatus "Belum dites". Kalau aplikasimu tidak punya langganan, tulis "Tidak berlaku" untuk skenario pembelian, beserta alasannya.
Lembar ini titik awal untuk disesuaikan, bukan sertifikasi. Lihat juga catatan App Review dan template gratis lainnya untuk menjelaskan ke reviewer alur yang benar-benar sudah kamu periksa.
Dari TestFlight ke App Store
TestFlight adalah tahap saat aplikasimu jadi nyata: berjalan di iPhone sungguhan, di tangan orang sungguhan. Dalam alur iOS Kit, ini tahap kedua: membangun inti aplikasi dan mengetesnya di iPhone-mu dengan TestFlight, sebelum memasang langganan lalu menyiapkan publikasi.
Setelah TestFlight, tibalah review Apple: Apple Review Kit berisi checklist-ku sebelum pengiriman dan catatan untuk reviewer. Halaman utama menunjukkan empat tahap untuk membuat aplikasi mobile-mu dengan Claude Code.
Tidak ada yang bisa menjamin Apple akan menerima aplikasimu: Apple yang memutuskan.
Pertanyaan umum
Bagaimana cara mengetes app iPhone dengan TestFlight?
Kirim build ke App Store Connect, lalu tambahkan ke grup penguji. Dengan Expo, kamu mengompilasinya dengan EAS Build dan mengirimnya dengan EAS Submit: build muncul di TestFlight setelah diproses Apple, biasanya dalam 10 sampai 15 menit menurut Expo. Pengujimu memasangnya dengan aplikasi TestFlight, yang gratis di App Store. Kamu butuh akun Apple Developer berbayar.
Bagaimana cara membuat link TestFlight untuk mengundang penguji?
Di App Store Connect, buka tab TestFlight aplikasimu, pilih grupmu di bawah External Testing, lalu klik Create Public Link. Pilih Open to Anyone atau Filter by Criteria, lalu tetapkan batas dengan Set Limit. Penguji lewat link publik tetap anonim: kalau kamu ingin tahu siapa mengetes apa, lebih baik undang mereka lewat e-mail.
Apakah beta review TestFlight menggantikan review App Store?
Tidak. Beta review memeriksa apakah build mematuhi aturan, tapi review final juga melihat halaman produkmu, age rating, langganan, teks legal, dan pengalaman secara keseluruhan. Jadi build yang diterima di TestFlight masih bisa ditolak saat publikasi. Hanya penguji eksternal yang memicu beta review, pada build pertama sebuah versi: penguji internal tidak melewati review apa pun.
Berapa banyak penguji yang bisa diundang di TestFlight?
Kamu bisa mengundang hingga 100 penguji internal dan hingga 10.000 penguji eksternal. Penguji internal adalah anggota akun App Store Connect-mu, tanpa beta review, dan masing-masing bisa memasang aplikasi di hingga 30 perangkat. Penguji eksternal diundang lewat e-mail atau link publik, setelah beta review untuk build pertama. Setiap build bisa dites selama 90 hari.
Bisakah mengetes langganan di TestFlight tanpa ditagih?
Bisa, pembelian di build TestFlight melewati lingkungan pengujian Apple: pengujimu tidak ditagih. Perpanjangan dipercepat: setiap langganan diperpanjang sekali sehari, paling banyak enam kali dalam seminggu, berapa pun durasi aslinya. Minimal, periksa harga yang ditampilkan, terbukanya aplikasi setelah pembelian, dan restore setelah instal ulang. Penyiapan lengkapnya dijelaskan di langganan in-app iOS.
Apa yang harus diperiksa di TestFlight sebelum mengirim app ke Apple?
Instal ulang aplikasi dari TestFlight, seperti yang akan dilakukan reviewer, dan jalani onboarding sampai selesai. Tolak setiap izin, tes pembelian dan restore, lalu coba mode pesawat, serta iPhone terkecil dan terbesar yang kamu dukung. Kalau aplikasi butuh login, siapkan akun demo di catatan review, dengan backend-mu dalam keadaan menyala.