Lompat ke konten utama

Mengatur CI/CD untuk Aplikasi Capacitor

Pelajari cara mempercepat rilis aplikasi Anda untuk iOS dan Android menggunakan alur CI/CD, meningkatkan efisiensi dan mengurangi kesalahan.

Martin Donadieu

Martin Donadieu

Spesialis Konten

Mengatur CI/CD untuk Aplikasi Capacitor

Ingin rilis aplikasi yang lebih cepat dan bebas kesalahan untuk iOS dan Android? Alur CI/CD untuk Capacitor Aplikasi otomatis membangun, menguji, dan mendeploy, memotong waktu rilis hingga 70% dan mengurangi kesalahan 60%. Panduan ini mencakup segala yang Anda butuhkan, dari mengatur lingkungan hingga mengotomatisasi pembaruan hidup dengan Capgo.

Poin Utama:

  • Mengapa CI/CD penting untuk Capacitor aplikasi: Meningkatkan kecepatan pembangunan 78% dan mengurangi penolakan toko oleh 60%.
  • Alat-alat penting: Xcode, Android Studio, CocoaPods, dan lain-lain.
  • Konfigurasi Pipa: Otomatisasi tugas seperti npx cap sync, caching dependensi, dan pembangunan spesifik platform.
  • Update Hidup dengan Capgo: Aktifkan update setelah rilis dengan peluncuran fase dan keamanan rollback.

Langkah-Langkah Pengaturan Cepat:

  1. Siapkan lingkungan Anda: Pasang alat-alat yang diperlukan untuk iOS dan Android.
  2. Konfigurasi Proyek Anda: Perbarui capacitor.config.ts dan manajemen variabel lingkungan secara aman.
  3. Pipa Pembangunan: Otomatisasi instalasi dependensi, pembangunan, dan pengujian untuk kedua platform.
  4. Optimalkan kinerja: Gunakan caching, pembangunan paralel, dan alur kerja kondisional.
  5. Tambahkan pembaruan langsung: Integrasi Capgo untuk pembaruan OTA yang aman dengan peluncuran fase.

Dengan CI/CD, aplikasi Capacitor mencapai rilis yang lebih cepat, lebih halus, sambil mengurangi kesalahan dan intervensi manual. Siap untuk mengoptimalisasi alur kerja Anda? Mari kita mulai!

Integrasikan Pipa CI/CD Anda yang Sedia Ada dengan Kemampuan Mobile

Mengatur Lingkungan CI/CD Anda

Setelah Anda memiliki dasar-dasar CI/CD, langkah selanjutnya adalah mengatur lingkungan. Ini adalah inti dari otomatisasi yang dapat diandalkan.

Pengaturan Alat dan Perangkat Lunak

Pastikan Anda telah menginstal alat-alat kunci ini:

Untuk Pengembangan iOS:

  • Xcode 14 atau yang lebih baru
  • Xcode Command Line Tools
  • CocoaPods untuk mengelola dependensi

Untuk Pengembangan Android:

  • Android Studio
  • Android SDK 33 atau di atasnya
  • Java Development Kit (JDK)

Untuk memastikan Xcode Command Line Tools Anda telah terinstal, gunakan:

xcode-select -p

Membuat sebuah Capacitor Project

Capacitor Framework Dokumentasi Website

Project Anda Capacitor memerlukan pengaturan yang tepat untuk alur kerja CI/CD. File ini berada di pusat pengaturan ini: capacitor.config.ts File ini memastikan proyek Anda sesuai dengan persyaratan CI/CD.

const config: CapacitorConfig = {
  appId: 'com.example.app',
  webDir: 'build',
  ios: { 
    scheme: 'MyApp'
  }
}

Pengaturan Variabel Lingkungan

Manajemen kunci dengan aman adalah bagian penting dari menghubungkan pengaturan lingkungan dengan alur kerja CI/CD.

Variabel Utama untuk Didefinisikan:

: Menentukan tahap pengiriman (misalnya

  • BUILD_ENV: Sertifikat tanda tangan Anda __CAPGO_KEEP_0__ production)
  • IOS_SIGNING_IDENTITY: Your code signing certificate
  • ANDROID_KEYSTORE_PATHUntuk pembangunan Android, generate secara dinamis keystore

