Publish iOS App Tanpa Mac: Panduan Expo dan EAS
Oleh Mehdi Azizi
Diperbarui , 9 mnt
Dari PC Windows, Expo dan EAS meng-compile dan mengirim aplikasi iOS kamu ke Apple. Apa yang bisa tanpa Mac, apa yang sulit, dan kenapa kamu butuh iPhone.
Bisakah publish aplikasi iOS tanpa Mac?
Bisa. Kamu bisa publish aplikasi iOS tanpa Mac kalau kamu membuatnya dengan Expo dan React Native. EAS Build meng-compile aplikasimu di Mac milik Expo, di cloud, lalu EAS Submit mengirimnya ke App Store Connect. Dokumentasi Expo menyebutkannya dengan jelas: EAS Submit berjalan di macOS, Linux, dan Windows, jadi kamu tidak butuh Mac untuk mengirim build iOS.
Tapi kamu tetap butuh tiga hal yang tidak bisa digantikan: akun Apple Developer berbayar, iPhone untuk menguji aplikasimu secara nyata, dan browser untuk mengisi halaman aplikasi di App Store Connect. Sisa panduan ini menjelaskan apa yang bisa dilakukan dari PC Windows, apa yang sulit, dan urutan langkahnya.
Semua aplikasi iOS saya melewati alur ini: Expo, EAS Build, lalu EAS Submit. Solys dan TradaZen masuk App Store dengan cara ini. Saya bekerja di Mac, tapi tidak ada satu pun langkah publikasi yang bergantung padanya: build dilakukan di cloud Expo dan pengiriman ke Apple lewat command line.
Bagaimana Expo dan EAS menggantikan Mac
Untuk memahami apa yang mungkin, kamu perlu tahu kenapa dulu Mac wajib. Aplikasi iOS harus di-compile dengan Xcode, tool milik Apple, yang hanya berjalan di macOS, dalam versi yang cukup baru untuk menghindari penolakan ITMS-90725. Lalu aplikasi harus ditandatangani dengan sertifikat yang terhubung ke akun developer kamu, kemudian dikirim ke App Store Connect.
Expo membagi pekerjaan ini menjadi tiga tool:
- Expo dan React Native: kamu menulis aplikasimu dengan JavaScript atau TypeScript, di komputer apa pun.
- EAS Build: kamu menjalankan perintah dari PC, kodenya dikirim ke Mac milik Expo, yang meng-compile dan menandatangani aplikasi untukmu. Kamu mendapatkan file yang siap diinstal atau dikirim.
- EAS Submit: mengambil build itu dan mengirimnya ke App Store Connect. Setelah diproses Apple, yang misalnya memeriksa ikon (ITMS-90717), build muncul di TestFlight.
Mac tetap ada di alur ini. Hanya saja, bukan Mac milikmu. Kalau kamu ingin tahu kenapa saya merekomendasikan stack ini untuk pemula, baca halaman React Native dan Expo untuk aplikasi mobile.
Apa yang bisa dilakukan dari PC Windows
Menulis kode aplikasi
Seluruh pengembangan bisa dilakukan di Windows tanpa batasan: editor kamu (VS Code, Cursor), Node.js, terminal. Kalau kamu coding dengan bantuan Claude atau ChatGPT, tidak ada yang berubah juga. Soal ini, baca membuat aplikasi iOS dengan AI.
Melihat aplikasimu di iPhone saat coding
Untuk mulai, aplikasi Expo Go yang terinstal di iPhone kamu membaca QR code yang tampil di terminal dan memuat proyekmu. Setiap perubahan muncul di ponsel dalam beberapa detik. Ini ideal untuk layar-layar pertama. Sejak Mei 2026, versi App Store dari Expo Go tetap di SDK 54: buat proyekmu dengan memilih kompatibilitas dengan versi itu, atau gunakan eas go dan TestFlight untuk SDK yang lebih baru.
Expo Go punya batasan: isinya hanya modul native yang disediakan Expo. Begitu aplikasimu memakai library native yang tidak ada di sana, seperti SDK RevenueCat untuk langganan, kamu butuh development build: versi aplikasimu sendiri, di-compile oleh EAS Build, yang kamu instal di iPhone.
Menginstal build di iPhone tanpa lewat App Store
EAS menyediakan distribusi internal. Kamu mendaftarkan iPhone dengan perintah eas device:create, lalu menjalankan build dengan distribusi internal. Kamu akan menerima link instalasi. Apple membatasi metode ini: satu akun bisa mendistribusikan dengan cara ini ke maksimal 100 iPhone per tahun, dan setiap perangkat baru butuh build baru atau tanda tangan baru. Untuk dirimu sendiri dan beberapa orang terdekat, ini lebih dari cukup.
Mengelola sertifikat tanpa Xcode
Signing adalah hal yang paling sering bikin pemula mentok di Mac, sampai muncul error ITMS-90034 saat pengiriman. Dengan EAS, kamu login ke akun Apple dari command line, dan tool-nya bisa membuat sendiri distribution certificate dan provisioning profile. Kamu tidak pernah membuka Keychain Access.
Mengirim aplikasimu ke Apple dan mempublikasikannya
eas submit --platform ios mengirim build kamu ke App Store Connect. Kamu juga bisa menggabungkan dua langkah ini dengan opsi --auto-submit di eas build. Semua sisanya dilakukan di browser: halaman App Store, screenshot, deklarasi privasi, langganan, TestFlight, dan pengiriman untuk review. App Store Connect adalah aplikasi web, dan berjalan dengan sangat baik di Windows.
Apa yang tidak bisa (atau lebih sulit) tanpa Mac
Simulator iOS lokal
Simulator iOS adalah bagian dari Xcode, jadi tidak berjalan di Windows. Dalam praktiknya, ini bukan masalah: iPhone kamu lebih bagus daripada simulator untuk testing. Pada September 2026, Expo mengumumkan simulator iOS di cloud, EAS Simulator, yang saat saya menulis ini masih dalam akses terbatas. Jangan bangun alur kerjamu di atasnya sebelum dibuka untuk semua orang.
Debugging kode native
Kalau crash berasal dari kode native (Swift, Objective-C, library yang salah konfigurasi), tool diagnostik Apple ada di Xcode. Tanpa Mac, kamu bergantung pada log build EAS dan tool seperti Sentry, yang melaporkan crash dari aplikasi yang terinstal. Bisa dilakukan, tapi lebih lambat. Karena itu, untuk aplikasi pertama, sebaiknya tetap pakai library yang kompatibel dengan Expo dan aktif di-maintain, yang juga menghindarkan penolakan ITMS-90338 saat pengiriman.
Menulis extension native secara manual
Widget, notification extension, target native khusus: semua ini bisa dengan Expo berkat config plugin, tapi tanpa Xcode untuk memeriksa proyek yang dihasilkan, setiap error berarti satu build tambahan. Untuk aplikasi pertama, simpan fitur-fitur ini untuk nanti.
Compile secara lokal
Build lokal EAS (opsi --local) tidak didukung di Windows. Jadi di PC, build iOS kamu lewat cloud Expo. Paket gratis EAS mencakup jumlah build terbatas per bulan, dengan antrean: cek ketentuan terbaru di halaman harga Expo sebelum merencanakan seminggu kerja intensif.
Akun Apple Developer: wajib, tanpa pengecualian
Tidak ada trik untuk menghindari ini, bahkan Apple Developer Enterprise Program pun tidak, karena program itu khusus untuk aplikasi internal organisasi besar. Tanpa keanggotaan Apple Developer Program, tidak ada App Store Connect, tidak ada TestFlight, tidak ada distribusi internal, dan tidak bisa mengirim ke App Store. Keanggotaannya seharga 99 $ per tahun, ditagih dalam mata uangmu.
Dua saran sebelum mendaftar:
- Pilih dengan cermat antara akun individu dan organisasi. Di akun individu, namamu yang tampil sebagai penjual di App Store. Di akun organisasi, yang tampil nama badan usahamu, tapi Apple akan meminta nomor D-U-N-S dan verifikasi yang lebih lama.
- Sisihkan beberapa hari. Validasi akun tidak selalu instan. Daftarlah begitu kamu tahu akan publish, bukan sehari sebelum pengiriman.
Kebutuhan nyata akan iPhone untuk testing
Secara teknis, kamu bisa publish aplikasi iOS tanpa pernah memegangnya. Saya sangat tidak menyarankannya, begitu juga Apple: aturan review mereka (guideline 2.1) meminta aplikasi sudah diuji di perangkat, untuk bug dan stabilitas, sebelum dikirim. Pengguna kamu sendiri hanya punya itu: iPhone sungguhan.
Ini yang hanya bisa ditunjukkan oleh iPhone sungguhan:
- Peluncuran pertama yang sebenarnya, tanpa development server: di sinilah crash saat startup bersembunyi.
- In-app purchase di lingkungan testing, untuk memastikan paywall kamu menampilkan harga yang benar dan langganan benar-benar membuka aplikasi.
- Notifikasi, kamera, getaran, izin akses, yang berperilaku berbeda atau tidak berfungsi sama sekali di tempat lain.
- Tata letak yang sebenarnya: notch atau Dynamic Island, home bar, keyboard yang menutupi kolom input.
- Kelancaran, yang sering tertutupi oleh komputer yang bertenaga.
iPhone bekas yang cukup baru sudah cukup, asalkan bisa menjalankan versi iOS yang didukung oleh versi SDK Expo kamu. Dan kalau bisa, pinjam juga iPhone dengan ukuran berbeda: aplikasi yang tampil baik di layar besar bisa terpotong di layar kecil. Persis itulah yang membuat Solys saya ditolak, ceritanya ada di kenapa Apple menolak aplikasi.
Tanpa Mac, bisa. Tanpa iPhone, kamu mengirim ke Apple aplikasi yang belum pernah kamu lihat berjalan.
Langkah-langkahnya, berurutan, dari Windows
- Buat proyekmu dengan
npx create-expo-appdan uji layar-layar pertama dengan Expo Go. - Instal EAS CLI dengan
npm install -g eas-cli, lalueas logindaneas build:configure. - Daftar ke Apple Developer Program begitu proyekmu mulai terbentuk.
- Daftarkan iPhone kamu dengan
eas device:createdan jalankan development build. - Buat halaman aplikasimu di App Store Connect, dengan bundle identifier yang sama seperti di konfigurasi Expo kamu.
- Jalankan production build dengan
eas build --platform ios. - Kirim build itu dengan
eas submit --platform ios, lalu uji di TestFlight. Panduan TestFlight untuk menguji aplikasi menjelaskan langkah ini secara detail. - Isi halaman aplikasi dan kirim untuk review dari browser. Sementara teks promosi bisa diubah nanti tanpa versi baru.
Tiga jebakan sering muncul di tahap ini. Nomor build harus naik di setiap pengiriman: aktifkan auto-increment EAS supaya tidak perlu memikirkannya lagi. Pertanyaan soal enkripsi memblokir setiap build selama belum kamu jawab: kamu bisa mendeklarasikannya sekali untuk selamanya di konfigurasi aplikasi. Dan bundle identifier harus sama di semua tempat, kalau tidak EAS Submit tidak akan menemukan aplikasimu. Untuk langkah selanjutnya, dari halaman aplikasi sampai disetujui, halaman publish aplikasi di App Store membahas setiap tahapnya.
Publish aplikasi pertamamu, tanpa Mac dan tanpa tersesat
Mac bukan lagi hambatan sebenarnya. Hambatan sebenarnya ada di tempat lain: memilih aplikasi yang punya peluang menghasilkan uang, memasang langganan yang berfungsi, menyiapkan berkas yang diterima Apple. Itulah yang dibahas alur empat langkah di iOS Kit, yang bisa kamu ikuti sesuai ritmemu. Untuk berkas review, Apple Review Kit berisi checklist saya sebelum pengiriman dan catatan untuk reviewer. Halaman utama menunjukkan cara membuat aplikasi mobile tanpa mulai dari nol dengan Expo dan Claude Code, pakai Mac atau tidak.
Keputusan akhir untuk mempublikasikan aplikasimu tetap ada di tangan Apple, dan tidak ada kit yang bisa menjaminnya. Yang bisa saya berikan adalah metode yang saya terapkan di aplikasi saya sendiri.
Pertanyaan umum
Bagaimana cara publish aplikasi iOS tanpa Mac?
Dengan Expo dan React Native, Mac milik Expo menggantikan Mac kamu. Kamu coding di komputer apa pun, EAS Build meng-compile dan menandatangani aplikasi di cloud, lalu EAS Submit mengirimnya ke App Store Connect. Kamu juga butuh akun Apple Developer berbayar, browser untuk mengisi halaman aplikasi, dan iPhone untuk menguji aplikasimu secara nyata.
Apa saja langkah untuk publish aplikasi iOS dari Windows?
Buat proyekmu dengan Expo, instal EAS CLI, dan daftar ke Apple Developer Program. Daftarkan iPhone kamu, jalankan development build, lalu buat halaman aplikasi di App Store Connect dengan bundle identifier yang sama seperti di konfigurasi Expo kamu. Setelah itu jalankan production build, kirim dengan EAS Submit dan uji di TestFlight, lalu isi halaman aplikasi dan kirim aplikasinya untuk review dari browser.
Berapa biaya untuk publish aplikasi di App Store?
Keanggotaan Apple Developer Program seharga 99 $ per tahun, ditagih dalam mata uangmu. Keanggotaan ini wajib: tanpanya, tidak ada App Store Connect, TestFlight, distribusi internal, maupun pengiriman ke App Store. Dari sisi Expo, paket gratis EAS mencakup jumlah build terbatas per bulan, dengan antrean: cek ketentuan terbaru di halaman harga Expo.
Apakah perlu iPhone untuk publish aplikasi iOS tanpa Mac?
Secara teknis tidak, tapi saya sangat tidak menyarankannya, begitu juga Apple: aturan review mereka (guideline 2.1) meminta aplikasi sudah diuji di perangkat untuk bug dan stabilitas sebelum dikirim. iPhone bekas yang cukup baru sudah cukup, asalkan bisa menjalankan versi iOS yang didukung oleh versi SDK Expo kamu.
Bagaimana cara menguji aplikasi iOS tanpa Mac?
Instal aplikasi Expo Go di iPhone kamu: aplikasi ini membaca QR code yang tampil di terminal dan memuat proyekmu, dengan setiap perubahan terlihat dalam beberapa detik. Expo Go hanya berisi modul native yang disediakan Expo. Begitu aplikasimu memakai library native yang tidak tersedia, seperti SDK RevenueCat, kamu butuh development build yang di-compile oleh EAS Build. Untuk menguji build final, baca TestFlight untuk menguji aplikasi.
Apa saja batasan pengembangan iOS tanpa Mac?
Kamu tidak bisa memakai simulator iOS secara lokal: simulator adalah bagian dari Xcode, jadi tidak berjalan di Windows. Build lokal EAS (--local) tidak didukung di Windows: build iOS kamu lewat cloud Expo. Debugging kode native dan menulis extension native secara manual tetap bisa, tapi lebih sulit, karena tool Apple ada di Xcode.