Pembangunan iOS Otomatis dengan GitHub Aksi menggunakan Match
Mengatur pengujian kontinu/CD untuk aplikasi Capacitor dapat rumit dan memakan waktu. Berikut ini yang perlu Anda ketahui:
Dianjurkan untuk Pembangunan Baru: Gunakan Capgo Build
Sekarang kami merekomendasikan penggunaan Capgo Membangun dengan Capgo CLI untuk pembangunan native Capacitor. Panduan Fastlane Match ini disimpan untuk tim yang memelihara pipeline aksi GitHub yang sudah ada, tetapi pembangunan iOS baru harus menggunakan Capgo CLI agar Anda tidak perlu memelihara repositori Fastlane, Match, runner Xcode, sertifikat, dan skrip unggah sendiri.
Capgo Membangun untuk CI/CD oleh Capgo
Lepaskan pemeliharaan Fastlane Match, runner Xcode, sertifikat, profil pengaturan, dan skrip unggah. Capgo Membangun melakukan pembangunan iOS yang ditandatangani secara native dari pipeline CI/CD yang sudah ada:
- Bekerja dengan pipeline Anda: Aktifkan Capgo Membangun dari GitHub Actions, GitLab CI, Jenkins, atau skrip lokal setelah pembangunan web Anda dan
npx cap sync. - Tanda tangan dari rahasia CI: Simpan kunci App Store Connect, sertifikat, profil pengaturan, kata sandi, dan ID tim di rahasia CI Anda sendiri.
- Tidak ada pemeliharaan runner native: Capgo Build menyediakan lingkungan pembangunan Apple yang terjaga, sehingga Anda tidak perlu mengelola runner macOS, gambar Xcode, Fastlane, atau repositori Match.
- Artikel dan pengiriman: Unduh artefak yang ditandatangani untuk QA atau kirimkan rilis build melalui Capgo CLI.
Pricing
- Capgo rencana mulai dari $12/bulan
- Termasuk pembaruan OTA dan sekitar 15 build asli per bulan
- Menit tambahan pembangunan yang dibebankan berdasarkan menit melalui kredit
Petunjuk Pengaturan Manual
Berikut ini yang perlu Anda lakukan:
Pengiriman Terus-menerus untuk iOS menggunakan Fastlane dan GitHub Aksi menggunakan match
Prasyarat
Sebelum melanjutkan dengan tutorial…
- Pastikan Anda telah menginstal Fastlane di mesin pengembangan Anda. Anggota program pengembang iOS.
- Keinginan untuk membaca 😆…
- Sebuah tim banyak devs, jika tidak, kami merekomendasikan untuk menggunakan
- fastlane cert untuk alur kerja yang lebih sederhana. Penting tentang harga
Harga __CAPGO_KEEP_0__ Action

https://github.com/features/actions
Jasa ini gratis hingga batas yang ditentukan, tergantung pada mesin yang dipilih.
Kita akan menggunakan sebuah mesin macOS, Anda dapat melihat harga dan batasan (harga pada saat pembuatan tutorial, mereka mungkin mengalami perubahan di masa depan) Setelah diberi peringatan tentang persyaratan dan harga, jika Anda suka, kita melanjutkan…
🔴 Dalam postingan ini kita asumsikan bahwa kita telah memiliki aplikasi yang dibuat di iTunes Connect, kita memiliki sertifikat dari ekosistem Apple, semuanya akan dicopy oleh Fastlane!
📣 Mari kita mulai!
Langkah-langkah yang perlu diikuti dalam postingan ini
Menggunakan App Store Connect __CAPGO_KEEP_0__ dengan Fastlane Match
- Using App Store Connect API with Fastlane Match
- Membuat Kunci App Store Connect __CAPGO_KEEP_0__
- Menggunakan Kunci App Store Connect API
- Menggunakan App Store Connect API dengan Fastlane Match
- Salin File Fastlane
- Konfigurasi Fastlane match
1. Menggunakan App Store Connect API dengan Fastlane Match
Mulai Februari 2021, verifikasi dua faktor atau verifikasi dua langkah diperlukan untuk semua pengguna untuk masuk ke App Store Connect. Layer keamanan tambahan untuk ID Apple Anda membantu memastikan bahwa Anda adalah satu-satunya orang yang dapat mengakses akun Anda.
Dari Dukungan Apple
Mengawali dengan match memerlukan Anda untuk membatalkan sertifikat yang ada. Tapi jangan khawatir, Anda akan mendapatkan yang baru secara langsung.
Persyaratan
Untuk dapat menggunakan App Store Connect API, Fastlane memerlukan tiga hal.
- ID Penerbit
- ID Kunci.
- File Kunci atau Konten Kunci.
Membuat Kunci App Store Connect API
Untuk menghasilkan kunci, Anda harus memiliki izin Admin di App Store Connect. Jika Anda tidak memiliki izin tersebut, Anda dapat mengarahkan orang yang relevan ke artikel ini dan mengikuti instruksi berikut.
1 — Masuk ke App Store Connect.
2 — Pilih Pengguna dan Akses.

3 — Pilih tab Integrasi.

4 — Klik Generate API Key atau tombol (+) Tambah.

5 — Masukkan nama untuk kunci. Nama ini hanya untuk referensi Anda dan bukan bagian dari kunci itu sendiri.

6 — Di bawah Akses, pilih peran untuk kunci. Peran-peran yang berlaku untuk kunci sama seperti peran-peran yang berlaku untuk anggota tim Anda. Lihat izin akses. Kami merekomendasikan untuk memilih pengelola aplikasi.
7 — Klik Buat.
Akses kunci API tidak dapat dibatasi hanya untuk aplikasi tertentu.
Nama kunci baru, ID kunci, tautan download, dan informasi lainnya muncul di halaman.

Anda dapat mengambil semua informasi yang diperlukan di sini.
ID Masalah.
ID Kunci.
Klik "Unduh API Kunci" untuk mengunduh kunci pribadi API Anda. Tautan unduh hanya muncul jika kunci pribadi belum diunduh. Apple tidak menyimpan salinan kunci pribadi. Jadi, Anda hanya dapat mengunduhnya sekali.
🔴 Simpan kunci pribadi Anda di tempat yang aman. Anda tidak boleh berbagi kunci, menyimpan kunci di code repository, atau termasuk kunci di sisi klien code.
Menggunakan Kunci App Store Connect API
File Kunci API (file p8 yang Anda download), ID kunci, dan ID penggugat diperlukan untuk membuat token JWT untuk otorisasi. Ada beberapa cara informasi ini dapat dimasukkan ke dalam Fastlane menggunakan aksi baru Fastlane. app_store_connect_api_key. Anda dapat belajar cara lainnya di Dokumentasi Fastlane. Saya menunjukkan metode ini karena saya pikir ini adalah cara yang paling mudah untuk bekerja dengan CI yang paling umum, di mana Anda dapat menetapkan variabel lingkungan.
Sekarang kita dapat mengelola Fastlane dengan menggunakan kunci App Store Connect API, bagus!
2. Salin File Fastlane
Fastlane adalah library Ruby yang dibuat untuk otomatisasi tugas pengembangan mobile yang umum. Dengan menggunakan Fastlane, Anda dapat mengonfigurasi jalur kustom yang dapat menggabungkan serangkaian aksi yang melakukan tugas yang biasanya Anda lakukan menggunakan Android Studio. Anda dapat melakukan banyak hal dengan Fastlane, tetapi untuk tujuan tutorial ini, kita hanya akan menggunakan beberapa aksi inti.
Buat folder Fastlane di root proyek Anda dan salin file-file berikut: Fastfile
default_platform(:ios)
DEVELOPER_APP_IDENTIFIER = ENV["DEVELOPER_APP_IDENTIFIER"]
DEVELOPER_APP_ID = ENV["DEVELOPER_APP_ID"]
PROVISIONING_PROFILE_SPECIFIER = ENV["PROVISIONING_PROFILE_SPECIFIER"]
TEMP_KEYCHAIN_USER = ENV["TEMP_KEYCHAIN_USER"]
TEMP_KEYCHAIN_PASSWORD = ENV["TEMP_KEYCHAIN_PASSWORD"]
APPLE_ISSUER_ID = ENV["APPLE_ISSUER_ID"]
APPLE_KEY_ID = ENV["APPLE_KEY_ID"]
APPLE_KEY_CONTENT = ENV["APPLE_KEY_CONTENT"]
GIT_USERNAME = ENV["GIT_USERNAME"]
GIT_TOKEN = ENV["GIT_TOKEN"]
def delete_temp_keychain(name)
delete_keychain(
name: name
) if File.exist? File.expand_path("~/Library/Keychains/#{name}-db")
end
def create_temp_keychain(name, password)
create_keychain(
name: name,
password: password,
unlock: false,
timeout: 0
)
end
def ensure_temp_keychain(name, password)
delete_temp_keychain(name)
create_temp_keychain(name, password)
end
platform :ios do
lane :build do
build_app(
configuration: "Release",
workspace: "./ios/App/App.xcworkspace",
scheme: "App",
export_method: "app-store",
export_options: {
provisioningProfiles: {
DEVELOPER_APP_ID => "#{PROVISIONING_PROFILE_SPECIFIER}"
}
}
)
end
lane :refresh_profiles do
match(
type: "development",
force: true)
match(
type: "adhoc",
force: true)
end
desc "Register new device"
lane :register_new_device do |options|
device_name = prompt(text: "Enter the device name: ")
device_udid = prompt(text: "Enter the device UDID: ")
device_hash = {}
device_hash[device_name] = device_udid
register_devices(
devices: device_hash
)
refresh_profiles
end
lane :closed_beta do
keychain_name = TEMP_KEYCHAIN_USER
keychain_password = TEMP_KEYCHAIN_PASSWORD
ensure_temp_keychain(keychain_name, keychain_password)
api_key = app_store_connect_api_key(
key_id: APPLE_KEY_ID,
issuer_id: APPLE_ISSUER_ID,
key_content: APPLE_KEY_CONTENT,
duration: 1200,
in_house: false
)
match(
type: 'appstore',
git_basic_authorization: Base64.strict_encode64("#{GIT_USERNAME}:#{GIT_TOKEN}"),
readonly: true,
keychain_name: keychain_name,
keychain_password: keychain_password,
api_key: api_key
)
gym(
configuration: "Release",
workspace: "./ios/App/App.xcworkspace",
scheme: "App",
export_method: "app-store",
export_options: {
provisioningProfiles: {
DEVELOPER_APP_ID => "#{PROVISIONING_PROFILE_SPECIFIER}"
}
}
)
pilot(
apple_id: "#{DEVELOPER_APP_ID}",
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
skip_waiting_for_build_processing: true,
skip_submission: true,
distribute_external: false,
notify_external_testers: false,
ipa: "./App.ipa"
)
delete_temp_keychain(keychain_name)
end
lane :submit_review do
version = ''
Dir.chdir("..") do
file = File.read("package.json")
data = JSON.parse(file)
version = data["version"]
end
deliver(
app_version: version,
submit_for_review: true,
automatic_release: true,
force: true, # Skip HTMl report verification
skip_metadata: false,
skip_screenshots: false,
skip_binary_upload: true
)
end
end
Appfile
app_identifier(ENV["DEVELOPER_APP_IDENTIFIER"])
apple_id(ENV["FASTLANE_APPLE_ID"])
itc_team_id(ENV["APP_STORE_CONNECT_TEAM_ID"])
team_id(ENV["DEVELOPER_PORTAL_TEAM_ID"])
Konfigurasi Fastlane match
Fastlane match adalah pendekatan baru untuk tanda tangan code iOS. Fastlane match membuatnya mudah bagi tim untuk mengelola sertifikat dan profil pengaturan yang diperlukan untuk aplikasi iOS Anda.
Buat repositori pribadi baru bernama certificates, misalnya di akun pribadi Anda atau organisasi GitHub.
Inisialisasi Fastlane match untuk aplikasi iOS Anda.
fastlane match init
Lalu pilih opsi #1 (Penyimpanan Git).
[01:00:00]: fastlane match supports multiple storage modes, please select the one you want to use:1. git2. google_cloud3. s3?
Tetapkan URL repositori baru yang telah dibuat.
[01:00:00]: Please create a new, private git repository to store the certificates and profiles there[01:00:00]: URL of the Git Repo: <YOUR_CERTIFICATES_REPO_URL>
Sekarang Anda memiliki di dalam folder Fastlane sebuah file bernama File Match harus diatur ke URL HTTPS repositori sertifikat. Jika diinginkan, Anda juga dapat menggunakan SSH, tetapi memerlukan langkah yang berbeda untuk dijalankan. Selanjutnya, kita akan mengenerate sertifikat dan memasukkan kreditensi Anda ketika diminta dengan Fastlane Match.
_git_url_Anda akan diminta untuk memasukkan kata sandi. Ingatlah dengan benar karena akan digunakan oleh __CAPGO_KEEP_0__ Actions untuk mengenkripsi repositori sertifikat Anda.
# ios/Matchfilegit_url("https://github.com/gitusername/certificates")storage_mode("git")type("appstore")
Jika semuanya berjalan dengan baik, Anda seharusnya melihat sesuatu seperti itu:
Jika Anda mengalami masalah dengan GitHub dan izin yang diperlukan, mungkin postingan ini akan membantu Anda untuk mengenerate token autentikasi untuk git.
fastlane match appstore
Sertifikat dan profil pengembangan yang dihasilkan diunggah ke sumber daya repositori sertifikat.
[01:40:52]: All required keys, certificates and provisioning profiles are installed 🙌
If you experienced any problem with GitHub and the necessary permissions, maybe this Terakhir, buka Sertifikat App Store Connect
terakhir buka

