Mengatur integrasi CI/CD untuk aplikasi Capacitor dapat rumit dan memakan waktu. Berikut adalah apa yang perlu Anda ketahui:
Dianjurkan untuk Bangun Baru: Gunakan Capgo Bangun
Sekarang kami merekomendasikan menggunakan Capgo Bangun dengan Capgo CLI For pembangunan asli Capacitor. Petunjuk Panduan Fastlane ini disimpan untuk tim yang menjaga pipeline aksi 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 penandatanganan Android dan file keamanan
- 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 Membangun untuk CI/CD oleh Capgo
Lepaskan perawatan Fastlane, Gradle runner, keystore, dan upload-script. Capgo Membangun Membangun native Android yang ditandatangani secara otomatis dari pipeline CI/CD yang sudah ada:
- Kompatibel dengan pipeline Anda: Trigger Capgo Build from GitHub Actions, GitLab CI, Jenkins, or local scripts after your web build and
npx cap sync. - Tanda tangan dari rahasia CI: Simpan keystore Android, alias kunci, kata sandi, dan JSON layanan akun Play Console di rahasia CI Anda sendiri.
- Tidak ada perawatan runner native: Capgo Build provides maintained Android build environments, so you do not have to manage SDK images, Gradle cache issues, or Fastlane lanes.
- Artikel dan pengiriman: Unduh artikel yang ditandatangani secara otomatis untuk QA atau kirimkan rilis melalui Capgo CLI.
Harga
- Capgo rencana mulai dari $12/bulan
- Menggunakan pembaruan OTA dan sekitar 15 bangun asli per bulan
- Menit tambahan pembangunan dibebankan per menit melalui kredit
Petunjuk Manual Pengaturan
Ini yang perlu Anda lakukan:
Harga GitHub Aksi

GitHub Aksi menawarkan menit gratis berdasarkan jenis repositori Anda:
- Repositori publik: 2.000 menit/bulan
- Repositori pribadi: 2.000 menit/bulan (Linux runner)
Untuk proyek pribadi, biaya sekitar $0,008/menit. Proyek biasanya memakan waktu 3-5 menit.
Langkah-Langkah Pengaturan Manual
- Buat Android Keystore
- Atur Akun Layanan Google Play
- Atur Fastlane
- Konfigurasi GitHub rahasia
- Buat GitHub alur kerja
1. Buat Android Keystore
Sebelum Anda bisa menandatangani dan mempublikasikan aplikasi Android Anda, Anda perlu membuat file keystore. Ini adalah pengaturan satu kali.
Buat 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 untuk:
- 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, organisasi, dll.: Isi detail Anda
Pertimbangan 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 - Kunci sandi - Anda 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 Ada
Jika Anda telah memublikasikan 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
Untuk memungkinkan GitHub Aksi 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 yang sudah ada
- Perhatikan ID proyek
Langkah 2.2: Aktifkan Pengembang Google Play API
- Di 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 Lanjutkan, kemudian Done)
Langkah 2.4: Buat Kunci Akun Layanan
- Klik pada akun layanan baru yang dibuat
- Pergi ke Tab Klik
- Tambah Kunci Buat kunci baru → __CAPGO_KEEP_0__
- Pilih format JSON Klik
- Buat A file JSON akan diunduh -
- Simpan hal ini secara aman, Anda memerlukan hal ini nanti Langkah 2.5: Berikan Akses di Play ConsolePergi ke
Google Play Console
- Pergi ke Grant Access in Play Console
- Go to Google Play Console 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:
- Lihat informasi aplikasi dan download laporan bulk (hanya baca)
- Buat, edit, dan hapus aplikasi draft
- Rilis aplikasi ke jalur uji coba
- Rilis aplikasi ke produksi, kecuali, dan jalur lainnya
- Klik Undang pengguna
- Klik Kirim undangan
Langkah 2.6: Verifikasi Kunci JSON
File JSON yang diunduh harus 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 proyek Anda dan tambahkan sebuah Fastfile dengan isi sebagai 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 repositori Anda di GitHub
- Klik Pengaturan → Rahasia dan variabel → Aksi
- Klik Rahasia Repositori Baru
Langkah 4.2: Tambahkan Rahasia yang Diperlukan
Tambahkan setiap 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
BERkas Kunci Android Keystore
- Convert 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 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 SIMPAN KEYSSTORE
Buat rahasia baru dengan kata sandi simpan keystore yang Anda tetapkan ketika menghasilkan keystore
NAMA PAKET PEMBUAT
Membuat rahasia baru dengan nama paket aplikasi Anda (misalnya, com.example.app)
Anda dapat menemukan nama paket di android/app/build.gradle di 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
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 alur kerja
- 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
Pedoman Pengaturan CI/CD
- Membangun Otomatis Capacitor iOS dengan GitHub Aksi - Setup CI/CD iOS lengkap
- Membangun dan Mengeluarkan Otomatis dengan GitHub Aksi - Tutorial pipa CI/CD lengkap
- Manajemen Membangun Dev dan Prod dengan GitHub Aksi - Pengelolaan lingkungan
Alternatif Platform CI/CD
- Membangun dengan GitLab CI - Alternatif GitLab untuk Android
- Membangun dengan CodeMagic - Panduan setup CodeMagic
Pembaruan Hidup & Pengiriman
- Capgo Perbarui Hidup Dokumentasi - Tambahkan perbarui OTA ke aplikasi Anda
- Integrasi CI/CD dengan Capgo - Integrasi perbarui hidup di dalam pipa Anda
Sumber Daya
Teruskan dari Automatic Capacitor Build Android Otomatis dengan GitHub aksi
Jika Anda menggunakan Automatic Capacitor Build Android Otomatis 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.