__CAPGO_KEEP_0__ local.properties file selama proses CI:

echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties

Ketika bekerja dengan iOS build, pastikan platform CI Anda mendukung agent macOS.

Untuk memeriksa apakah lingkungan Anda sudah siap:

node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1

Pengelolaan kunci dan kredensial yang tepat dapat menurunkan kemungkinan penolakan aplikasi di toko aplikasi, seperti yang disebutkan dalam statistik sebelumnya [1].

Membuat Pipa CI/CD Anda

Setelah lingkungan Anda siap, langkah berikutnya adalah mengatur pipa CI/CD untuk aplikasi Capacitorini. Pipa ini harus dapat mengelola dengan efektif baik aset web maupun build platform native.

Pemasangan dan Pembaruan Dependensi

Dalam lingkungan CI/CD, pengelolaan dependensi memerlukan kontrol versi yang ketat. Mulai dengan proses instalasi yang bersih:

npm install --ignore-scripts
npm install @capacitor/cli

Untuk mempercepat proses build, gunakan caching dependensi. Misalnya, Penggunaan Azure DevOps pengguna telah melihat waktu pembangunan meningkat 40-60% dengan setup ini:

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json'
    path: |
      node_modules
      android/.gradle
      ios/Pods

Pengaturan Pembangunan iOS dan Android

Berikut cara mengkonfigurasi pembangunan untuk kedua platform:

Pengaturan Konfigurasi Pembangunan iOS:

steps:
  - task: InstallAppleCertificate@2
    inputs:
      certSecureFile: 'certificate.p12'
      certPwd: $(P12_PASSWORD)
  - script: |
      xcodebuild -workspace ios/App/App.xcworkspace -scheme App -configuration Release -archivePath ios/App/App.xcarchive archive

Pengaturan Konfigurasi Pembangunan Android:

cd android
./gradlew bundleRelease

Langkah-Langkah Pengujian dan Pengembangan

Jalankan pengujian platform secara paralel menggunakan strategi matrix:

test:
  steps:
    - run: npm run test:unit
    - run: npm run test:e2e
    - name: Run Platform Tests
      matrix:
        platform: [ios, android]
      run: npm run test:${{ matrix.platform }}

Untuk pengembangan, atur penanganan artefak spesifik platform:

Platform Jenis Artefak Saluran Distribusi
iOS .ipa App Store Connect
Android .aab Google Play Console

Menggunakan pembangunan parallel dapat secara signifikan mengurangi waktu eksekusi pipeline ketika dikonfigurasi dengan benar.

Setelah pembangunan Anda diverifikasi dan dikemas, Anda siap untuk melanjutkan ke pembaruan hidup dengan Capgo (dibahas di bagian berikutnya).

sbb-itb-f9944d2

Menambahkan Capgo Pembaruan Hidup

Capgo Dashboard Pembaruan Hidup

Integrasi Capgo ke dalam alur kerja Anda meningkatkan proses CI/CD dengan memungkinkan pembaruan setelah rilis. Berikut cara mengaturinya:

Konfigurasi Capgo Pipeline

Pertama, instal Capgo CLI di lingkungan pipeline Anda:

steps:
  - name: Install Capgo CLI
    run: npm install -g @capgo/cli
  - name: Configure Authentication
    env:
      CAPGO_KEY: ${{ secrets.CAPGO_API_KEY }}

Penambahan ini memperluas siklus CI/CD Anda dengan mengintegrasikan manajemen pembaruan ke dalam proses bangun dan pengiriman otomatis Anda. Selanjutnya, termasuk perintah unggah setelah langkah-langkah bangun:

Untuk

- name: Upload Update
  run: |
    capgo upload --api-key $CAPGO_KEY --bundle ./build/app-release.apk
    capgo deploy v${VERSION} --channel production

pembaruan yang aman , atur pengaturan validasi seperti ini:__CAPGO_KEEP_2__

{
  "verification": {
    "checksum": "strict",
    "certificatePinning": true,
    "updateTimeout": 500
  }
}

Capgo Fitur Ringkasan

