Berikut adalah terjemahan teks ke dalam bahasa Indonesia:
Pengiriman Berkelanjutan untuk iOS menggunakan Fastlane dan GitHub Actions dan sertifikat
Prasyarat
Sebelum melanjutkan tutorial ini…
- Pastikan Anda telah menginstal Fastlane di mesin pengembangan Anda
- Keanggotaan program pengembang iOS
- Keinginan untuk membaca 😆…
Penting tentang harga
https://githubcom/features/actions
Layanan ini ‘gratis’ hingga batas tertentu, tergantung pada mesin yang dipilih Kita akan menggunakan mesin macOS, Anda dapat melihat harga dan batasannya di tangkapan layar (harga pada saat pembuatan tutorial, dapat berubah di masa mendatang)
🔴 Setelah diperingatkan tentang persyaratan dan harga, jika Anda suka, kita lanjutkan…
📣 Dalam postingan ini kita mengasumsikan bahwa kita telah membuat aplikasi di iTunes Connect, kita memiliki sertifikat dari ekosistem Apple, semuanya akan disalin oleh Fastlane!
Mari kita mulai 🧑🏽💻
Langkah-langkah yang akan diikuti dalam postingan ini
- Menggunakan API App Store Connect dengan Fastlane
- Persyaratan
- Membuat Kunci API App Store Connect
- Menggunakan Kunci API App Store Connect
- Menyalin file Fastlane
- Mengonfigurasi GitHub Actions
1. Menggunakan API App Store Connect dengan Fastlane
Mulai Februari 2021, autentikasi dua faktor atau verifikasi dua langkah diharuskan untuk semua pengguna yang masuk ke App Store Connect. Lapisan keamanan tambahan ini untuk Apple ID Anda memastikan bahwa hanya Anda yang dapat mengakses akun Anda. Dari Apple Support
Persyaratan
Untuk dapat menggunakan API App Store Connect, Fastlane membutuhkan 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
2 — Pilih Users and Access
3 — Pilih tab API Keys
4 — Klik Generate API Key atau tombol Tambah (+)
5 — Masukkan nama untuk kunci tersebut. Nama ini hanya untuk referensi Anda dan bukan bagian dari kunci itu sendiri
6 — Di bawah Access, pilih peran untuk kunci tersebut. Peran yang berlaku untuk kunci sama dengan peran yang berlaku untuk pengguna di tim Anda. Lihat izin peran. Kami menyarankan untuk memilih App management
7 — Klik Generate
Akses kunci API tidak dapat dibatasi untuk aplikasi tertentu
Nama kunci baru, ID kunci, tautan unduhan, dan informasi lainnya muncul di halaman
Anda dapat mengambil ketiga informasi yang diperlukan di sini: <1> ID Penerbit <2> ID Kunci <3> Klik “Download API Key” untuk mengunduh kunci pribadi API Anda. Tautan unduhan hanya muncul jika kunci pribadi belum pernah diunduh. Apple tidak menyimpan salinan kunci pribadi. Jadi, Anda hanya dapat mengunduhnya satu kali
🔴 Simpan kunci pribadi Anda di tempat yang aman. Anda tidak boleh membagikan kunci Anda, menyimpan kunci di repositori kode, atau menyertakan kunci dalam kode sisi klien
Menggunakan Kunci API App Store Connect
File Kunci API (file p8 yang Anda unduh), ID kunci, dan ID penerbit diperlukan untuk membuat token JWT untuk otorisasi. Ada beberapa cara informasi ini dapat dimasukkan ke Fastlane menggunakan aksi baru Fastlane, app_store_connect_api_key
. Anda dapat mempelajari cara lainnya di dokumentasi FastlaneSaya menunjukkan metode ini karena menurut saya ini adalah cara termudah untuk bekerja dengan sebagian besar CI di luar sana, di mana Anda dapat mengatur variabel lingkungan
Sekarang kita dapat mengelola Fastlane dengan kunci API App Store Connect, bagus!
Membuat sertifikat dan profil penyediaan
Sertifikat
Buka XCode dan pergi ke Pengaturan > Akun > Apple ID > Tim dan pilih tim Anda
Klik pada Kelola sertifikat > + dan pilih Apple Distribution
Kemudian Anda dapat membuat sertifikat baru
Lalu Anda perlu pergi ke keychain untuk mengunduh sertifikat sebagai file p12
Untuk melakukannya, Anda perlu pergi ke keychain beralih ke keychain login dan kemudian tab Sertifikat Saya
Kemudian Anda dapat memilih sertifikat yang ingin Anda unduh (Lihat berdasarkan tanggal sertifikat)
Dan kemudian klik kanan pada sertifikat dan pilih Ekspor
Pilih format file Personal Information Exchange (p12)
Itu akan mengunduh sertifikat sebagai file p12
Profil penyediaan
Buka Apple Developer dan pilih tim yang benar
Kemudian buat profil baru, dengan mengklik +
Dan pilih App Store Connect
Kemudian Anda perlu memilih aplikasi yang benar, berhati-hatilah Anda tidak dapat menggunakan wildcard karena penandatanganan akan gagal
Pilih sertifikat yang benar yang Anda buat sebelumnya (cari tanggal kedaluwarsa yang seharusnya sama hari dan bulan dengan hari ini) dan klik Lanjutkan
Terakhir masukkan nama profil dan klik Hasilkan
Nama akan digunakan untuk mengidentifikasi profil di Fastlane, di bawah nilai
APPLE_PROFILE_NAME
Anda dapat mengunduh profil sebagai file mobileprovision
Membuat rahasia GitHub untuk sertifikat dan profil penyediaan Anda
Proses penandatanganan melibatkan penyimpanan sertifikat dan profil penyediaan, mentransfernya ke runner, mengimpornya ke keychain runner, dan menggunakannya dalam build Anda
Buat rahasia di repositori atau organisasi Anda untuk item-item berikut:
-
Sertifikat penandatanganan Apple Anda
-
Ini adalah file sertifikat
p12
Anda. Untuk informasi lebih lanjut tentang mengekspor sertifikat penandatanganan Anda dari Xcode, lihat dokumentasi Xcode -
Anda harus mengonversi sertifikat Anda ke Base64 saat menyimpannya sebagai rahasia. Dalam contoh ini, rahasia tersebut diberi nama
BUILD_CERTIFICATE_BASE64
-
Gunakan perintah berikut untuk mengonversi sertifikat Anda ke Base64 dan menyalinnya ke clipboard Anda:
-
-
Kata sandi untuk sertifikat penandatanganan Apple Anda
- Dalam contoh ini, rahasia tersebut diberi nama
P12_PASSWORD
- Dalam contoh ini, rahasia tersebut diberi nama
-
Profil penyediaan Apple Anda
-
Untuk informasi lebih lanjut tentang mengekspor profil penyediaan Anda dari Xcode, lihat dokumentasi Xcode
-
Anda harus mengonversi profil penyediaan Anda ke Base64 saat menyimpannya sebagai rahasia. Dalam contoh ini, rahasia tersebut diberi nama
BUILD_PROVISION_PROFILE_BASE64
-
Gunakan perintah berikut untuk mengonversi profil penyediaan Anda ke Base64 dan menyalinnya ke clipboard Anda:
-
2. Salin file Fastlane
Fastlane adalah pustaka Ruby yang dibuat untuk mengotomatisasi tugas-tugas pengembangan mobile yang umum. Menggunakan Fastlane, Anda dapat mengonfigurasi “lane” khusus yang menggabungkan serangkaian “aksi” yang melakukan tugas-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.Berikut adalah terjemahan teks ke dalam bahasa Indonesia:
Buat folder Fastlane di root proyek Anda dan salin file-file berikut: Fastfile
Pemrosesan Build
Di GitHub Actions, Anda ditagih berdasarkan menit yang telah Anda gunakan untuk menjalankan alur kerja CI/CD Anda. Berdasarkan pengalaman, dibutuhkan sekitar 10-15 menit sebelum build dapat diproses di App Store Connect.
Untuk proyek pribadi, perkiraan biaya per build bisa mencapai $0,08/menit x 15 menit = $1,2, atau lebih, tergantung pada konfigurasi atau dependensi proyek Anda.
Jika Anda memiliki kekhawatiran yang sama tentang harga seperti saya untuk proyek pribadi, Anda dapat membiarkan skip_waiting_for_build_processing
tetap true
.
Apa kekurangannya? Anda harus memperbarui kepatuhan aplikasi Anda secara manual di App Store Connect setelah build selesai diproses, agar dapat mendistribusikan build kepada pengguna Anda.
Ini hanya parameter opsional yang dapat diperbarui jika Anda ingin menghemat menit build untuk proyek pribadi. Untuk proyek gratis, ini seharusnya tidak menjadi masalah sama sekali. Lihat harga
3. Menyiapkan GitHub Actions
Konfigurasi GitHub secrets
Pernah bertanya-tanya dari mana nilai ENV
berasal? Yah, itu bukan rahasia lagi - itu berasal dari secret proyek Anda 🤦
-
APP_STORE_CONNECT_TEAM_ID
- ID tim App Store Connect Anda jika Anda berada di beberapa tim -
PROVISIONING_PROFILE_SPECIFIER
-match AppStore <YOUR_APP_BUNDLE_IDENTIFIER>
, misalnyamatch AppStore com.domain.blabla.demo
-
BUILD_CERTIFICATE_BASE64
- Sertifikat yang di-encode Base64 -
BUILD_PROVISION_PROFILE_BASE64
- Profil provisioning yang di-encode Base64 -
BUNDLE_IDENTIFIER
- pengenal bundle aplikasi Anda -
APPLE_KEY_ID
— App Store Connect API Key 🔺Key ID -
APPLE_ISSUER_ID
— App Store Connect API Key 🔺Issuer ID -
APPLE_KEY_CONTENT
— App Store Connect API Key 🔺 Konten kunci p8, periksa ini
4. Konfigurasi file alur kerja GitHub
Buat direktori alur kerja GitHub
Di dalam folder workflow
, buat file bernama build-upload-ios.yml
dan tambahkan yang berikut
Alur kerja ini harus dipicu setelah setiap tag GitHub, jika Anda perlu mengotomatisasi tag, silakan lihat Pembangunan dan rilis otomatis dengan GitHub actions terlebih dahulu.
Kemudian alur kerja ini akan menarik dependensi NodeJS Anda, menginstalnya, dan membangun aplikasi JavaScript Anda.
Setiap kali Anda mengirim commit baru, rilis akan dibangun di TestFlight
Aplikasi Anda tidak perlu menggunakan Ionic, hanya basis Capacitor yang wajib, dapat memiliki modul Cordova lama, tetapi plugin Capacitor JS harus diutamakan.
5. Memicu alur kerja
Buat Commit
Buat commit, Anda akan melihat alur kerja aktif di repositori.
Memicu alur kerja
Dorong commit baru ke cabang main
atau development
untuk memicu alur kerja.
Setelah beberapa menit, build seharusnya tersedia di dasbor App Store Connect Anda.
Bisakah deploy dari mesin lokal?
Ya, Anda bisa, dan itu sangat mudah.
Anda dapat menggunakan Xcode untuk membangun dan menandatangani aplikasi Anda, seperti biasa.
Terima kasih
Blog ini didasarkan pada artikel-artikel berikut: