logo
hero image

CI/CD aplikasi iOS dengan AppCenter

Otomatisasi build dan deployment aplikasi iOS ke Testflight.
31 December 2023 · 7 Minutes

Proses distribusi aplikasi iOS yang kita buat, biasanya memerlukan proses yang cukup panjang, mulai dari melakukan pengujian, code signing, increment build number, melakukan build, menyiapkan screenshot, kemudian yang terakhir kita perlu untuk meng-upload ke Testflight dan AppStore.

Untuk mengatasi hal tersebut, kita bisa menerapkan CI/CD pada project kita.

Apa itu CI/CD ?

CI/CD merupakan singkatan dari Continuous Integration / Continuous Delivery atau Deployment. CI/CD dapat membantu kita dalam membuat otomatisasi proses distribusi aplikasi.

Jadi, ketika kita melakukan perubahan kode pada Git Repository, proses distribusi aplikasi akan berjalan secara otomatis.

Sehingga kita bisa lebih fokus dalam mengembangkan aplikasi daripada menghabiskan waktu untuk melakukan hal-hal yang repetitif seperti distribusi aplikasi.

Manfaat CI/CD

Berikut adalah beberapa manfaat yang akan kita dapatkan apabila kita menerapkan CI/CD:

  1. Lebih hemat waktu

Karena semua proses distribusi aplikasi dilakukan secara otomatis di cloud, maka kita akan punya lebih banyak waktu untuk melakukan hal-hal lain seperti mengembangkan fitur baru atau melakukan bug fixing.

  1. Mempercepat distribusi aplikasi

Proses distribusi aplikasi juga akan menjadi lebih cepat karena tiap kali kita melakukan perubahan kode, maka proses distribusi akan dilakukan secara otomatis tanpa perlu khawatir ada step yang terlewat.

  1. Mendeteksi bug lebih cepat

Jika kita menerapkan Unit Testing pada aplikasi kita, mungkin kita bisa menambahkan proses Testing pada pipeline CI yang kita buat. Sehingga apabila ada bug akan terdeteksi lebih cepat pada saat deployment, dan apabila ada bug maka kita perlu melakukan fixing agar pipeline CI yang kita buat bisa berjalan.

  1. Siapa saja bisa melakukan distribusi aplikasi

Bayangkan jika dalam 1 team, hanya satu orang saja yang mengerti dan mempunyai provisioning profile untuk melakukan deployment. Lalu pada suatu hari seseorang tersebut sedang cuti, dan kebetulan ada kebutuhan untuk mendistribusikan aplikasi. 😅

Nah, dengan menerapkan CI/CD, semua orang dalam team bisa melakukan distribusi dan tidak terlalu bergantung dengan satu atau beberapa orang saja.

  1. Menghindari Human Error

Jika kita melakukan deployment secara manual, ada step-step yang bisa jadi kita terlewat atau melakukan kesalahan, misalnya kita ingin build untuk environment Staging tapi yang kita build malah untuk environment Development, dll.

Tools CI/CD

Ada beberapa tools yang bisa kita gunakan untuk membuat CI/CD. Seperti AppCenter, Fastlane, Codemagic, Jenkins, CircleCI, Travis CI, Github Actions, dll.

Namun pada tutorial kali ini, kita akan menggunakan AppCenter. Alasannya karena AppCenter menyediakan layanan untuk membuat CI/CD secara gratis. 🥳

Selain itu, AppCenter juga menyediakan Graphical User Interface (GUI) untuk melakukan CI/CD, sehingga kita tidak perlu menuliskan script CI.

NOTE: AppCenter gratis selama kita menghabiskan kurang dari 240 menit build time per bulan.

1. Register ke AppCenter

Jika sebelumnya kamu belum pernah melakukan registrasi AppCenter, Silakan buka https://appcenter.ms/create-account dan buatlah akun baru.

2. Add new App

Klik button "Add New" di sebelah kanan, kemudian isi nama aplikasi dan tipe rilis.

Pilih OS "iOS", dan platform "Objective-C / Swift"

Add new AppAdd new App

3. Hubungkan Repository

Jika sudah membuat aplikasi di AppCenter, selanjutnya kita akan menghubungkan ke Repository di mana source code aplikasi tersebut berada.

Silakan klik menu "Build", pilih service git, dan pilih repositorynya.

4. Konfigurasi Build

Pada menu "Build", silakan klik menu "Config"

Build ConfigurationBuild Configuration

Berikut adalah beberapa konfigurasi build yang bisa kita lakukan di AppCenter:

Build Scripts

Build Script digunakan jika kita ingin menjalankan command terkait dengan build project. Contohnya adalah kalau kita menggunakan Cocoapods sebagai Dependency Manager, maka kita perlu menjalankan command pod install terlebih dahulu, nah kita bisa memasukkan command-command tersebut ke dalam Build Scripts.

Kamu bisa mempelajari Build Scripts lebih lanjut di sini: https://learn.microsoft.com/en-us/appcenter/build/custom/scripts

Build Frequency

Di menu ini, kita bisa menentukan apakah kita ingin melakukan build tiap kali kita melakukan perubahan code di git atau kita trigger secara manual.