Fitur Deskripsi
Enkripsi Akhir ke Akhir Mengurangi kesalahan penginstalan secara signifikan.
Penginstalan Berbasis Channel Mengadaptasi pembaruan untuk lingkungan tertentu.
Pembaruan Berfase Menjamin pembaruan didistribusikan secara bertahap.

Pedoman Pembaruan OTA

Perbaiki proses tes Anda dengan mengikuti kunci metrik ini setelah penginstalan:

Strategi Penginstalan Berfase

Gunakan roll-out yang terencana untuk mengontrol bagaimana pembaruan dipindahkan:

- name: Staged Rollout
  run: |
    capgo deploy v1.2.3 --group "beta-users" --rollout 10%
    capgo deploy v1.2.3 --rollout 50%

Pengawasan Update

Perhatikan kinerja ini:

  • Angka penyerapan:: Tujuan adalah 40-60% dalam waktu 24 jam pertama.
  • Sesi tanpa kegagalan:: Pastikan di atas 99,5%.
  • Waktu verifikasi:: Pastikan di bawah 500ms.

Jika kegagalan melebihi tingkat yang dapat diterima, otomatis alihkan ke versi sebelumnya:

- name: Rollback Check
  run: |
    if [ $(capgo stats --version v1.2.3 --metric crashes) -gt 2 ]; then
      capgo rollback --channel production
    fi

Peningkatan Kinerja Pipa

Mengfokuskan pada tiga area utama dapat mengarah pada peningkatan yang dapat dilihat dalam pipa Anda:

Optimasi Kecepatan Pembangunan

Untuk perubahan web saja, menggunakan npx cap sync dapat menghemat waktu dengan melompatkan pembangunan penuh native, mengurangi waktu pembangunan sekitar 40%. Berikut cara Anda dapat menerapkan pembangunan kondisional:

- name: Build Strategy
  run: |
    [ "$WEB_ONLY" = true ] && npx cap sync || (./gradlew assembleRelease && xcodebuild ...)

Menggunakan pendekatan ini memastikan bahwa hanya komponen yang diperlukan saja yang dibangun kembali, mempercepat proses.

Pengaturan Kontrol Versi Otomatis

Mengatur kontrol versi secara otomatis dapat memudahkan alur kerja Anda. Gunakan skrip berikut untuk menetapkan versi dan nomor pembangunan secara dinamis:

- name: Set Version
  run: |
    VERSION=$(node -p "require('./package.json').version")
    BUILD_NUMBER=$GITHUB_RUN_NUMBER
    echo "APP_VERSION=${VERSION}" >> $GITHUB_ENV
    echo "BUILD_ID=${BUILD_NUMBER}" >> $GITHUB_ENV

Selain itu, pengaturan versi semantik yang otomatis juga dapat diatur dengan konfigurasi ini:

{
  "scripts": {
    "version": "standard-version",
    "build:prod": "npm version patch && ionic build --prod"
  }
}

Praktik-praktik ini memberikan kerangka yang solid untuk mengikuti dan meningkatkan kinerja pipa melalui metrik seperti:

  • Waktu pembangunan per tahap
  • Effisiensi cache (rasio ketemu/ketemu)
  • Penggunaan sumber daya puncak

Pengaturan Lingkungan Multi

Manajemen beberapa lingkungan dapat disederhanakan dengan menggunakan konfigurasi spesifik lingkungan.

Lingkungan File Konfigurasi
Pengembangan .env.dev
Pengujian .env.staging
Produksi Gudang aman

Anda dapat mengonfigurasi lingkungan secara dinamis dengan skrip ini:

- name: Configure Environment
  env:
    API_KEY: ${{ secrets.ENV_SPECIFIC_API_KEY }}
    BUNDLE_ID: ${{ parameters.bundleId }}
  run: |
    echo "ENVIRONMENT=${{ parameters.environment }}" >> $GITHUB_ENV
    echo "API_ENDPOINT=${{ parameters.apiUrl }}" >> $GITHUB_ENV

Menggabungkan konfigurasi ini dengan Capgo’s channel-based deployment memungkinkan pembaruan yang tepat dan spesifik lingkungan. Ini memastikan peluncuran yang lebih halus dan kontrol yang lebih baik atas perilaku aplikasi di berbagai lingkungan.