terakhir buka project In Xcode, dan perbarui profil pengaturan untuk konfigurasi rilis aplikasi Anda.

Beberapa hal yang perlu diperhatikan 💡
MATCH
Untuk CI/CD dapat mengimport sertifikat dan profil pengaturan, ia harus memiliki akses ke repositori sertifikat. Anda dapat melakukannya dengan menghasilkan token akses pribadi (harus digunakan sebelumnya) yang memiliki ruang lingkup untuk mengakses atau membaca repositori pribadi.
In GitHub, pergi ke Pengaturan → Pengaturan Pengembang → Token akses pribadi → klik Generate New Token → centang repo ruang lingkup → kemudian klik Generate token.

Punya salinan token akses pribadi yang dihasilkan. Anda akan menggunakan itu kemudian untuk variabel lingkungan GIT_TOKEN.
Kemudian ganti file match yang dihasilkan di folder Fastlane dengan Matchfile
CERTIFICATE_STORE_URL = ENV["CERTIFICATE_STORE_URL"]
GIT_USERNAME = ENV["GIT_USERNAME"]
GIT_TOKEN = ENV["GIT_TOKEN"]
FASTLANE_APPLE_ID = ENV["FASTLANE_APPLE_ID"]
git_url(CERTIFICATE_STORE_URL)
storage_mode("git")
type("appstore")
git_basic_authorization(Base64.strict_encode64("#{GIT_USERNAME}:#{GIT_TOKEN}"))
username(FASTLANE_APPLE_ID)
File ini akan digunakan oleh GitHub Actions untuk mengimport sertifikat dan profil provisioning. Dan variabel akan ditetapkan di GitHub Secrets, bukan dengan mengkodekan mereka secara keras di file.
Proses Pembangunan
Dalam GitHub Actions, biaya Anda berdasarkan menit anda telah digunakan untuk menjalankan alur kerja CI/CD. Dari pengalaman, membutuhkan sekitar 10–15 menit sebelum sebuah build dapat diproses di App Store Connect.
Untuk proyek pribadi, biaya perkiraan per build dapat mencapai $0,08/min x 15 menit = $1,2, atau lebih, tergantung pada konfigurasi atau dependensi proyek Anda.
Jika Anda memiliki kekhawatiran yang sama tentang biaya seperti saya untuk proyek pribadi, Anda dapat menjaga skip_waiting_for_build_processing ke true.
Apa yang harus kamu lakukan? Kamu harus memperbarui secara manual kompatibilitas aplikasi di App Store Connect setelah proses build selesai, agar kamu bisa mendistribusikan build ke pengguna.
Parameter ini hanya opsional untuk diperbarui jika kamu ingin menghemat waktu build untuk proyek pribadi. Untuk proyek gratis, ini tidak akan menjadi masalah. harga.
1. Konfigurasi GitHub
Konfigurasi rahasia GitHub
Pernahkah kamu bertanya-tanya dari mana nilai-nilai ENV berasal? Nah, rahasia sudah tidak lagi – itu dari rahasia proyekmu.

