Mengatur CI/CD untuk Capacitor aplikasi dapat kompleks dan memakan waktu. Berikut ini yang perlu Anda ketahui:
Dianjurkan untuk Pembangunan Baru: Gunakan Capgo Build
Sekarang kami merekomendasikan menggunakan Capgo Build dengan Capgo CLI untuk pembangunan Capacitor native. Panduan Fastlane ini dipertahankan untuk tim yang memelihara pipeline aksi GitHub yang sudah ada, tetapi pembangunan Android baru seharusnya menggunakan Capgo CLI sehingga Anda tidak perlu memelihara Fastlane, runner Gradle, keystore, dan skrip unggah sendiri.
Prasyarat
Sebelum memulai, Anda perlu mengatur:
- Akun GitHub dengan akses admin
- Aplikasi Anda sudah dipublikasikan di Google Play Store dengan tanda tangan yang tepat
- Kunci dan file keystore Android
- Project Google Cloud Console dengan API Play Store diaktifkan
- Akun layanan dengan izin yang tepat
- Pengertian tentang GitHub Actions workflows
- Pengetahuan tentang konfigurasi Fastlane
- Waktu untuk memelihara dan memperbaiki pipeline
Capgo Build untuk CI/CD oleh Capgo
Lepaskan perawatan Fastlane, runner Gradle, keystore, dan skrip unggah. Capgo Build menghasilkan build Android native yang ditandatangani dari pipeline CI/CD yang ada:
- Bekerja dengan pipeline Anda: Aktifkan Capgo Pembangunan dari GitHub Aksi, GitLab CI, Jenkins, atau skrip lokal setelah pembangunan web Anda dan
npx cap sync. - Membuat Tanda dari Rahasia CI: Simpan keystore Android, alias kunci, kata sandi, dan JSON akun layanan Play Console di rahasia CI Anda sendiri.
- Tidak perlu menjaga runner asli: Pembangunan Capgo menyediakan lingkungan pembangunan Android yang dipelihara, sehingga Anda tidak perlu mengelola SDK gambar, masalah cache Gradle, atau jalur Fastlane.
- Arsip dan pengiriman: Unduh arsip yang ditandatangani untuk QA atau kirimkan rilis yang dibangun melalui Capgo CLI.
Pricing
- Rencana Capgo mulai dari $12/bulan
- Termasuk pembaruan OTA dan sekitar 15 pembangunan asli per bulan
- Menit pembangunan tambahan dikenakan biaya per menit melalui kredit
Atur Capgo Pembangunan di CI/CD
Petunjuk Pengaturan Manual
Berikut adalah langkah-langkah yang perlu Anda lakukan:
GitHub Aksi Harga