Ringkasan

Peran CI/CD dalam Pengembangan

Menggunakan alur CI/CD untuk aplikasi Capacitor secara signifikan meningkatkan efisiensi alur kerja. Menurut data industri, tim dapat mencapai 50-70% lebih cepat siklus rilis terima kasih pada pembangunan iOS dan Android secara bersamaan [3]. Mengotomatisasi tugas seperti instalasi dependensi dan sinkronisasi platform mengurangi kesalahan penginstalan oleh 40-60% [1][2].

Misalnya, tim yang menggunakan alur kerja Azure DevOps telah mengotomatisasi proses seperti langkah-langkah pembangunan berurutan dan pengemasan Xcode. Mereka juga menggunakan lingkungan parameter yang sama untuk pengembangan dan produksi. Pendekatan ini menghilangkan kebutuhan untuk operasi Gradle dan Xcode CLI manual, sehingga menciptakan artefak yang dapat diandalkan setiap kali.

Perbaikan-perbaikan ini menjadi dasar untuk pengelolaan update yang terstruktur ketika digabungkan dengan Capgo.

Capgo untuk Pengelolaan Update

Capgo bekerja secara halus dengan alur kerja CI/CD untuk menyampaikan update instan sambil tetap memenuhi kebijakan toko aplikasi. Update hanya diinstal setelah melewati pintu uji otomatis yang dibangun ke dalam alur.

Dengan menggabungkan pembangunan otomatis dengan peluncuran fase, tim mencapai hasil yang impresif: Penutupan pengguna sebesar 80% dalam 7 hari dan kemampuan rollback dalam waktu kurang dari satu jam.

Strategi umum melibatkan peluncuran jalur pengiriman parallel. Pembangunan otomatis digunakan untuk pengujian internal, sementara peluncuran fase mengarah ke segmen pengguna. Ini memastikan update yang cepat dan aman, didukung oleh uji otomatis yang ketat [1].

Pertanyaan dan Jawaban

Bagaimana cara membuat sebuah aplikasi Capacitor?

Membangun sebuah aplikasi Capacitor melibatkan beberapa langkah yang sederhana:

  1. Tetapkan Lingkungan: Pasang Node.js dan npm pada sistem Anda. Kemudian, gunakan Ionic CLI untuk memulai sebuah proyek dengan dukungan Capacitor:

    ionic start myApp tabs --capacitor
  2. Tambahkan dukungan platform: Tambahkan platform yang ingin Anda target, seperti iOS atau Android:

    npx cap add ios
    npx cap add android
  3. Sinkronkan web code Anda: Pastikan web code Anda sejalan dengan platform native dengan menjalankan:

    npx cap sync

Langkah sinkronisasi ini sangat penting untuk menjaga konsistensi aplikasi Anda di berbagai platform dan memastikan operasi yang lancar di pipeline CI/CD. Untuk informasi lebih lanjut tentang menetapkan lingkungan, lihat bagian Tools.

Teruskan dari Pengaturan CI/CD untuk Aplikasi Capacitor

Jika Anda menggunakan Pengaturan CI/CD untuk Aplikasi Capacitor untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo Otomatisasi CI/CD untuk alur kerja produk di Capgo Otomatisasi CI/CD, Capgo Pembangunan Nativ untuk alur kerja produk di Capgo Pembangunan Nativ, Capgo Integrasi untuk alur kerja produk di Capgo Integrasi, Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD, dan GitHub Integrasi Aksi untuk detail implementasi di GitHub Integrasi Aksi.

Perbarui hidup untuk aplikasi Capacitor

Ketika bug layer web masih aktif, kirimkan perbaikan melalui Capgo bukan menunggu hari-hari untuk persetujuan toko aplikasi. Pengguna mendapatkan perbarui di latar belakang sementara perubahan native tetap dalam jalur ulasan normal.

Mulai Sekarang

Terbaru dari Blog Kami

Capgo memberikan Anda wawasan terbaik yang Anda butuhkan untuk membuat aplikasi mobile yang benar-benar profesional.