Setelah mengatur CI/CD untuk aplikasi Capacitor dapat menjadi kompleks dan memakan waktu. Berikut adalah hal-hal yang perlu Anda ketahui:
Dianjurkan untuk Pembangunan Baru: Gunakan Pembangunan Capgo
Sekarang kami merekomendasikan menggunakan Pembangunan Capgo dengan Capgo CLI untuk pembangunan Capacitor asli. Petunjuk Fastlane ini disimpan untuk tim yang menjaga pipeline GitHub yang sudah ada, tetapi pembangunan Android baru harus menggunakan Capgo CLI agar Anda tidak perlu menjaga Fastlane, pengguna Gradle, kunci keamanan, 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 keamanan Android
- Project Google Cloud Console dengan API Play Store diaktifkan
- Akun layanan dengan hak akses yang tepat
- Pengertian tentang GitHub Actions workflows
- Pengenalan konfigurasi Fastlane
- Waktu untuk menjaga dan memperbaiki pipeline
Capgo Build untuk CI/CD oleh Capgo
Mengabaikan perawatan Fastlane, Gradle runner, keystore, dan skrip unggah. Capgo Build Melakukan build native Android yang ditandatangani secara otomatis dari pipeline CI/CD yang sudah ada:
- Berfungsi dengan pipeline Anda: Aktifkan Capgo Build dari GitHub Actions, GitLab CI, Jenkins, atau skrip lokal setelah build web Anda dan
npx cap sync. - Tanda tangan dari rahasia CI: Simpan keystore Android, alias kunci, kata sandi, dan JSON akun layanan Play Console di rahasia CI Anda sendiri.
- Tidak perlu perawatan runner native: Capgo Build menyediakan lingkungan build Android yang terawat, sehingga Anda tidak perlu mengelola SDK gambar, masalah cache Gradle, atau jalur Fastlane.
- Artikel dan pengiriman: Unduh artikel yang ditandatangani untuk QA atau kirimkan build rilis melalui Capgo CLI.
Pengaturan Harga
- Capgo rencana mulai dari $12/bulan
- Mengandung pembaruan OTA dan sekitar 15 pembangunan asli per bulan
- Menit pembangunan tambahan dikenakan berdasarkan menit melalui kredit
Petunjuk Pengaturan Manual
Berikut adalah apa yang perlu Anda lakukan:
Pengaturan Harga GitHub

