Panduan

Rilis aplikasi iOS ke App Store tanpa memiliki Mac

Anda bisa merilis aplikasi iOS tanpa memiliki Mac. Tetapi Anda tidak bisa melakukannya tanpa macOS. Build dan signing aplikasi butuh Xcode. Hampir semua hal lain dilakukan di browser atau di iPhone Anda. Mac sewaan atau CI runner menangani satu langkah yang butuh macOS.

Yang diwajibkan Apple per Oktober 2026

  • Keanggotaan berbayar. Apple Developer Program seharga 99 USD per tahun keanggotaan, menurut halaman pendaftaran Apple. Organisasi nirlaba, sekolah, dan lembaga pemerintah bisa meminta pembebasan biaya.
  • Xcode terbaru. Sejak 28 April 2026, upload harus di-build dengan Xcode 26 atau lebih baru dan iOS 26 SDK. Itu tercantum di halaman upcoming requirements Apple.
  • macOS terbaru. Xcode 26.6 butuh macOS Tahoe 26.2 atau lebih baru, menurut system requirements Xcode dari Apple.

Jadi build terjadi di Mac. Pertanyaannya hanya Mac milik siapa.

Yang bisa Anda lakukan dari Windows atau Linux

  • Mendaftar ke program lewat web atau aplikasi Apple Developer.
  • Membuat record aplikasi di App Store Connect.
  • Membuat API key App Store Connect (langkahnya di bawah).
  • Menambah tester, menulis listing toko, dan mengirim untuk review.
  • Meng-upload build yang sudah jadi. Tool command-line Transporter dari Apple mendukung Windows 11 dan Red Hat Enterprise Linux. Di sistem itu, Transporter butuh AppStoreInfo.plist yang ditulis Xcode saat export. Jadi upload bisa berjalan di PC Anda, tetapi file-nya tetap berasal dari Mac.

Buat API key lebih dulu

API key membuat tool di Mac bisa berkomunikasi dengan Apple. Tidak perlu password atau prompt two-factor. Langkah dari Apple untuk team key:

  • Di App Store Connect, buka Users and Access, lalu Integrations.
  • Pilih App Store Connect API, lalu tab Team Keys.
  • Klik Generate API Key, beri nama, pilih role, lalu generate.
  • Unduh file .p8. Apple hanya mengizinkan unduhan satu kali.

Anda butuh role Admin untuk membuat team key. Catat Key ID dan Issuer ID yang tampil di halaman itu. Jangan simpan file .p8 di repository Anda.

Signing tanpa keychain milik sendiri

Signing butuh distribution certificate dan provisioning profile. Ada dua cara mendapatkannya di Mac yang Anda sewa.

Signing otomatis. xcodebuild menerima API key. Dengan flag allowProvisioningUpdates, menurut teks bantuannya, xcodebuild akan membuat dan memperbarui profile, app ID, dan certificate untuk target yang di-sign otomatis. Apple juga menyediakan distribution certificate yang dikelola di cloud. Apple yang menyimpannya, jadi tidak ada private key di mesin sewaan.

Signing manual. Buat certificate signing request dengan Keychain Access di Mac sewaan. Lalu buat certificate Apple Distribution dan profile App Store di Certificates, Identifiers and Profiles. Hapus isi keychain sebelum Anda mengembalikan Mac itu.

Build dan upload dari Mac cloud

Buat archive aplikasi. Ganti nama, key ID, dan issuer ID dengan milik Anda.

xcodebuild -workspace MyApp.xcworkspace -scheme MyApp \
  -configuration Release -destination 'generic/platform=iOS' \
  -archivePath build/MyApp.xcarchive archive \
  -allowProvisioningUpdates \
  -authenticationKeyPath ~/private_keys/AuthKey_ABC123DEF4.p8 \
  -authenticationKeyID ABC123DEF4 \
  -authenticationKeyIssuerID YOUR-ISSUER-ID

Lalu export. Dengan destination diatur ke upload, export langsung mengirim build ke App Store Connect. Nama method app-store-connect menggantikan nilai app-store yang lama.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>method</key><string>app-store-connect</string>
  <key>destination</key><string>upload</string>
  <key>signingStyle</key><string>automatic</string>
  <key>teamID</key><string>YOURTEAMID</string>
