Panduan

Terbitkan Permainan di App Store Tanpa Mac: Cara Binaan Awan Kami

Bagaimana kami membawa permainan HTML5 dari PC Windows ke semakan App Store dengan Capacitor, Codemagic dan TestFlight, serta kesilapan yang menyebabkan beberapa binaan kami gagal.

Seni utama templat Sunset Rally di Polar Games Marketplace.

Ya, anda boleh menerbitkan permainan di App Store tanpa Mac. Mac tetap diperlukan, tetapi anda menyewanya: permainan HTML5 dibungkus dengan Capacitor di PC anda, perkhidmatan awan seperti Codemagic mengompil dan menandatanganinya pada mesin Mac mereka sendiri, binaan dihantar ke App Store Connect dan TestFlight, dan anda menyiapkan halaman kedai, butiran privasi dan penghantaran dalam pelayar. Yang tidak boleh dilangkau ialah iPhone, kerana seseorang perlu memainkan binaan itu sebelum Apple.

Kami melakukannya dari Windows dengan permainan aksi kami sendiri, Little Ninja Dash. Binaan awan pertama yang berjaya mengambil masa kira-kira enam minit, dan aplikasi dihantar ke App Review pada 19 Oktober 2026, dengan status Waiting for Review dalam rekod kami. Panduan ini tidak melaporkan keputusan semakan. Fakta tentang Apple dan Codemagic datang daripada halaman rasmi mereka, dibaca pada 30 Oktober 2026. Selebihnya ialah apa yang dicatat dalam nota kami, termasuk bahagian yang tidak menjadi.

Apa yang diperlukan untuk menerbitkan di App Store tanpa Mac

  • Keahlian Apple Developer Program: 99 dolar AS bagi setiap tahun keahlian. Individu dan organisasi boleh mendaftar. Organisasi memerlukan Nombor D-U-N-S dan laman web awam.
  • Akaun Codemagic. Pelan individu percumanya ada 500 minit binaan macOS M2 sebulan dan satu binaan pada satu masa; selepas itu, setiap minit Mac mini M2 berharga US$0.095. Minit percuma untuk pengguna tunggal, bukan untuk pasukan.
  • Repositori Git peribadi yang mengandungi projek anda. Codemagic membina daripada repositori yang anda sambungkan. Dengan templat kami, repositori peribadi adalah wajib: repositori awam bermakna mengedarkan semula kod sumber, yang dilarang oleh lesen.
  • iPhone dengan aplikasi TestFlight, untuk menguji binaan sebenar.
  • Permainan yang berfungsi di luar talian daripada foldernya sendiri, dibungkus dengan Capacitor.

Sejak 28 April 2026, Apple mewajibkan aplikasi yang dimuat naik ke App Store Connect dibina dengan Xcode 26 atau lebih baharu dan SDK iOS 26. Halaman iOS Capacitor juga menyenaraikan Xcode 26.0 atau lebih baharu dan menyokong iOS 15 dan ke atas. Xcode hanya berjalan di macOS, sebab itulah binaan dibuat pada mesin Codemagic dan bukan pada PC anda.

Edisi templat kami ialah permainan pelayar. Setiap halaman edisi menyenaraikan binaan aplikasi natif sebagai tidak termasuk. Satu lesen meliputi satu produk akhir, dan anda boleh menerbitkan permainan itu di mana-mana sahaja, termasuk App Store dan Google Play. Anda tidak boleh menjual semula templat itu sendiri. Jika anda bercadang mengenakan bayaran kepada pemain, melalui aplikasi berbayar atau pembelian dalam aplikasi, tanya kami dahulu.

Lihat templat dan kandungan setiap edisi

Langkah 1: tambah projek iOS di Windows

Jika anda sudah ada projek Capacitor untuk Android, pasang @capacitor/ios dan jalankan npx cap add ios. Ini mencipta folder ios/, walaupun di Windows. Anda tidak boleh membukanya dalam Xcode secara setempat, jadi setiap perubahan pada projek natif ialah suntingan fail yang anda semak dalam binaan awan seterusnya.

  • Ikon: satu PNG 1024 x 1024 tanpa ketelusan.
  • Peranti dan orientasi: permainan kami untuk iPhone sahaja dan landskap sahaja. Menyokong iPad bermakna tangkapan skrin iPad dan lebih banyak susun atur untuk diuji.
  • Penyulitan: bantuan pematuhan eksport Apple menyarankan anda mengemas kini Info.plist aplikasi supaya tidak perlu menjawab soalan penyulitan pada setiap penghantaran. Permainan kami hanya menggunakan HTTPS sistem, jadi kami menetapkan ITSAppUsesNonExemptEncryption kepada false.
  • Fail yang dibungkus sahaja: permainan berada di dalam aplikasi dan tidak pernah memuatkan laman web kami. Garis panduan 4.2 Apple meminta aplikasi yang melangkaui laman web yang dibungkus semula.

