Build Otomatis iOS dengan GitHub Actions menggunakan Match
Menetapkan CI/CD untuk aplikasi Capacitor dapat rumit dan memakan waktu. Berikut adalah apa yang perlu Anda ketahui:
Dianjurkan untuk Build Baru: Gunakan Capgo Build
Sekarang kami merekomendasikan menggunakan Capgo Bangun dengan Capgo CLI untuk bangun native Capacitor. Petunjuk Panduan Fastlane Match ini disimpan untuk tim yang menjaga pipeline aksi GitHub yang sudah ada, tetapi bangun iOS baru harus menggunakan Capgo CLI sehingga Anda tidak perlu menjaga repositori Fastlane, Match, runner Xcode, sertifikat, dan skrip unggah sendiri.
Capgo Bangun untuk CI/CD oleh Capgo
Lebihkan Fastlane Match, runner Xcode, sertifikat, profil pengaturan, dan skrip unggah. Capgo Bangun melakukan bangun iOS native yang ditandatangani dari pipeline CI/CD yang sudah ada:
- Berfungsi dengan pipeline Anda: Aktifkan Capgo Bangun dari aksi GitHub Actions, GitLab CI, Jenkins, atau skrip lokal setelah bangun web Anda dan
npx cap sync. - Penandatanganan 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 nativeCapgo 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.
Harga
- Capgo plans start at $12/month
- Navigasi/label untuk halaman Harga. Halaman/area: Capgo Builder / produk halaman pembangunan asli cloud. Peran: Subjudul atau tagline bagian. Dilihat di: halaman pembangunan asli.astro. Pesan kunci `native_build_builder_pricing_eyebrow` (Harga Pembangunan Asli Pembangun). | Navigasi/label untuk halaman Harga. Halaman/area: Situs web Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: footer situs, header situs, halaman harga.astro. Pesan kunci `harga` (Harga).
- __CAPGO_KEEP_0__ rencana mulai dari $12/bulan
Menit tambahan pembangunan dikenakan biaya per menit melalui kredit
context
Continuous Delivery for iOS using Fastlane and GitHub Actions using match
Konfigurasi __CAPGO_KEEP_0__ Build di CI/CD
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. Hal penting tentang harga
Harga __CAPGO_KEEP_0__ Action

Jasa ini gratis hingga batas tertentu, tergantung pada mesin yang dipilih.
Kita akan menggunakan sebuah mesin macOS mesin, Anda dapat melihat harga dan batasan (harga pada saat pembuatan tutorial, mereka mungkin mengalami perubahan di masa depan)
🔴 Setelah diingatkan 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, segalanya akan dicopy oleh Fastlane!
Mari kita mulai menjelajah!
Langkah-langkah yang perlu diikuti dalam postingan ini
- Menggunakan App Store Connect API dengan Fastlane Match
- Persyaratan
- Membuat Kunci App Store Connect API
- Menggunakan Kunci App Store Connect API
- Salin File Fastlane
- Konfigurasi Fastlane match
1. Menggunakan App Store Connect API dengan Fastlane Match
Mulai Februari 2021, autentikasi 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 Bantuan Apple
Untuk memulai dengan match, Anda harus membatalkan sertifikat yang ada. Tapi jangan khawatir, Anda akan memiliki 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 API App Store Connect.
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. App Store Connect.
2 — Pilih Pengguna dan Akses. Akses Pengguna App Store Connect.

Integrasi __CAPGO_KEEP_0__ App Store Connect

API

5 — Beri 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 dengan peran-peran yang berlaku untuk anggota tim Anda. Lihat izin akses. Kami merekomendasikan untuk memilih pengelola aplikasi.
7 — Klik Buat.
Kunci API tidak dapat memiliki akses yang terbatas pada aplikasi tertentu.
Nama kunci baru, ID kunci, tautan download, dan informasi lainnya muncul di halaman.