GitHub Aksi menawarkan menit gratis berdasarkan jenis repositori Anda:
- Repositori publik: 2.000 menit/bulan
- Repositori privat: 2.000 menit/bulan (pengguna Linux)
Untuk proyek pribadi, biaya sekitar $0,008/menit. Pembangunan biasanya memakan waktu 3-5 menit.
Langkah-Langkah Pengaturan Manual
- Buat Keystore Android
- Atur Akun Layanan Google Play
- Set up Fastlane
- Konfigurasi rahasia GitHub
- Buat GitHub workflow tindakan
1. Buat Keystore Android
Sebelum Anda dapat menandatangani dan menerbitkan aplikasi Android Anda, Anda perlu membuat file keystore. Ini adalah pengaturan satu kali.
Generate Keystore dengan keytool
Jalankan perintah ini di terminal Anda:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
Anda akan diminta:
- Sandi Keystore: Pilih kata sandi yang kuat (anda akan membutuhkannya sebagai
KEYSTORE_STORE_PASSWORD) - Sandi Kunci: Pilih kata sandi yang kuat (anda akan membutuhkannya sebagai
KEYSTORE_KEY_PASSWORD) - Nama Anda, organisasi, dll.: Isi detail Anda
Catatan Penting
-
Simpan nilai-nilai ini dengan aman:
- Lokasi file keystore (misalnya,
my-release-key.keystore) - Alias kunci (misalnya,
my-key-alias) - Anda akan membutuhkannya sebagaiKEYSTORE_KEY_ALIAS - Kata sandi keystore - Anda akan membutuhkannya sebagai
KEYSTORE_STORE_PASSWORD - Kata sandi kunci - Anda akan membutuhkannya sebagai
KEYSTORE_KEY_PASSWORD
- Lokasi file keystore (misalnya,
-
Backup file keystore: Jika Anda kehilangkannya, Anda tidak dapat memperbarui aplikasi Anda yang telah dipublikasikan
-
Jagalah rahasia: Tidak pernah mengirim file keystore ke git
-
Simpanlah dengan aman: Simpan beberapa salinan di lokasi yang aman
Alternatif: Gunakan Keystore yang Ada
Jika Anda sudah menerbitkan aplikasi, Anda harus menggunakan keystore yang sama yang digunakan awalnya. Anda bisa menemukannya:
- Di mesin lokal Anda di mana Anda pertama kali membangun aplikasi
- Di Console Play Anda → Pengaturan → Tanda tangan aplikasi (jika menggunakan Tanda tangan Aplikasi Google Play)
2. Atur Akun Layanan Google
Untuk memungkinkan GitHub Actions mengunggah build ke Google Play, Anda membutuhkan akun layanan.
Langkah 2.1: Buat Project Google Cloud
- Pergi ke Google Cloud Console
- Buat proyek baru atau pilih yang sudah ada
- Perhatikan ID proyek
Langkah 2.2: Aktifkan Pengembang Google Play API
- Di Console Cloud Google, pergi ke APIs & Services → Library
- Cari “Pengembang Android Google Play API”
- Klik Aktifkan
Langkah 2.3: Buat Akun Layanan
- Pergi ke IAM & Admin → Akun Layanan
- Klik Buat Akun Layanan
- Masukkan detail:
- Nama:
github-actions-uploader - Deskripsi: “Akun layanan untuk GitHub Aksi untuk mengunggah build”
- Nama:
- Klik Buat dan Lanjutkan
- Lewati pengaturan peran untuk sekarang (klik Lanjutkan, kemudian Selesai)
Langkah 2.4: Buat Kunci Akun Layanan
- Klik pada akun layanan baru yang telah dibuat
- Pergi ke Tab Kunci
- Tombol Tambah Kunci → Buat kunci baru
- Pilih Format JSON Tombol
- Klik Membuat
- Akan mengunduh file JSON - Simpan hal ini dengan aman, Anda akan membutuhkannya nanti
Langkah 2.5: Berikan Akses di Play Console
- Pergi ke Console Play Google
- Pergi ke Pengaturan → API akses
- Di bawah Akun LayananKlik disini Berikan akses untuk akun layanan Anda
- Di tab Izin aplikasi tambahkan aplikasi Anda
- Di tab Izin akun berikan izin-izin ini:
- Lihat informasi aplikasi dan download laporan bulk (hanya baca)
- Buat, edit, dan hapus aplikasi draft
- Rilis aplikasi ke jalur pengujian
- Rilis aplikasi ke produksi, kecuali, dan lainnya track
- Klik Undang pengguna
- Klik Kirim undangan
Langkah 2.6: Verifikasi Kunci JSON
File JSON yang diunduh harus terlihat seperti ini:
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "...",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "github-actions-uploader@your-project-id.iam.gserviceaccount.com",
"client_id": "...",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "..."
}
Anda akan mengonversinya ke base64 di langkah pengaturan rahasia GitHub.
3. Atur Fastlane
Buat sebuah fastlane folder di root proyek dan tambahkan sebuah Fastfile dengan konten ini:
default_platform(:android)
KEYSTORE_KEY_ALIAS = ENV["KEYSTORE_KEY_ALIAS"]
KEYSTORE_KEY_PASSWORD = ENV["KEYSTORE_KEY_PASSWORD"]
KEYSTORE_STORE_PASSWORD = ENV["KEYSTORE_STORE_PASSWORD"]
platform :android do
desc "Deploy a beta version to the Google Play"
private_lane :verify_changelog_exists do |version_code: |
changelog_path = "android/metadata/en-US/changelogs/#{version_code}.txt"
UI.user_error!("Missing changelog file at #{changelog_path}") unless File.exist?(changelog_path)
UI.message("Changelog exists for version code #{version_code}")
end
private_lane :verify_upload_to_staging do |version_name: |
UI.message "Skipping staging verification step"
end
lane :beta do
keystore_path = "#{Dir.tmpdir}/build_keystore.keystore"
File.write(keystore_path, Base64.decode64(ENV['ANDROID_KEYSTORE_FILE']))
json_key_data = Base64.decode64(ENV['PLAY_CONFIG_JSON'])
# Get previous build number and increment
previous_build_number = google_play_track_version_codes(
package_name: ENV['DEVELOPER_PACKAGE_NAME'],
track: "internal",
json_key_data: json_key_data,
)[0]
current_build_number = previous_build_number + 1
sh("export NEW_BUILD_NUMBER=#{current_build_number}")
# Build the app
gradle(
task: "clean bundleRelease",
project_dir: 'android/',
print_command: false,
properties: {
"android.injected.signing.store.file" => "#{keystore_path}",
"android.injected.signing.store.password" => "#{KEYSTORE_STORE_PASSWORD}",
"android.injected.signing.key.alias" => "#{KEYSTORE_KEY_ALIAS}",
"android.injected.signing.key.password" => "#{KEYSTORE_KEY_PASSWORD}",
'versionCode' => current_build_number
})
# Upload to Play Store
upload_to_play_store(
package_name: ENV['DEVELOPER_PACKAGE_NAME'],
json_key_data: json_key_data,
track: 'internal',
release_status: 'completed',
skip_upload_metadata: true,
skip_upload_changelogs: true,
skip_upload_images: true,
skip_upload_screenshots: true,
)
end
end
4. Konfigurasi Rahasia GitHub
Sekarang Anda telah memiliki keystore dan akun layanan JSON, Anda perlu menyimpannya secara aman di GitHub.
Langkah 4.1: Akses Rahasia GitHub
- Buka repositori Anda di GitHub
- Klik Pengaturan → Rahasia dan variabel → Aksi
- Klik Buat rahasia repositori baru
Langkah 4.2: Tambahkan Rahasia yang Diperlukan
Tambahkan setiap rahasia satu per satu:
Konfigurasi Bermain
- Ambil file JSON akun layanan yang Anda download di Langkah 2.4
- Konversi ke base64:
Pada macOS/Linux:
base64 service_account_key.json | pbcopy
Pada Windows (PowerShell):
[Convert]::ToBase64String([IO.File]::ReadAllBytes("service_account_key.json")) | Set-Clipboard
- Buat rahasia baru bernama
PLAY_CONFIG_JSONdan tempelkan string base64
BERkas KEYS STORE ANDROID
- Konversi keystore Anda ke base64:
Pada macOS/Linux:
base64 my-release-key.keystore | pbcopy
Pada Windows (PowerShell):
[Convert]::ToBase64String([IO.File]::ReadAllBytes("my-release-key.keystore")) | Set-Clipboard
- Buat rahasia baru bernama
ANDROID_KEYSTORE_FILEdan tempelkan string base64
ALIAS KUNCI KEYSSTORE
Buat rahasia baru dengan menggunakan alias kunci yang Anda gunakan ketika menghasilkan keystore (misalnya, my-key-alias)
KUNCI KATA SANDI KEYSSTORE
Buat rahasia baru dengan kata sandi kunci yang Anda tetapkan ketika menghasilkan keystore
KATA SANDI KEYSSTORE
Buat rahasia baru dengan kata sandi keystore yang Anda tetapkan ketika menghasilkan keystore
NAMA PAKET PEMBUAT APLIKASI
Buat rahasia baru dengan nama paket aplikasi Anda (misalnya, com.example.app)
Anda dapat menemukan nama paket Anda di android/app/build.gradle bawah applicationId
Langkah 4.3: Verifikasi Semua Rahasia
Pastikan Anda telah mengonfigurasi 6 rahasia ini:
- ✅ FILE KONFIGURASI MAIN
- ✅ FILE KEAMANAN ANDROID
- ✅ ALIAS KUNCI KEAMANAN
- ✅ KATA SANDI KUNCI KEAMANAN
- ✅ KATA SANDI SIMPANAN KEAMANAN
- ✅ NAMA PAKET PEMBUAT APLIKASI
5. Buat GitHub Workflow Aksi
Buat .github/workflows/build-upload-android.yml:
name: Build and Deploy Android App
on:
push:
tags:
- '*'
jobs:
build_android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm
- name: Install dependencies
run: npm ci
- name: Cache Gradle
uses: actions/cache@v5
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build app
run: npm run build
- name: Sync Capacitor
run: npx cap sync
- name: Setup Java
uses: actions/setup-node@v5
with:
distribution: 'zulu'
java-version: '17'
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
- name: Run Fastlane
uses: maierj/fastlane-action@v3.1.0
env:
PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}
ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }}
DEVELOPER_PACKAGE_NAME: ${{ secrets.DEVELOPER_PACKAGE_NAME }}
KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
with:
lane: android beta
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: android-release
path: ./android/app/build/outputs/bundle/release/app-release.aab
retention-days: 10
Bagaimana Cara Kerjanya
- Buat sebuah tag Git untuk mengaktifkan workflow
- GitHub Aksi membangun aplikasi Anda
- Fastlane mengunggahnya ke saluran beta Google Play
- Aplikasi Anda secara otomatis diperbarui
Waktu dan Biaya Pembangunan
- Waktu pembangunan: 3-5 menit
- Biaya untuk repositori pribadi: ~$0.04 per pembangunan
- Gratis untuk proyek sumber terbuka
Artikel Terkait
Panduan Pengaturan CI/CD
- Pembangunan Otomatis Capacitor iOS dengan GitHub Aksi - Pengaturan CI/CD iOS lengkap
- Pembangunan dan Rilis Otomatis dengan GitHub Aksi - Tutorial pipa CI/CD lengkap
- Manajemen Build Dev dan Prod dengan GitHub Aksi - Pengelolaan Lingkungan
Alternatif Platform CI/CD
- Build dengan GitLab CI - Alternatif GitLab untuk Android
- Build dengan CodeMagic - Panduan Konfigurasi CodeMagic
Pembaruan Langsung & Pengembangan
- Dokumentasi Pembaruan Langsung Capgo - Tambahkan pembaruan OTA ke aplikasi Anda
- Integrasi CI/CD dengan Capgo - Integrasi pembaruan langsung ke pipeline Anda
Sumber Daya
Lanjutkan dari Pembangunan Android Otomatis Capacitor dengan GitHub aksi
Jika Anda menggunakan Pembangunan Android Otomatis Capacitor dengan GitHub aksi untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Pembangunan Asli untuk alur kerja produk di Capgo Pembangunan Asli, 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.