Terbitkan aplikasi iOS tanpa Mac: panduan Expo dan EAS
Oleh Mehdi Azizi
Dikemas kini pada , 9 min
Dari PC Windows, Expo dan EAS membina dan menghantar aplikasi iOS anda kepada Apple. Apa yang berfungsi tanpa Mac, apa yang sukar, dan kenapa anda perlu iPhone.
Bolehkah anda menerbitkan aplikasi iOS tanpa Mac?
Boleh. Anda boleh menerbitkan aplikasi iOS tanpa Mac jika anda membinanya dengan Expo dan React Native. EAS Build menyusun aplikasi anda pada Mac yang dihoskan oleh Expo, dalam awan, dan EAS Submit kemudian menghantarnya ke App Store Connect. Dokumentasi Expo menyatakannya dengan jelas: EAS Submit berfungsi pada macOS, Linux dan Windows, jadi anda tidak perlukan Mac untuk menghantar build iOS.
Namun, anda perlukan tiga perkara yang tiada gantinya: akaun Apple Developer berbayar, iPhone untuk menguji aplikasi anda secara sebenar, dan pelayar untuk mengisi halaman aplikasi dalam App Store Connect. Selebihnya panduan ini menerangkan apa yang berfungsi dari PC Windows, apa yang menyukarkan, dan urutan langkahnya.
Semua aplikasi iOS saya melalui rantaian ini: Expo, EAS Build, kemudian EAS Submit. Solys dan TradaZen berada di App Store dengan cara ini. Saya bekerja menggunakan Mac, tetapi tiada satu pun langkah penerbitan yang bergantung padanya: build dibuat dalam awan Expo dan penghantaran kepada Apple melalui baris arahan.
Bagaimana Expo dan EAS menggantikan Mac
Untuk faham apa yang mungkin, anda perlu tahu kenapa Mac dulunya wajib. Aplikasi iOS mesti disusun dengan Xcode, alat Apple, yang hanya berjalan pada macOS, dalam versi yang cukup baharu untuk mengelakkan penolakan ITMS-90725. Ia kemudian mesti ditandatangani dengan sijil yang dipautkan kepada akaun pembangun anda, lalu dihantar ke App Store Connect.
Expo membahagikan kerja ini kepada tiga alat:
- Expo dan React Native: anda menulis aplikasi dalam JavaScript atau TypeScript, pada mana-mana komputer.
- EAS Build: anda jalankan arahan dari PC anda, kod dihantar ke Mac milik Expo, yang menyusun dan menandatangani aplikasi untuk anda. Anda menerima fail yang sedia dipasang atau dihantar.
- EAS Submit: ia mengambil build itu dan menghantarnya ke App Store Connect. Selepas diproses oleh Apple, yang menyemak contohnya ikon (ITMS-90717), ia muncul dalam TestFlight.
Mac masih wujud dalam rantaian ini. Cuma, ia bukan lagi milik anda. Jika anda mahu faham kenapa saya mengesyorkan stack ini kepada pemula, baca halaman React Native dan Expo untuk aplikasi mudah alih.
Apa yang boleh dibuat dari PC Windows
Mengekod aplikasi
Semua pembangunan dilakukan pada Windows tanpa sekatan: editor anda (VS Code, Cursor), Node.js, terminal. Jika anda mengekod dengan bantuan Claude atau ChatGPT, tiada apa yang berubah juga. Tentang topik ini, baca cipta aplikasi iOS dengan AI.
Melihat aplikasi anda pada iPhone semasa mengekod
Untuk bermula, aplikasi Expo Go yang dipasang pada iPhone anda membaca kod QR yang dipaparkan dalam terminal dan memuatkan projek anda. Setiap perubahan muncul pada telefon dalam beberapa saat. Ia sesuai untuk skrin pertama. Sejak Mei 2026, versi App Store Expo Go kekal pada SDK 54: cipta projek anda dengan memilih keserasian dengannya, atau gunakan eas go dan TestFlight untuk SDK yang lebih baharu.
Expo Go ada had: ia hanya mengandungi modul natif yang disediakan oleh Expo. Sebaik sahaja aplikasi anda menggunakan pustaka natif yang tiada di dalamnya, seperti SDK RevenueCat untuk langganan, anda perlukan build pembangunan: versi aplikasi anda sendiri, disusun oleh EAS Build, yang anda pasang pada iPhone.
Memasang build pada iPhone tanpa melalui App Store
EAS menawarkan pengedaran dalaman. Anda daftarkan iPhone dengan arahan eas device:create, kemudian jalankan build dengan pengedaran internal. Anda menerima pautan pemasangan. Apple mengehadkan kaedah ini: satu akaun boleh mengedar dengan cara ini kepada paling banyak 100 iPhone setahun, dan setiap peranti baharu memerlukan build baharu atau tandatangan baharu. Untuk anda seorang dan beberapa orang terdekat, ia lebih daripada cukup.
Mengurus sijil tanpa Xcode
Tandatangan ialah perkara yang paling banyak menyekat pemula pada Mac, sehingga ralat ITMS-90034 semasa penghantaran. Dengan EAS, anda log masuk ke akaun Apple dari baris arahan, dan alat itu boleh menjana sendiri sijil pengedaran dan profil peruntukan (provisioning profile). Anda tidak pernah membuka Keychain Access.
Menghantar aplikasi kepada Apple dan menerbitkannya
eas submit --platform ios menghantar build anda ke App Store Connect. Anda juga boleh menggabungkan kedua-dua langkah dengan pilihan --auto-submit pada eas build. Semua yang lain berlaku dalam pelayar: halaman App Store, tangkapan skrin, pengisytiharan privasi, langganan, TestFlight dan penghantaran untuk semakan. App Store Connect ialah aplikasi web, ia berfungsi dengan baik pada Windows.
Apa yang tidak boleh (atau lebih sukar) tanpa Mac
Simulator iOS secara setempat
Simulator iOS ialah sebahagian daripada Xcode, jadi ia tidak berjalan pada Windows. Secara praktikal, ini tidak menjadi masalah: iPhone anda lebih baik daripada simulator untuk menguji. Expo mengumumkan pada September 2026 simulator iOS dalam awan, EAS Simulator, masih dalam akses terhad semasa saya menulis ini. Jangan bina cara kerja anda di atasnya selagi ia belum dibuka kepada semua.
Menyahpepijat kod natif
Jika ranap berpunca daripada kod natif (Swift, Objective-C, pustaka yang salah konfigurasi), alat diagnostik Apple ada dalam Xcode. Tanpa Mac, anda bergantung pada log build EAS dan alat seperti Sentry, yang melaporkan ranap daripada aplikasi yang dipasang. Ia boleh dibuat, tetapi lebih perlahan. Sebab itu, untuk aplikasi pertama, lebih baik kekal dengan pustaka yang serasi dengan Expo dan diselenggara, yang juga mengelakkan penolakan ITMS-90338 semasa penghantaran.
Menulis sambungan natif secara manual
Widget, sambungan notifikasi, sasaran natif khusus: semua ini boleh dibuat dengan Expo melalui plugin konfigurasi, tetapi tanpa Xcode untuk memeriksa projek yang dijana, setiap ralat memakan satu build lagi. Untuk aplikasi pertama, simpan fungsi ini untuk kemudian.
Menyusun secara setempat
Build setempat EAS (pilihan --local) tidak disokong pada Windows. Pada PC, build iOS anda jadi melalui awan Expo. Pelan percuma EAS termasuk bilangan build yang terhad setiap bulan, dengan barisan menunggu: semak syarat semasa di halaman harga Expo sebelum merancang seminggu kerja yang padat.
Akaun Apple Developer: wajib, tanpa pengecualian
Tiada helah yang boleh memintas perkara ini, malah Apple Developer Enterprise Program pun tidak, kerana ia dikhaskan untuk aplikasi dalaman organisasi besar. Tanpa keahlian Apple Developer Program, tiada App Store Connect, tiada TestFlight, tiada pengedaran dalaman, dan tiada penghantaran ke App Store. Keahlian berharga 99 $ setahun, dicaj dalam mata wang anda.
Dua nasihat sebelum anda mendaftar:
- Pilih dengan betul antara akaun individu dan organisasi. Untuk individu, nama anda yang dipaparkan sebagai penjual di App Store. Untuk organisasi, nama syarikat anda yang dipaparkan, tetapi Apple akan meminta nombor D-U-N-S dan pengesahan yang lebih lama.
- Peruntukkan beberapa hari. Pengesahan akaun tidak selalu serta-merta. Daftar sebaik sahaja anda tahu anda akan menerbitkan, bukan sehari sebelum penghantaran.
Keperluan sebenar iPhone untuk menguji
Secara teknikal, anda boleh menerbitkan aplikasi iOS tanpa pernah memegangnya. Saya sangat tidak menggalakkannya, begitu juga Apple: garis panduan semakannya (guideline 2.1) meminta aplikasi diuji pada peranti, untuk pepijat dan kestabilan, sebelum dihantar. Pengguna anda pula hanya akan ada itu: iPhone sebenar.
Inilah yang hanya iPhone sebenar boleh tunjukkan:
- Pelancaran pertama sebenar, tanpa pelayan pembangunan: di situlah tersembunyi ranap semasa permulaan.
- Pembelian dalam aplikasi dalam persekitaran ujian, untuk memastikan paywall anda memaparkan harga yang betul dan langganan benar-benar membuka aplikasi.
- Notifikasi, kamera, getaran, kebenaran, yang berkelakuan berbeza atau langsung tidak berfungsi di tempat lain.
- Susun atur sebenar: takuk atau Dynamic Island, bar utama, papan kekunci yang menutup medan.
- Kelancaran, yang sering disembunyikan oleh komputer berkuasa.
iPhone terpakai yang agak baharu sudah memadai, asalkan ia menjalankan versi iOS yang disokong oleh versi SDK Expo anda. Dan jika boleh, pinjam juga iPhone dengan saiz berbeza: aplikasi yang elok pada skrin besar mungkin terpotong pada skrin kecil. Itulah sebenarnya yang menyebabkan Solys ditolak, seperti yang saya ceritakan dalam kenapa Apple menolak aplikasi.
Tanpa Mac, boleh. Tanpa iPhone, anda menghantar kepada Apple aplikasi yang anda tidak pernah lihat berfungsi.
Langkah-langkah, mengikut urutan, dari Windows
- Cipta projek anda dengan
npx create-expo-appdan uji skrin pertama dengan Expo Go. - Pasang EAS CLI dengan
npm install -g eas-cli, kemudianeas logindaneas build:configure. - Daftar ke Apple Developer Program sebaik sahaja projek anda mula terbentuk.
- Daftarkan iPhone anda dengan
eas device:createdan jalankan build pembangunan. - Cipta halaman aplikasi anda dalam App Store Connect, dengan bundle identifier yang sama seperti dalam konfigurasi Expo anda.
- Jalankan build pengeluaran dengan
eas build --platform ios. - Hantarnya dengan
eas submit --platform ios, kemudian ujinya dalam TestFlight. Panduan TestFlight untuk menguji aplikasi menerangkan langkah ini. - Isi halaman aplikasi dan hantar untuk semakan dari pelayar. Teks promosi pula boleh diubah kemudian tanpa versi baharu.
Tiga perangkap kerap muncul pada peringkat ini. Nombor build mesti bertambah pada setiap penghantaran: aktifkan penambahan automatik EAS supaya anda tidak perlu memikirkannya lagi. Soalan tentang penyulitan menyekat setiap build selagi anda belum menjawabnya: anda boleh mengisytiharkannya sekali untuk selamanya dalam konfigurasi aplikasi. Dan bundle identifier mesti sama di semua tempat, jika tidak EAS Submit tidak akan menemui aplikasi anda. Untuk langkah seterusnya, dari halaman aplikasi hingga kelulusan, halaman terbitkan aplikasi di App Store merangkumi setiap langkah.
Terbitkan aplikasi pertama anda, tanpa Mac dan tanpa tersesat
Mac bukan lagi halangan sebenar. Halangan sebenar ada di tempat lain: memilih aplikasi yang berpeluang menjana pendapatan, memasang langganan yang berfungsi, menyediakan fail yang diterima Apple. Itulah yang diliputi oleh laluan empat langkah iOS Kit, untuk diikuti mengikut rentak anda. Untuk fail semakan, Apple Review Kit menghimpunkan senarai semak saya sebelum penghantaran dan nota untuk penguji. Halaman utama menunjukkan cara mencipta aplikasi mudah alih tanpa bermula dari kosong dengan Expo dan Claude Code, sama ada dengan Mac atau tidak.
Keputusan akhir untuk menerbitkan aplikasi anda tetap di tangan Apple, dan tiada kit yang boleh menjaminnya. Apa yang saya boleh berikan ialah kaedah yang saya gunakan pada aplikasi saya sendiri.
Soalan lazim
Bagaimana menerbitkan aplikasi iOS tanpa Mac?
Dengan Expo dan React Native, Mac yang dihoskan oleh Expo menggantikan Mac anda. Anda mengekod pada mana-mana komputer, EAS Build menyusun dan menandatangani aplikasi dalam awan, kemudian EAS Submit menghantarnya ke App Store Connect. Anda juga perlukan akaun Apple Developer berbayar, pelayar untuk mengisi halaman aplikasi dan iPhone untuk menguji aplikasi anda secara sebenar.
Apakah langkah-langkah untuk menerbitkan aplikasi iOS dari Windows?
Cipta projek anda dengan Expo, pasang EAS CLI dan daftar ke Apple Developer Program. Daftarkan iPhone anda, jalankan build pembangunan, kemudian cipta halaman aplikasi App Store Connect dengan bundle identifier yang sama seperti dalam konfigurasi Expo anda. Seterusnya jalankan build pengeluaran, hantarnya dengan EAS Submit dan ujinya dalam TestFlight, kemudian isi halaman aplikasi dan hantar aplikasi untuk semakan dari pelayar.
Berapakah kos untuk menerbitkan aplikasi di App Store?
Keahlian Apple Developer Program berharga 99 $ setahun, dicaj dalam mata wang anda. Ia wajib: tanpanya, tiada App Store Connect, tiada TestFlight, tiada pengedaran dalaman, dan tiada penghantaran ke App Store. Dari pihak Expo, pelan percuma EAS termasuk bilangan build yang terhad setiap bulan, dengan barisan menunggu: semak syarat semasa di halaman harga Expo.
Adakah iPhone diperlukan untuk menerbitkan aplikasi iOS tanpa Mac?
Secara teknikal tidak, tetapi saya sangat tidak menggalakkannya, begitu juga Apple: garis panduan semakannya (guideline 2.1) meminta aplikasi diuji pada peranti untuk pepijat dan kestabilan sebelum dihantar. iPhone terpakai yang agak baharu sudah memadai, asalkan ia menjalankan versi iOS yang disokong oleh versi SDK Expo anda.
Bagaimana menguji aplikasi iOS tanpa Mac?
Pasang aplikasi Expo Go pada iPhone anda: ia membaca kod QR yang dipaparkan dalam terminal dan memuatkan projek anda, dengan setiap perubahan kelihatan dalam beberapa saat. Expo Go hanya mengandungi modul natif yang disediakan oleh Expo. Sebaik sahaja aplikasi anda menggunakan pustaka natif yang tiada di dalamnya, seperti SDK RevenueCat, anda perlukan build pembangunan yang disusun oleh EAS Build. Untuk menguji build akhir, baca TestFlight untuk menguji aplikasi.
Apakah had pembangunan iOS tanpa Mac?
Anda tidak boleh menggunakan simulator iOS secara setempat: ia sebahagian daripada Xcode, jadi ia tidak berjalan pada Windows. Build setempat EAS (--local) tidak disokong pada Windows: build iOS anda melalui awan Expo. Menyahpepijat kod natif dan menulis sambungan natif secara manual masih boleh dibuat, tetapi lebih sukar, kerana alat Apple ada dalam Xcode.