Kami dapat mengambil semua informasi yang diperlukan di sini.
<1> ID Masalah.
<2> ID Kunci.
<3> Klik "Unduh Kunci API" 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 code sisi klien.
Menggunakan Kunci API App Store Connect
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 lain di Dokumentasi Fastlane. Saya menunjukkan metode ini karena saya pikir ini adalah cara termudah untuk bekerja dengan CI kebanyakan, di mana Anda dapat menetapkan variabel lingkungan.
Sekarang kita dapat mengelola Fastlane dengan menggunakan kunci App Store Connect API, hebat!
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 beberapa 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.
Membuat folder Fastlane di root project Anda dan salin 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
Membuat file 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"])
Mengonfigurasi Fastlane match
Fastlane match adalah pendekatan baru untuk tanda tangan code iOS. Fastlane match membuatnya mudah bagi tim untuk mengelola sertifikat dan profil penyediaan yang diperlukan untuk aplikasi iOS Anda.
Membuat repositori pribadi baru bernama certificates, for example on your GitHub personal account or organization.
Menginisialisasi 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?
Mengasign URL repositori yang baru 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 Matchfile dan
_git_url_harus diatur ke URL HTTPS repositori sertifikat. Jika diinginkan, Anda juga dapat menggunakan SSH, tetapi itu memerlukan langkah yang berbeda untuk dijalankan.
# ios/Matchfilegit_url("https://github.com/gitusername/certificates")storage_mode("git")type("appstore")
Selanjutnya, kita akan menghasilkan sertifikat dan memasukkan kredit Anda ketika diminta dengan Fastlane Match.
Anda akan diminta untuk memasukkan kata sandi. Ingatlah dengan benar karena itu akan digunakan kemudian oleh Aksi GitHub untuk mengenkripsi repositori sertifikat Anda.
fastlane match appstore
Jika semuanya berjalan dengan baik, Anda seharusnya melihat sesuatu seperti itu:
[01:40:52]: All required keys, certificates and provisioning profiles are installed 🙌
Jika Anda mengalami masalah dengan GitHub dan izin yang diperlukan, mungkin postingan ini pos akan membantu Anda untuk menghasilkan token autentikasi untuk git.
Sertifikat dan profil pengembangan yang dihasilkan diunggah ke repositori sumber

Terakhir, buka project di 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, maka perlu memiliki akses ke repositori sertifikat. Anda dapat melakukan ini dengan menghasilkan token akses pribadi (harus digunakan sebelumnya) yang memiliki ruang lingkup untuk mengakses atau membaca repositori pribadi.
Pada GitHub, buka 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 token tersebut 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.
Pengolahan Build
Di GitHub Actions, Anda dikenakan biaya 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 dengan saya untuk proyek pribadi, Anda dapat menjaga skip_waiting_for_build_processing ke true.
Apa yang menjadi masalahnya? Anda harus memperbarui secara manual kompatibilitas aplikasi Anda di App Store Connect setelah proses build selesai, agar Anda dapat mendistribusikan build ke pengguna.
Parameter ini hanyalah opsional untuk diperbarui jika Anda ingin menghemat waktu build untuk proyek pribadi. Untuk proyek gratis, ini tidak akan menjadi masalah. harga.
3. Konfigurasi GitHub
Konfigurasi GitHub rahasia
Jika Anda pernah bertanya-tanya dari mana nilai-nilai dari __CAPGO_KEEP_0__ berasal? Nah, rahasia sudah tidak lagi – itu dari rahasia proyek Anda. ENV Konfigurasi __CAPGO_KEEP_0__ rahasia

1. APP_STORE_CONNECT_TEAM_ID - di App Store Connect, pergi ke aplikasi →
2. DEVELOPER_APP_ID Informasi Aplikasi Konfigurasi __CAPGO_KEEP_0__ rahasia → Arahkan ke bawah ke bagian aplikasi Anda dan cari General Information - Identifikasi paket aplikasi Anda. Apple ID.
3. DEVELOPER_APP_IDENTIFIER - ID tim Portal Pengembang Anda jika Anda bergabung dengan beberapa tim.
4. DEVELOPER_PORTAL_TEAM_ID - ID Apple atau alamat email pengembang yang Anda gunakan untuk mengelola aplikasi.
5. FASTLANE_APPLE_ID &
6. GIT_USERNAME - Nama pengguna Git dan token akses pribadi Anda. GIT_TOKEN - Kata sandi yang Anda tentukan ketika menginisialisasi match, akan digunakan untuk mendekripsi sertifikat dan profil pengembangan.
7. MATCH_PASSWORD , contoh.
8. PROVISIONING_PROFILE_SPECIFIER - match AppStore <YOUR_APP_BUNDLE_IDENTIFIER>& match AppStore com.domain.blabla.demo.
9. TEMP_KEYCHAIN_USER - Tambahkan pengguna dan kata sandi keychain sementara untuk alur kerja Anda. TEMP_KEYCHAIN_PASSWORD — App Store Connect __CAPGO_KEEP_0__ Kunci 🔺ID Kunci.
10. APPLE_KEY_ID — App Store Connect API Key 🔺Key ID.
11. APPLE_ISSUER_ID — App Store Connect API Kunci 🔺Pemilik ID.
12. APPLE_KEY_CONTENT — App Store Connect API Kunci 🔺 File kunci atau Isi kunci dari .p8, Untuk membandingkan dan memigrasikan ke Capgo, Anda perlu mengatur kunci App Store Connect Anda. Kunci ini digunakan untuk mengotentikasi aplikasi Anda di App Store. Anda dapat menemukan kunci ini di halaman App Store Connect.
13. CERTIFICATE_STORE_URL Periksa itu https://github.com/***/fastlane_match.git)
https://GitHub.com/***/fastlane_match.git
4. Konfigurasi file aliran GitHub
cd .github/workflows
Buat direktori aliran __CAPGO_KEEP_0__. workflow Dalam direktori tersebut, buat file bernama build-upload-ios.ymldan tambahkan kode berikut.
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
Aliran ini harus diaktifkan setelah setiap GitHub tag, jika Anda perlu otomatisasi tag, silakan lihat Automatic build dan rilis dengan GitHub actions 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 disarankan.
5. Aktifkan alur kerja
Buat Komit
Buat komit, Anda harus melihat alur kerja aktif di repository.
Mulai aliran kerja
Push perubahan baru ke cabang main atau development Bagaimana cara memulai aliran kerja?