Auto Increment Build Number

Agar kita tidak perlu menaikkan build number tiap kali ingin build aplikasi, kita bisa mengaktifkan fitur "Automatically increment build number".

Kita juga bisa menentukan formatnya, apakah ingin Build ID (Number) atau Timestamp.

Sign Builds

Agar kita bisa melakukan distribusi ke Testflight atau ke AppStore, kita perlu mengaktifkan "Sign Build".

Setelah diaktifkan kita diminta untuk memberikan 2 file berikut:

  • Provisioning Profile (.mobileprovision)

  • Certificate (.p12)

Sign BuildsSign Builds

Certificate Signing Request (CSR)

Untuk mendapatkan file Certificate (.p12), kita perlu membuat Certificate Signing Request (CSR) terlebih dahulu.

File CSR mempunyai format .certSigningRequest

  • Silakan buka aplikasi "Keychain Access".

  • Pilih menu Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.

    CSRCSR

  • Setelah itu akan muncul dialog "Certificate Assistant", isi "Email Address", Common Name (Key untuk Certificate kita), CA Email Address biarkan kosong, dan "Request is" pilih "Saved to disk".

    Certificate AssistantCertificate Assistant

Certificate

Untuk mendapatkan file Provisioning Profile, kita perlu membuat Certificate terlebih dahulu.

Silakan buka https://developer.apple.com/account kemudian pilih menu "Certificates"

  • Buat Certificate baru. Pada section "Software", pilih "Apple Distribution". klik "Continue".

  • Selanjutnya kita akan diminta untuk memberikan file Certificate Signing Request (CSR). Silakan upload file CSR yang telah kita buat tadi.

  • Terakhir klik "Continue", dan download certificate nya. maka file .cer akan terdownload. Nah, tapi yang dibutuhkan oleh AppCenter adalah file .p12 bukan .cer

  • Untuk mendapatkan file .p12, silakan klik 2x file .cer yang baru saja kita download, maka aplikasi "Keychain Access" akan terbuka. Pilih certificate kita -> klik kanan -> Export. Maka file .p12 akan terdownload.

Provisioning Profile

Untuk membuat file Provisioning Profile (.mobileprovision) Silakan buka https://developer.apple.com/account kemudian klik menu "Profiles"

  • Tambahkan "Profile" baru

  • Pada section "Distribution" pilih "App Store"

  • Pilih "App ID"

  • Pilih certificate yang telah kita buat tadi

  • Masukkan nama provisioning profile, misalnya "DemoAppCenter Distribution"

  • Klik "Generate" -> "Download"

Distribute Builds

Di AppCenter ada 2 metode untuk melakukan distribusi, yaitu Group (Distribution Tools milik AppCenter) dan Store (ke AppStore Connect).

Silakan pilih "Store" dan hubungkan ke akun AppStore Connect kita. Selanjutnya kita akan diminta untuk memberikan API Key dari AppStore Connect.

Silakan upload file .p8 yang telah kita download, masukkan Key Name, Issuer ID, dan Key ID. Kamu bisa melihat ketiga informasi tersebut di sini: https://appstoreconnect.apple.com/access/api

Setelah berhasil, silakan kembali ke menu "Build" pada AppCenter. Lalu di bagian Build Configuration -> Distribute Build -> Store -> Pilih "App Store Connect Users" -> Save.

5. Trigger Build

Sekarang tiap kali kita melakukan perubahan code di repository, secara otomatis AppCenter akan melakukan build dan distribusi aplikasi ke Testflight!

Untuk mengujinya, silakan lakukan perubahan code dan push ke remote repository.

AppCenter BuildAppCenter Build
TestflightTestflight

Troubleshooting

Apabila kamu menemukan error seperti ini:

1error: requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor.
2** ARCHIVE FAILED **
  • Silakan buka projectmu melalui "Xcode"

  • Klik Target -> Signing & Capabilities -> Release -> Uncheck "Automatically manage signing"

  • Pilih Provisioning Profile yang sama dengan yang ada di AppCenter.


Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like & Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏

Baca juga:

iOS Development
CI/CD
AppCenter

Written by :
Alfin Syahruddin
Developer · Stock Trader · Libertarian · Freethinker

Always open to new ideas. 🕊️

Loading...

Related articles

Articles that you might want to read.

hero image
CI/CD aplikasi iOS dengan Xcode Cloud

Otomatisasi build, testing, dan deployment aplikasi iOS ke Testflight & AppStore.

27 January 2024 · 8 Minutes
iOS Development
CI/CD
Xcode Cloud
hero image
CI/CD aplikasi iOS dengan Fastlane dan Github Actions

Otomatisasi build, testing, screenshot, dan deployment aplikasi iOS ke Testflight & AppStore.

24 September 2023 · 9 Minutes
iOS Development
CI/CD
Fastlane
Github Actions
hero image
DocC Tutorial

Dokumentasikan project-mu dengan DocC!

19 March 2023 · 8 Minutes
iOS Development
Swift
DocC
CI/CD
All rights reserved © Alfin Syahruddin · 2019
RSS Feed