Bermula daripada templat? Velvet Pool ialah templat yang kami bungkus dengan Capacitor untuk Google Play, jadi folder permainannya sudah melalui langkah ini di Android. Belum ada templat kami yang melalui semakan App Store.

Lihat Velvet Pool, templat yang sudah kami bungkus dengan Capacitor

Langkah 2: tandatangan tanpa Mac atau Keychain

Tandatangan ialah bahagian yang dahulu memerlukan Mac. Dengan kunci API App Store Connect, Codemagic boleh melakukannya di awan.

  1. Di laman Apple Developer, cipta App ID (bundle identifier) untuk permainan, dengan In-App Purchase jika anda menjual sesuatu di dalamnya.
  2. Dalam App Store Connect, cipta rekod aplikasi dengan bundle ID itu, SKU dan bahasa utama.
  3. Jana kunci API App Store Connect. Dokumentasi Codemagic mengesyorkan kunci khas untuk Codemagic. Tambahkannya dalam tetapan integrasi Codemagic dan jangan sekali-kali letak fail kunci dalam repositori anda.
  4. Biarkan Codemagic menjana sijil pengedaran dan mengambil provisioning profile dengan kunci itu. Ia boleh mengambil sijil yang pernah dijananya dan profil daripada portal Apple Developer.

Apa yang tidak menjadi untuk kami

  • Dua binaan pertama kami gagal kerana belum ada provisioning profile untuk bundle ID itu. Sediakan sijil dan profil sebelum binaan pertama.
  • Profil yang diimport ke Codemagic tanpa nama rujukan tidak berfungsi, dan butangnya gagal tanpa sebarang mesej. Sentiasa isi nama.
  • Persediaan kunci API pertama gagal kerana kami tersalah taip Issuer ID. Salin dan tampal daripada halaman kunci Apple.
  • Nombor binaan mesti sentiasa meningkat. Meminta nombor terakhir daripada Apple gagal semasa muat naik sebelumnya masih diproses, jadi kami beralih kepada nombor yang dijana daripada jam.

Langkah 3: bina di Codemagic dan uji di TestFlight

Resipi binaan berada dalam fail codemagic.yaml dalam repositori. Resipi kami memasang kebergantungan, menyediakan fail permainan, menyegerakkannya ke dalam projek iOS dengan npx cap sync ios, menggunakan profil dan membina IPA pada mesin Mac mini M2. Codemagic kemudian menerbitkan binaan ke App Store Connect. Binaan pertama kami yang berjaya mengambil masa kira-kira enam minit, dan binaan pengeluaran kemudian kurang daripada empat minit.

Satu kejutan: dengan submit_to_testflight ditetapkan kepada false, Codemagic tetap memuat naik binaan ke App Store Connect. Dokumentasi Codemagic menerangkan pilihan itu sebagai pilihan yang diperlukan untuk pengedaran kepada kumpulan beta.

Had TestFlight

  • Penguji dalaman: sehingga 100 pengguna App Store Connect dalam pasukan anda.
  • Penguji luar: sehingga 10,000, selepas binaan pertama anda untuk ujian luar diluluskan oleh App Review.
  • Sesuatu binaan kekal tersedia kepada penguji sehingga 90 hari.

Jemputan penguji dalaman kekal tertangguh sehingga diterima melalui e-mel TestFlight, dan aplikasi tidak muncul dalam TestFlight sebelum itu. Semak folder spam.

Apa yang ditemui iPhone tetapi tidak oleh Windows

  • Fail audio rakaman tidak dimuatkan. Di dalam aplikasi, fetch memulangkan status 0 dengan bait yang betul, dan kod kami menganggapnya ralat. Menerima status 0 untuk fail setempat menyelesaikannya.
  • Butang terpotong dalam landskap berhampiran takuk. Kami menyusun semula skrin keputusan dan menguji setiap sudut.
  • Skrin pembelian yang dikongsi dengan Android masih menyebut Google Play. Di iOS kini ia menyebut App Store.
  • Pembelian ujian dalam TestFlight tidak boleh ditetapkan semula, jadi binaan ujian diberi butang untuk menyerupai keadaan belum membeli. Binaan kedai tidak mempunyai butang itu.

Langkah 4: halaman App Store Connect, privasi dan penarafan umur