atau

Dimulai dengan komit
Sesudah beberapa menit, hasil build harus tersedia di dashboard App Store Connect Anda.
Dashboard Testflight
Apakah bisa mengdeploy dari mesin lokal?
Iya, Anda bisa, dan itu sangat mudah sekali saja. my_project_path/fastlane path sebuah file yang bernama .env, hanya di path yang sama dengan Fastfile, untuk dapat membuat property yang sama seperti secret properti yang ditemukan di _GitHub, seperti yang terlihat di bawah ini:
file .env untuk deploy dari mesin lokal
Sekarang, Anda dapat pergi ke terminal dan menjalankan Fastlane dari mesin Anda:
fastlane closed_beta
❌ Informasi penting tentang file .env file, karena kami tidak ingin mengungkapkan data ini, kami harus menambahkannya ke file .gitignore, seperti itu: ❌
fastlane/*.env
Harusnya berfungsi sama seperti halnya ketika Anda menjalankan GitHub Actions di mesin jarak jauh, tetapi di mesin lokal Anda. 🍻

Eksekusi Terminal: $ Fastlane closed_beta
Jika Anda telah mencapai tahap ini, selamat, Anda telah memiliki proses otomatisasi yang lengkap untuk aplikasi iOS Anda dengan Fastlane dan GitHub Actions.
Masing-masing kali Anda mengirimkan komit baru, rilis akan dibangun di Google Play Console, saluran beta. Saya akan memperbaiki blog ini dengan umpan balik Anda, jika Anda memiliki pertanyaan atau saran, silakan hubungi saya melalui email martin@capgo.app
Bangun di perangkat Anda
Jika Anda masih perlu membangun di perangkat Anda, Anda perlu menambahkannya secara manual ke pengaturan provisi.
Cari menu perangkat iOS
Cari identifikasi iOS
fastlane register_new_device
Dan kemudian mulai perintah:

Jika Anda mengalami masalah
Jika Anda mengalami masalah dengan perangkat pengembang yang tidak dapat diuji, dll, biasanya masalah tersebut dapat diatasi.
Ada perintah ajaib yang dapat menyelamatkan Anda:
fastlane match nuke development
fastlane match development
Kemudian : Bersihkan proyek dengan menekan Shift(⇧)+Command(⌘)+K atau memilih Product > Bersihkan (mungkin terlabel “Folder Bersih Build”)
Kemudian coba jalankan aplikasi lagi di perangkat Anda.
Saya berterima kasih.
Blog ini didasarkan pada artikel berikut:
- Pengiriman terus-menerus untuk IOS menggunakan Fastlane dan GitHub aksi
- Dokumentasi Fastlane
- Pesan GitHub ini dari @mrogunlana
Teruskan dari Automatic Capacitor build IOS otomatis dengan GitHub aksi menggunakan match
Jika Anda menggunakan Automatic Capacitor build IOS otomatis dengan GitHub aksi menggunakan match untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD Untuk alur kerja produk dalam Capgo CI/CD, Capgo Native Builds Untuk alur kerja produk dalam Capgo Pembangunan Asli. Capgo Integrations Untuk alur kerja produk di Capgo Integrations, Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD, dan Integrasi GitHub Aksi Untuk detail implementasi di GitHub Integrasi Aksi.