
CI/CD iOS Modern dengan Flutter & Xcode Cloud
- Ibrahim Fiqhan
- Dev ops , Pengembangan mobile
- 20 Desember 2025
Daftar Isi
Ada sebuah Mac Mini di bawah meja. Semua rilis melewatinya.
Kalimat itu sudah merangkum seluruh persoalannya, dan jika Anda pernah menangani pengiriman aplikasi iOS, Anda sudah bisa merasakan bentuk kekacauannya: mesin itu butuh pembaruan OS yang merusak Xcode, pembaruan Xcode yang merusak toolchain Flutter, serta sertifikat yang kedaluwarsa mengikuti jadwalnya sendiri tanpa peduli apa yang sedang dikerjakan siapa pun pekan itu.
Deployment web tidak bekerja seperti ini. iOS menuntut code signing, provisioning profile, dan mesin Apple fisik untuk membangunnya. Maka saya memindahkan semuanya ke Xcode Cloud lalu mematikan Mac Mini itu.
Tantangan
Tim kami menghadapi tiga hambatan utama:
- Rumitnya Code Signing: Rotasi sertifikat secara manual kerap membuat pipeline gagal.
- Ketergantungan Hardware: Build dijalankan pada Mac Mini lokal yang menuntut pembaruan OS terus-menerus.
- Integrasi Flutter: Xcode Cloud dirancang untuk Swift/Objective-C, sehingga menjalankan build Flutter memerlukan penyesuaian khusus.
Solusi: Pipeline Cloud-Native
1. Custom Build Script (ci_post_clone.sh)
Karena instance Xcode Cloud bersifat ephemeral, saya menulis Bash script yang langsung dijalankan setelah repository selesai di-clone:
- Mengunduh Flutter SDK versi stable.
- Menjalankan
flutter pub getuntuk memasang dependensi. - Mengeksekusi
flutter build ios --no-codesignguna menghasilkan framework sebelum proses archive.
2. Signing & Infrastruktur Otomatis
Dengan beralih ke Xcode Cloud, kami melepaskan bagian tersulit dari iOS DevOps. Layanan ini mengelola Distribution Certificate secara otomatis sehingga build tidak lagi gagal akibat key yang kedaluwarsa.
Hasil
- Tanpa Pemeliharaan Infrastruktur: Mac Mini on-premise berhasil dinonaktifkan sepenuhnya.
- Tingkat Keberhasilan Build 100%: Signing otomatis menghilangkan kegagalan yang berkaitan dengan sertifikat.
- Distribusi Mulus: Kode yang di-merge ke
developotomatis tersedia di perangkat tester melalui TestFlight.

Siap membangun proyek bersama saya?
Saya siap membantu membangun, mengembangkan, dan meluncurkan proyek Anda berikutnya — kirim pesan sekarang dan ayo kita mulai!
Mulai Sekarang



