Belajar Swift - Deployment & App Distribution
Episode 20 of 23

Belajar Swift - Deployment & App Distribution

Episode ini membahas distribusi aplikasi: upload aplikasi iOS ke App Store, beta testing dengan TestFlight, deployment untuk macOS, watchOS, dan tvOS, serta proses code signing, notarization, dan release management yang benar dari archive hingga produksi.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Semua kerja keras kalian bermuara di sini: aplikasi sampai ke tangan pengguna. Episode 20 membahas deployment dan app distribution — dari archive, beta testing dengan TestFlight, sampai upload ke App Store dan distribusi ke macOS, watchOS, serta tvOS.

Distribusi yang rapi bukan hanya soal menekan tombol Upload. Di baliknya ada code signing yang benar, notarization untuk keamanan pengguna, dan release management yang membuat rollback dan rilis bertahap menjadi mudah.

Archive dan Export

Membuat Archive

Artefak distribusi dibuat lewat archive (episode 18). Sebelum archive, pastikan nomor versi dan build number diperbarui — keduanya harus naik setiap rilis:

Archive untuk distribusi
xcodebuild archive \
  -scheme Aplikasi \
  -archivePath ./build/Aplikasi.xcarchive \
  -configuration Release \
  -allowProvisioningUpdates

xcodebuild archive ... -allowProvisioningUpdates menghasilkan .xcarchive yang berisi app beserta metadata dan symbol. Archive ini menjadi titik awal seluruh alur distribusi — App Store, TestFlight, atau ad-hoc.

Export dan Upload

Dari archive, aplikasi di-export ke format distribusi lalu diupload:

Export dan upload IPA
xcodebuild -exportArchive \
  -archivePath ./build/Aplikasi.xcarchive \
  -exportPath ./export \
  -exportOptionsPlist exportOptions.plist

xcodebuild -exportArchive -exportOptionsPlist ... mengubah archive menjadi .ipa sesuai pilihan di exportOptions.plist — misalnya uploadBitcode dan method bernilai app-store. Upload ke App Store Connect dilakukan lewat Xcode Organizer atau Fastlane.

TestFlight dan Beta Testing

Menyebarkan Build Beta

TestFlight adalah layanan beta testing Apple. Build yang sudah di-upload bisa disebarkan ke tester eksternal maupun internal:

  • Internal testing: hingga 100 anggota tim, langsung aktif tanpa review.
  • External testing: hingga 10.000 tester, perlu review beta Apple dan mengikuti App Store Review Guidelines.

Build TestFlight juga menyediakan data crash dan feedback dari tester. Gunakan fase ini untuk validasi di perangkat nyata sebelum rilis umum.

Otomasi Upload ke TestFlight

Fastlane menyederhanakan langkah ini — episode 18 memperkenalkan lane beta:

Upload otomatis ke TestFlight
bundle exec fastlane beta

bundle exec fastlane beta menjalankan lane yang membangun, menandatangani, dan mengunggah build ke TestFlight. Otomasi ini membuat setiap commit di branch tertentu menghasilkan build beta baru tanpa campur tangan manual.

Deployment ke Seluruh Platform

macOS dan Notarization

Untuk aplikasi macOS, Apple mewajibkan notarization: app harus diperiksa Apple sebelum dijalankan pengguna di luar App Store. Prosesnya dijalankan dengan notarytool:

Notarize aplikasi macOS
xcrun notarytool submit Aplikasi.dmg \
  --keychain-profile "notary-profile" \
  --wait

xcrun notarytool submit Aplikasi.dmg --wait mengirim app untuk pemeriksaan keamanan otomatis Apple dan menunggu hasilnya. Setelah disetujui, stapler menempelkan tanda terima sehingga app berjalan tanpa peringatan "app tak dikenal".

watchOS dan tvOS

Deployment ke watchOS dan tvOS mengikuti jalur yang sama — App Store Connect menerima build untuk ketiga platform, dengan perbedaan:

  • watchOS: watch app dibundel di dalam iOS app sebagai companion.
  • tvOS: app TV memakai target dan provisioning profile terpisah.
  • Keduanya melalui App Store, TestFlight, dan App Store Review yang sama.

Rancang pipeline yang menangani beberapa target sekaligus sejak awal — misalnya satu lane Fastlane per platform, atau satu lane dengan parameter.

Release Management

Strategi Rilis

Praktik release yang sehat mencakup:

  • Versioning konsisten: naikkan versi sesuai skema yang disepakati.
  • Changelog terpelihara: catat setiap perubahan untuk pengguna.
  • Rilis bertahap: gunakan phased release di App Store Connect untuk memantau masalah sebelum rilis penuh.
  • Rollback plan: dokumentasikan langkah mundur jika regresi muncul di produksi.

App Store Review

Setiap build yang dikirim ke App Store melewati review. Untuk memperlancar:

  • Sertakan informasi review: akun demo, alur yang perlu diuji.
  • Patuhi App Store Review Guidelines.
  • Jelaskan fitur yang mungkin memicu pertanyaan reviewer.

Warning

Gunakan rilis bertahap (phased release) untuk build baru. Jika crash atau komplain muncul di gelombang pertama, kalian bisa menangguhkan rilis sebelum dampak meluas — kontrol yang tidak dimiliki rilis serentak.

Penutup

Inti yang harus dibawa pulang:

  • Archive menghasilkan artefak yang menjadi sumber semua jalur distribusi.
  • TestFlight memungkinkan beta testing internal dan eksternal sebelum rilis.
  • macOS membutuhkan notarization untuk dijalankan di luar App Store.
  • watchOS dan tvOS melewati jalur distribusi yang sama dengan iOS.
  • Naikkan versi dan build number setiap rilis, dan jaga changelog.
  • Rilis bertahap dan rollback plan melindungi pengguna saat rilis.

Di episode 21 selanjutnya kita akan membahas observability dan production support — crash reporting dan analytics di aplikasi Swift, logging, telemetry, dan performance monitoring, health checks dan feedback loop pengguna, serta incident response dan release rollback. Aplikasi kalian akan terlihat jelas di produksi!

Belajar Swift - Deployment & App Distribution | Belajar Swift