Seberapa sering kita pengembang iOS harus membangun aplikasi untuk mengunduh iTunes Connect App Store Connect ? Selama fase pengujian beta aktif pada aplikasi, Anda harus memperbaiki bug dengan cepat dan mengirimkan unit yang diperbarui untuk pengujian. Juga diperlukan untuk mengunduh sertifikat, profil Provision, klik pada banyak tanda centang dan tombol yang berbeda untuk setiap bangunan baru.
Untungnya, ada alat yang luar biasa seperti fastlane yang membantu kami mengotomatiskan tindakan manual pengembang seluler.
Dalam posting ini saya akan memberi tahu Anda apa fastlane itu dan bagaimana cara cepat menggunakannya di proyek iOS Anda.
Pendahuluan
Apa ini
Fastlane adalah alat untuk mengotomatisasi perakitan dan meletakkan proses aplikasi iOS dan Android seluler, yang juga mencakup menghasilkan tangkapan layar , menjalankan pengujian Unit / UI , mengirim pesan ke Slack , menghubungkan ke Crashlytics dan banyak hal berguna lainnya yang membuat hidup lebih mudah.
Apa untungnya?
Akan diperlukan tidak lebih dari dua jam untuk awalnya mengkonfigurasi perintah-perintah dasar untuk mengotomatisasi tata letak aplikasi, misalnya, untuk penerbitan di App Store atau TestFlight, namun, ini akan menghemat banyak waktu di masa depan, karena seluruh proses akan diluncurkan dalam satu panggilan dari baris perintah.
PERHATIAN: Langganan Pengembang Apple diperlukan untuk menyelesaikan semua langkah, karena akses ke App Store Connect tidak tersedia untuk akun gratis.
Instalasi
Instal fastlane itu sendiri
Untuk memulai, instal / tingkatkan ke versi terbaru dari Alat Perintah Xcode:
$ xcode-select --install
Pasang gem fastlane:
$ sudo gem install fastlane -NV
Tambahkan ke proyek
Di direktori root proyek, jalankan:
$ sudo fastlane init
Fastlane akan menawarkan kepada kita opsi untuk skrip pra-instal tergantung pada apa yang kita inginkan:

Kami akan memilih opsi 4, sebagai kami akan meresepkan semua perintah yang diperlukan untuk situasi kami:

Selesai! Folder fastlane dan gemfile telah berhasil diinstal di proyek kami.
Sebelum kita melanjutkan
Jika profil shell lokal bukan UTF-8 , maka akan ada masalah dengan bangunan dan pemuatan bangunan. Kami masuk ke file profil shell Anda ( ~ / .bashrc , ~ / .bash_profile , ~ / .profile atau ~ / .zshrc ) dan tambahkan baris berikut:
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
Sekarang Anda siap untuk menulis langkah-langkah langsung untuk mengotomatisasi perakitan.
Bagaimana cara kerjanya
Pertama, cari tahu apa yang dilakukan fastlane: perintah utamanya dan bagaimana kami menggambarkan apa yang perlu dilakukan.
Perintah (Tindakan)
Fastlane hadir dengan banyak perintah berguna yang membuat hidup lebih mudah bagi pengembang:
- cert : otomatis mengunduh dan menginstal sertifikat yang diperlukan (Distribusi, Pengembangan) untuk menandatangani aplikasi yang dikumpulkan;
- increment_build_number : meningkatkan nomor build dengan 1, atau mengubah nilai yang ditentukan dalam parameter build_number
- sigh : secara otomatis mengunduh dan menginstal semua profil ketentuan yang diperlukan;
- snapshot : menjalankan tes UI dan mengambil tangkapan layar yang dapat digunakan saat mengirim untuk ditinjau di App Store;
- gym : mengumpulkan arsip dan, di sini, ipa akhir dari aplikasi Anda;
- memindai : semuanya sederhana - meluncurkan target pengujian;
- mengirimkan : mengirim ipa, tangkapan layar, metadata langsung ke App Store;
- pilot : mengunggah uji ipa ke beta segar di TestFlight. Anda juga dapat mengelola penguji dengan perintah ini.
- dan banyak lainnya
File cepat
Folder fastlane berisi Fastfile dan Appfile . Di Appfile, kami akan meresepkan nilai-nilai yang diperlukan untuk perakitan dan publikasi: ID Bundel, ID Aplikasi, ID Tim, dan lainnya. Di Fastfile kami akan menjelaskan skrip kami. Setelah instalasi awal, terlihat seperti ini:
default_platform(:ios) platform :ios do desc "Description of what the lane does" lane :custom_lane do # add actions here: https://docs.fastlane.tools/actions end end
- default_platform (: ios) - atur platform default agar tidak menentukannya dari baris perintah.
- platform: ios do ... end - "jalur" untuk platform iOS dijelaskan di sini.
- desc "Deskripsi apa yang dilakukan jalur" - deskripsi singkat tentang "jalur". Daftar semua "jalur" dengan deskripsi dapat dilihat menggunakan perintah
$ fastlane lanes
. - lane: custom_lane do ... end : Lane (path, strip) adalah, lebih sederhana, metode. Ini memiliki nama, parameter, dan tubuh. Di dalam tubuh, kita akan memanggil perintah yang perlu kita bangun, lay out, jalankan tes, dll. Jalur dipanggil dari baris perintah dengan memanggil
$ fastlane [lane_name] [parameters]
. Dengan panggilan salah satu jalur, langkah otomatis dimulai.
Otomatis unggah ke TestFlight
Mari kita mulai dengan menetapkan nama yang ramah untuk jalur kita. Ganti nama custom_lane menjadi testflight_lane . Sekarang sudah jelas bahwa hasil dari mengeksekusi skrip ini akan menjadi rakitan baru yang dimuat di TestFlight .
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do
Konfigurasikan Appfile
Agar tidak memasukkan bundel aplikasi dan ID Apple setiap kali Anda menjalankan skrip, tulis di Appfile :
app_identifier "ru.ee.shishko.TheHatGame" apple_id "ee.shishko@gmail.com"
Sertifikat dan Profil Penyediaan
Tambahkan perintah cert dan sigh untuk masing-masing menginstal sertifikat dan profil ketentuan:
( Perhatian : jika aplikasi Anda tidak ada di App Store Connect, maka Anda perlu menambahkan perintah hasil dengan parameter app_name )
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do # App Store Connect: # produce ( # app_name: "MyAppName" # ) cert sigh end end
Jalankan skrip kami menggunakan perintah $ fastlane testflight_lane
Saat memulai Fastlane akan meminta kami memasukkan kata sandi untuk akun tersebut, masukkan. Ini akan diperlukan hanya sekali - fastlane akan mengingatnya dan Anda tidak perlu memasukkan apa pun pada peluncuran berikutnya.
Ini adalah seperti apa output ketika fastlane berhasil menyelesaikan skrip:

Sekarang sertifikat dan profil penyediaan diunduh dan diinstal. Tetap untuk meletakkan target yang diinginkan dalam kontribusi Umum:

Bangun aplikasi
Tambahkan perintah increment_build_number untuk menambah nomor build. Jika file .xcodeproj utama Anda tidak ada di folder root, maka tentukan path untuknya di parameter xcodeproj :
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number # .xcodeproj , : # # increment_build_number( # xcodeproj: "./path/to/MyApp.xcodeproj" # ) end end
Untuk menambah nomor build, buka Build Settings / Versioning dan atur Sistem Versioning di Apple Generic dan Versi Proyek Saat Ini menjadi 1 :

Tambahkan perintah gym , yang mengumpulkan file ipa dari aplikasi kita:

Di antara parameter Anda dapat menentukan di mana ipa ( output_directory ), nama ipa ( output_name ), skema ( skema ) akan diletakkan, apakah akan melakukan Bersihkan ( bersih ) dan beberapa lainnya. Kami tidak akan menentukan apa pun di parameter - fastlane akan menetapkan parameter secara default, mengumpulkan dan menandatangani ipa, tetapi sekali lagi: jika diinginkan dan perlu, semuanya dapat ditentukan secara detail:
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym # : # # gym( # workspace: "TheHatGame.xcworkspace", # scheme: "TheHatGame", # configuration: "Release", # clean: true, # output_directory: "./build", # output_name: "TheHatGame.ipa", # codesigning_identity: "iPhone Distribution: Evgeny Shishko" # ) end end
Unggah ke TestFlight
Untuk memuat ipa ke dalam TestFlight kami akan menggunakan Pilot :

Dengan Pilot Anda dapat:
- Unduh dan distribusikan majelis
- menambah dan menghapus penguji beta;
- menerima informasi tentang penguji dan perangkat yang mereka gunakan;
- ekspor informasi penguji ke .csv untuk mengimpornya ke proyek lain.
Kami akan menggunakan fungsi utamanya: mengirim majelis ke Apple Store Connect .
Tambahkan test_light uploadlto call upload_to_testflight dengan parameter skip_submission (kami hanya akan menggunakannya untuk mengunggah file ipa) dan skip_waiting_for_build_processing (kami tidak menunggu pemrosesan selesai):
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym upload_to_testflight( skip_submission: true, skip_waiting_for_build_processing: true ) end end
Jalankan skrip terakhir
Kami menyimpan perubahan kami dan lari dari konsol:
$ fastlane testflight_lane
Pada tahap pengiriman ke testflight, Anda harus memasukkan kata sandi khusus aplikasi di konsol (yang diperlukan untuk otorisasi di Application Loader ). Anda dapat menemukannya di akun Apple ID Anda dengan membuatnya dengan mengklik "Buat Kata Sandi":

Setelah memasukkan kata sandi, perakitan baru akan berhasil dimuat ke dalam TestFlight dan fastlane akan berakhir di sana:

Status versi baru dapat dilihat di App Store Connect:

Kesimpulan
Itu saja! Saya ingin menarik perhatian pada fakta bahwa dalam artikel ini, dalam kasus yang paling umum, kami mencoba kemampuan fastlane. Dalam hal ini, saya melampirkan survei: apakah Anda, Khabrovites, akan tertarik pada posting tentang penggunaan rinci perintah yang disebutkan dan berguna lainnya dalam fitur fastlane dan lanjutan dalam mengatur skrip?
Aplikasi dengan pengaturan fastlane yang disajikan dapat ditemukan di sini .