</dict>
</plist>
xcodebuild -exportArchive -archivePath build/MyApp.xcarchive \
  -exportOptionsPlist ExportOptions.plist -exportPath build/export \
  -allowProvisioningUpdates \
  -authenticationKeyPath ~/private_keys/AuthKey_ABC123DEF4.p8 \
  -authenticationKeyID ABC123DEF4 \
  -authenticationKeyIssuerID YOUR-ISSUER-ID

Lebih suka langkah upload terpisah? Atur destination ke export, lalu pakai altool. altool menemukan file key di ~/private_keys berdasarkan ID-nya.

xcrun altool --upload-package build/export/MyApp.ipa \
  --api-key ABC123DEF4 --api-issuer YOUR-ISSUER-ID

Pengguna fastlane bisa melakukan hal yang sama dengan dua action dari dokumentasinya: app_store_connect_api_key memuat key, dan pilot meng-upload ke TestFlight.

Kami mengecek setiap flag di atas dengan output bantuan xcodebuild dan altool di Xcode 26.6. Kami belum menjalankan upload yang di-sign dengan baris-baris persis ini. Setup signing proyek Anda yang menentukan detailnya.

Nomor versi dan nomor build

Apple mencocokkan setiap upload dengan aplikasi Anda lewat bundle ID dan nomor versi. String build mengidentifikasi setiap build, jadi harus unik. Naikkan nomor build untuk setiap upload. Di CI, nomor run adalah sumber yang praktis. Simpan nomor versi untuk yang dilihat pengguna di toko.

TestFlight di iPhone Anda

Apple memproses setiap upload dan mengirim email saat sudah siap. Sisanya terjadi di App Store Connect dan di ponsel. Menurut ringkasan TestFlight dari Apple:

  • Hingga 100 tester internal dari tim App Store Connect Anda.
  • Hingga 10,000 tester eksternal lewat email atau link publik.
  • Build pertama untuk tester eksternal masuk ke App Review.
  • Setiap build bisa diuji hingga 90 hari.

Tester memasang aplikasi TestFlight yang gratis dan menerima undangan. Anda tidak butuh Mac untuk semua ini. Screenshot untuk toko mudah diambil di Simulator pada Mac sewaan.

Siapa yang sebaiknya tidak menyewa Mac untuk ini

Di Expo, EAS Build dan EAS Submit melakukan build dan upload di cloud milik Expo. Jika Anda merilis dua kali setahun, CI runner hosted hanya beberapa sen per build. Baca CI/CD iOS dengan GitHub Actions untuk setup itu. MacRun tidak menyediakan code signing terkelola. Certificate dan key adalah milik Anda.

Mac sewaan cocok jika Anda sering merilis. Juga cocok jika Anda butuh layar Xcode untuk memperbaiki signing secara manual. Paket M6 kami ada di halaman harga.

Pertanyaan yang sering diajukan

Bisakah merilis aplikasi iOS tanpa Mac?

+

Bisa, jika Anda bisa menjangkau macOS di suatu tempat. Build dan signing butuh Xcode di Mac, yang bisa berupa Mac sewaan atau Mac cloud. Pendaftaran, App Store Connect, TestFlight, dan review semuanya bisa dari browser atau iPhone.

Bisakah saya meng-upload .ipa ke App Store Connect dari Windows?

+

Tool command-line Transporter dari Apple mendukung Windows 11 dan Red Hat Enterprise Linux. Di sistem itu, Transporter butuh AppStoreInfo.plist yang di-export Xcode bersama build. Jadi .ipa tetap harus di-build di Mac.

Xcode versi berapa yang dibutuhkan untuk upload di 2026?

+

Sejak 28 April 2026, Apple mewajibkan aplikasi yang di-upload ke App Store Connect di-build dengan Xcode 26 atau lebih baru memakai iOS 26 SDK. Xcode 26.6 berjalan di macOS Tahoe 26.2 atau lebih baru.

Berapa biaya merilis aplikasi di App Store?

+

Apple Developer Program seharga 99 USD per tahun keanggotaan. Pembebasan biaya tersedia untuk organisasi nirlaba, sekolah, dan lembaga pemerintah yang memenuhi syarat. Waktu Mac untuk build adalah biaya tambahan, dari beberapa sen per build di CI hosted sampai sewa bulanan.

Panduan terkait