Pengaturan Harga GitHub 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
- Konfigurasi Akun Layanan Google Play
- Konfigurasi Fastlane
- Konfigurasi Rahasia GitHub
- Buat Alur Kerja GitHub
1. Buat Keystore Android
Sebelum Anda bisa menandatangani dan mempublikasikan aplikasi Android Anda, Anda harus membuat file keystore. Ini adalah pengaturan satu kali.
Menghasilkan 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
Apa yang akan Anda lakukan selanjutnya adalah:
- 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
Pesan 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 - Sandi Keystore - Anda akan membutuhkannya sebagai
KEYSTORE_STORE_PASSWORD - Sandi kunci - Anda akan membutuhkannya sebagai
KEYSTORE_KEY_PASSWORD
- Lokasi file Keystore (misalnya,
-
Backup file keystore: Jika Anda kehilangan, Anda tidak dapat memperbarui aplikasi yang telah dipublikasikan
-
Tetapkan rahasia: Tidak pernah komit file keystore ke git
-
Simpan dengan aman: Simpan beberapa backup di lokasi yang aman
Alternatif: Gunakan Keystore yang Sudah Ada
Jika Anda telah mempublikasikan aplikasi, Anda harus menggunakan keystore yang sama yang digunakan awalnya. Anda dapat menemukannya:
- Pada mesin lokal Anda di mana Anda pertama kali membangun aplikasi
- Pada Console Play → Pengaturan → Tanda tangan aplikasi (jika menggunakan Google Play App Signing)
2. Atur Akun Layanan Google Play
To memungkinkan GitHub Actions untuk mengunggah build ke Google Play, Anda memerlukan akun layanan.
Langkah 2.1: Buat Project Google Cloud
- Pergi ke Google Cloud Console
- Buat proyek baru atau pilih salah satu yang sudah ada
- Perhatikan ID proyek
Langkah 2.2: Aktifkan Pengembang Android Google Play API
- Pada Google Cloud Console, 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
- Skip pengaturan peran untuk sekarang (klik Teruskan, kemudian Done)
Langkah 2.4: Buat Kunci Akun Layanan
- Klik pada akun layanan baru yang telah dibuat
- Pergi ke Tab Kunci Klik
- Tambah Kunci Buat kunci baru → __CAPGO_KEEP_0__
- Pilih format JSON format
- Klik Buat
- Sebuah file JSON akan diunduh - Simpan hal ini dengan amanKamu akan membutuhkannya nanti
Langkah 2.5: Berikan Akses di Play Console
- Pergi ke Google Play Console
- Pergi ke Konfigurasi → API akses
- Di bawah Akun layanan, klik Berikan akses untuk akun layanan Anda
- Pada tab Izin aplikasi Tambahkan aplikasi Anda
- Pada tab Izin akun tab, berikan izin ini:
- Melihat informasi aplikasi dan mengunduh laporan bulk (hanya baca)
- Membuat, mengedit, dan menghapus aplikasi draft
- Mengeluarkan aplikasi ke jalur pengujian
- Mengeluarkan aplikasi ke produksi, kecuali, dan jalur lainnya
- Klik Mengundang pengguna
- Klik Mengirimkan 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 mengonversi ini ke base64 di langkah pengaturan rahasia GitHub.
3. Atur Fastlane
Buat sebuah fastlane folder di root project Anda dan tambahkan sebuah Fastfile dengan konten berikut:
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 JSON akun layanan, Anda perlu menyimpannya secara aman di GitHub.
Langkah 4.1: Akses Rahasia GitHub
- Pergi ke repository Anda di GitHub
- Klik Pengaturan → Rahasia dan variabel → Aksi
- Klik Repository rahasia baru
Langkah 4.2: Tambahkan Rahasia yang Diperlukan
Tambahkan rahasia satu per satu:
PLAY_CONFIG_JSON
- Ambil file JSON akun layanan yang Anda download pada 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
ANDROID_KEYSTORE_FILE
- Konversi keystore Anda ke base64:
On macOS/Linux:
base64 my-release-key.keystore | pbcopy
On Windows (PowerShell):
[Convert]::ToBase64String([IO.File]::ReadAllBytes("my-release-key.keystore")) | Set-Clipboard
- Buat rahasia baru dengan nama
ANDROID_KEYSTORE_FILEdan tempelkan string base64 Anda
KEYSTORE_KEY_ALIAS
Buat rahasia baru dengan kunci alias yang Anda gunakan ketika menghasilkan keystore (misalnya, my-key-alias)
KEYSTORE_KEY_PASSWORD
Buat rahasia baru dengan kata sandi kunci yang Anda tetapkan ketika menghasilkan keystore
KEYSTORE_STORE_PASSWORD
Buat rahasia baru dengan kata sandi keystore yang Anda tetapkan ketika menghasilkan keystore
DEVELOPER_PACKAGE_NAME
Membuat 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:
- ✅ PLAY_CONFIG_JSON
- ✅ ANDROID_KEYSTORE_FILE
- ✅ KEYSTORE_KEY_ALIAS
- ✅ KEYSTORE_KEY_PASSWORD
- ✅ KEYSTORE_STORE_PASSWORD
- ✅ NAMA_PAKET_PENGEMBANG
Membuat GitHub Workflow Aksi
Membuat .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
Berikut Cara Kerjanya
- Membuat sebuah tag Git untuk mengaktifkan alur kerja
- GitHub Aksi membangun aplikasi Anda
- Fastlane mengunggahnya ke saluran Google Play beta
- Aplikasi Anda secara otomatis diperbarui
Waktu dan Biaya Pembangunan
- Waktu pembangunan: 3-5 menit
- Biaya untuk repositori pribadi: sekitar $0,04 per pembangunan
- Gratis untuk proyek sumber terbuka
Artikel Terkait
Panduan Pengaturan CI/CD
- Automatic Capacitor iOS Build dengan GitHub Actions - Setup CI/CD iOS yang lengkap
- Automatic Build dan Release dengan GitHub Actions - Tutorial pipa CI/CD yang lengkap
- Manajemen Build Dev dan Prod dengan GitHub Actions - Pengelolaan lingkungan
Alternatif Platform CI/CD
- Build dengan GitLab CI - Alternatif GitLab untuk Android
- Build dengan CodeMagic - Panduan pengaturan CodeMagic
Pembaruan Hidup & Pengiriman
- Capgo Aktualisasi Hidup Dokumentasi - Tambahkan Aktualisasi OTA ke aplikasi Anda
- Integrasi CI/CD dengan Capgo - Integrasi aktualisasi hidup ke dalam pipeline Anda
Sumber Daya
Teruskan dari Pembangunan Android Otomatis Capacitor dengan aksi GitHub
Jika Anda menggunakan Pembangunan Android Otomatis Capacitor dengan aksi GitHub untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur produk di Capgo CI/CD, Capgo Pembangunan Asli untuk alur produk di Capgo Pembangunan Asli, Capgo Integrasi for the product workflow in Capgo Integrations, untuk alur produk di __CAPGO_KEEP_0__ Integrasi, Integrasi CI/CD GitHub Actions Integration for the implementation detail in GitHub Actions Integration.