Selebihnya berlaku dalam pelayar. Inilah susunan yang berjaya untuk kami.

  1. App Information: sari kata, kategori dan soal selidik penarafan umur. Jawab dengan jujur berdasarkan apa yang benar-benar ditunjukkan dalam permainan.
  2. Pricing and Availability: harga dan negara. Ketersediaan untuk Mac dan Apple Vision Pro dihidupkan secara lalai. Kami mematikannya kerana permainan kami dibuat untuk skrin sentuh.
  3. App Privacy: Apple mewajibkan butiran ini untuk aplikasi baharu dan kemas kini, termasuk amalan rakan kongsi pihak ketiga yang kodnya ada dalam aplikasi, seperti rangkaian iklan dan SDK. URL dasar privasi awam adalah wajib.
  4. Pembelian dalam aplikasi, jika ada: nama, penerangan, tangkapan skrin untuk semakan dan nota untuk penyemak.
  5. Halaman versi: penerangan, kata kunci, URL sokongan dan pemasaran, hak cipta, binaan, nota semakan dan pilihan keluaran. Kami memilih keluaran manual.
  6. Tangkapan skrin, kemudian setiap bahasa tambahan dengan teks dan tangkapannya sendiri.
  • Tangkapan skrin: garis panduan 2.3.3 menyatakan ia patut menunjukkan aplikasi sedang digunakan, bukan sekadar seni tajuk atau skrin pembuka. Tangkapan kami ialah tangkapan sebenar permainan.
  • Nama aplikasi: satu nama yang kami mahukan sudah diambil di App Store. Sediakan nama kedua, atau nama dengan bahagian deskriptif yang pendek.
  • Nota semakan: kami menulis bahawa permainan lengkap di dalam aplikasi, berfungsi di luar talian, tidak memerlukan log masuk, dan di mana butang pembelian serta butang pulihkan pembelian berada.

Baca terma lesen kami sebelum anda menerbitkan templat sebagai aplikasi

Langkah 5: hantar, dan apa yang Apple semak

Semasa menghantar, anda diminta menerbitkan jawapan App Privacy dan mengesahkan ia benar, kemudian menghantar draf penghantaran. Penghantaran kami dibuat pada 19 Oktober 2026 bersama versi aplikasi dan pembelian sekali bayarnya, dan status bertukar kepada Waiting for Review. Jika semakan kembali dengan penolakan, jawapannya melalui Resolution Center, dengan fakta, bukan penghantaran semula secara membuta tuli.

Untuk permainan yang dibuat daripada templat, tiga garis panduan paling penting. 4.2 meminta lebih daripada laman web yang dibungkus semula, jadi simpan permainan di dalam aplikasi. 4.3(a) meminta anda tidak mencipta beberapa bundle ID bagi aplikasi yang sama. 4.3(b) menyatakan Apple tidak mahu aplikasi yang tidak dapat dibezakan daripada apa yang sudah meluas. Reskin perlu mengubah peraturan, kandungan dan antara muka, bukan sekadar grafik.

Apa yang termasuk dalam templat kami, dan bahagian yang boleh kami lakukan untuk anda

Setiap templat disertakan dengan folder permainan yang sedia dihoskan, kod sumber yang mudah dibaca, manual dan sokongan 6 bulan, atau 12 bulan dengan lanjutan. Sokongan meliputi pemasangan dan penggunaan fail yang dibekalkan serta pembetulan kecacatan yang boleh dihasilkan semula. Pembalut iOS, iklan natif, pembelian dalam aplikasi, persediaan binaan awan dan halaman App Store ialah perkhidmatan berasingan.

Jika anda tidak mahu menyediakan tandatangan dan Codemagic sendiri, hantar kepada kami templat, rancangan akaun Apple anda dan tarikh akhir. Kami akan membalas dengan skop, harga dan tempoh sebelum sebarang kerja bermula. Kami tidak menerbitkan senarai harga untuk kerja tempahan.

Minta sebut harga untuk membawa permainan anda ke App Store

Soalan lazim

Bolehkah saya menerbitkan permainan iPhone tanpa memiliki Mac?

Ya. Anda masih memerlukan macOS dan Xcode untuk binaan, tetapi perkhidmatan awan seperti Codemagic menyediakannya. Selebihnya, dari App Store Connect hingga TestFlight, boleh dibuat dalam pelayar dan pada iPhone.

Berapakah kos untuk menerbitkan di App Store?

Apple Developer Program berharga 99 dolar AS bagi setiap tahun keahlian. Pelan individu percuma Codemagic termasuk 500 minit macOS M2 sebulan, dan minit tambahan dicaj mengikut minit. Tambah lesen permainan dan grafik kedai.

Adakah saya perlukan iPhone?

Untuk ujian sebenar, ya. iPhone kami menemui audio yang hilang, butang terpotong dan nama kedai yang salah, yang tidak ditunjukkan oleh binaan Windows dan ujian pelayar.

Adakah Apple akan menerima permainan HTML5 yang dibungkus dalam aplikasi?

Kami tidak boleh menjanjikan keputusan. Garis panduan 4.2 meminta lebih daripada laman web yang dibungkus semula, jadi kami membungkus keseluruhan permainan di dalam aplikasi, menjadikannya berfungsi di luar talian dan memberinya ciri natif. Garis panduan 4.3 juga terpakai kepada reskin.

Adakah templat anda termasuk binaan iOS?

Tidak. Edisi kami ialah permainan pelayar, dan halaman item menyatakan binaan aplikasi natif tidak termasuk. Anda boleh mengikuti cara ini sendiri atau menempahnya daripada kami berdasarkan sebut harga.