Kami mengotomatiskan perakitan aplikasi iOS menggunakan Fastlane


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 #   brew $ brew cask install fastlane 

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 # Actions end end 

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 .

Source: https://habr.com/ru/post/id424023/


All Articles