1. APP_STORE_CONNECT_TEAM_ID - ID tim App Store Connect kamu jika kamu bergabung dengan beberapa tim.
2. DEVELOPER_APP_ID - di App Store Connect, pergi ke aplikasi → Informasi Aplikasi → Arahkan ke bawah ke bagian General Information dari aplikasi Anda dan cari Apple ID.
3. DEVELOPER_APP_IDENTIFIER - identifikasi paket aplikasi Anda.
4. DEVELOPER_PORTAL_TEAM_ID - ID tim Portal Pengembang Anda jika Anda memiliki beberapa tim.
5. FASTLANE_APPLE_ID - ID Apple atau alamat email pengembang yang Anda gunakan untuk mengelola aplikasi.
6. GIT_USERNAME & GIT_TOKEN - Nama pengguna Git Anda dan token akses pribadi Anda.
7. MATCH_PASSWORD - kata sandi yang Anda tentukan ketika menjalankan match, akan digunakan untuk mendekripsi sertifikat dan profil pengembangan.
8. PROVISIONING_PROFILE_SPECIFIER - match AppStore <YOUR_APP_BUNDLE_IDENTIFIER>, contoh. match AppStore com.domain.blabla.demo.
9. TEMP_KEYCHAIN_USER & TEMP_KEYCHAIN_PASSWORD - tentukan pengguna dan kata sandi keychain sementara untuk alur kerja Anda.
10. APPLE_KEY_ID — App Store Connect API Kunci 🔺ID Kunci.
11. APPLE_ISSUER_ID — App Store Connect API Kunci 🔺Pemilik ID.
12. APPLE_KEY_CONTENT — App Store Connect API Kunci 🔺 File kunci atau Konten kunci dari .p8, periksa
13. CERTIFICATE_STORE_URL — URL repo Anda untuk Match kunci (misal: https://github.com/***/fastlane_match.git)
4. Konfigurasi GitHub file workflow
Buat direktori GitHub workflow.
cd .github/workflows
Dalam folder tersebut, buat file bernama workflow dan tambahkan kode berikut. build-upload-ios.ymlWorkflow ini harus diaktifkan setelah setiap __CAPGO_KEEP_0__
name: Build source code on ios
on:
push:
tags:
- '*'
jobs:
build_ios:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v6
- name: set Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: npm
- name: Install dependencies
id: install_code
run: npm ci
- name: Build
id: build_code
run: npm run build
- uses: actions/cache@v5
with:
path: ios/App/Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: Sync
id: sync_code
run: npx cap sync
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.2
- uses: maierj/fastlane-action@v2.3.0
env:
DEVELOPER_APP_IDENTIFIER: ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
DEVELOPER_APP_ID: ${{ secrets.DEVELOPER_APP_ID }}
PROVISIONING_PROFILE_SPECIFIER: match AppStore ${{ secrets.DEVELOPER_APP_IDENTIFIER }}
TEMP_KEYCHAIN_USER: ${{ secrets.TEMP_KEYCHAIN_USER }}
TEMP_KEYCHAIN_PASSWORD: ${{ secrets.TEMP_KEYCHAIN_PASSWORD }}
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }}
CERTIFICATE_STORE_URL: https://github.com/${{ secrets.CERTIFICATE_STORE_REPO }}.git
GIT_USERNAME: ${{ secrets.GIT_USERNAME }}
GIT_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
FASTLANE_APPLE_ID: ${{ secrets.FASTLANE_APPLE_ID }}
MATCH_USERNAME: ${{ secrets.FASTLANE_APPLE_ID }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
DEVELOPER_PORTAL_TEAM_ID: ${{ secrets.DEVELOPER_PORTAL_TEAM_ID }}
with:
lane: closed_beta
- name: Upload release bundle
uses: actions/upload-artifact@v2
with:
name: ios-release
path: ./App.ipa
retention-days: 60
— App Store Connect GitHub Key 🔺Pemilik ID. tag, jika Anda perlu otomatisasi tag, silakan lihat Pembangunan otomatis dan rilis dengan GitHub aksi pertama.
Kemudian alur kerja ini akan menarik dependensi NodeJS Anda, menginstalnya dan membangun aplikasi JavaScript Anda.
Setiap kali Anda mengirimkan komit baru, rilis akan dibangun di TestFlight.
Aplikasi Anda tidak perlu menggunakan Ionic, hanya dasar Capacitor yang wajib, aplikasi Anda dapat memiliki modul Cordova lama, tetapi Capacitor plugin JavaScript harus dipilih.
5. Aktifkan alur kerja
Buat Komit
Buat komit, Anda harus melihat alur kerja aktif di repository.
Trigger alur kerja
Push komit baru ke cabang main atau development untuk mengaktifkan alur kerja.

Setelah beberapa menit, build harus tersedia di dashboard App Store Connect Anda.

Bisa mengdeploy dari mesin lokal?
Ya, Anda bisa, dan itu sangat mudah.
Bayangkan Anda memiliki repositori pribadi, dan Anda telah menggunakan menit gratis dari rencana gratis dan Anda tidak ingin membayar untuk rilis baru, atau mungkin Anda lebih suka mengirimkan aplikasi secara manual.
Mari kita lakukan
Ok, terlebih dahulu kita perlu membuat di my_project_path/fastlane path sebuah file yang disebut .env, hanya di path yang sama dengan Fastfile, untuk dapat membuat yang sama rahasia properti- properti yang ditemukan di _GitHub, a_s di bawah ini:
file .env untuk deploy dari mesin lokal
Sekarang, Anda dapat pergi ke terminal dan meluncurkan Fastlane dari mesin Anda:
fastlane closed_beta
❌ Informasi penting tentang .env file, karena kami tidak ingin mengungkapkan data ini, kami harus menambahkannya ke .gitignore, seperti itu: ❌
fastlane/*.env
It should work the same as it happens from GitHub Actions on the remote machine but in our local machine. 🍻

Penggunaan Fastlane lokal
If you have come this far, my congratulations, now you have a fully automated process for your iOS apps with Fastlane and GitHub Actions.
Jika Anda telah mencapai tahap ini, selamat, sekarang Anda memiliki proses otomatisasi yang lengkap untuk aplikasi iOS Anda dengan Fastlane dan Actions. martin@capgo.app
Buat pada perangkat Anda
Jika Anda masih perlu membangun pada perangkat Anda, Anda perlu menambahkannya secara manual ke pengaturan.
Hubungkan perangkat Anda ke Mac Anda dan buka menu perangkat
Lalu salin identifikator Anda
Dan kemudian mulai perintah:
fastlane register_new_device
itu akan meminta Anda untuk menetapkan nama perangkat dan identifikator:

jika Anda mendapatkan masalah
Jika Anda memiliki masalah dengan perangkat pengembang tidak dapat diuji, dll. yang biasanya dapat diatasi dengan cara ini.
Ada perintah ajaib yang dapat menyelamatkan Anda:
fastlane match nuke development
fastlane match development
Maka : Bersihkan proyek dengan menahan Shift(⇧)+Command(⌘)+K atau memilih Product > Bersihkan (mungkin terlabel “Bersihkan Folder Pembangunan”)
Coba jalankan aplikasi lagi di perangkat Anda.
Terima kasih.
Blog ini berdasarkan artikel berikut:
- Pengiriman terus-menerus untuk IOS menggunakan Fastlane dan aksi-aksi GitHub
- Dokumentasi Fastlane
- Pesan GitHub ini dari @mrogunlana
Teruslah dari Pembangunan IOS Otomatis Capacitor dengan aksi-aksi GitHub menggunakan match
Jika Anda menggunakan Pembangunan IOS Otomatis Capacitor dengan aksi-aksi GitHub menggunakan match 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 for the implementation detail in GitHub Actions Integration.