Fastlane: ระบบอัตโนมัติของ iOS บนระบบควบคุมความเร็วอัตโนมัติ

เผยแพร่แล้ว: 2022-03-11

การสร้างซอฟต์แวร์สำหรับ iOS เป็นมากกว่าการเขียนโค้ด Objective-C หรือ Swift: มันเกี่ยวข้องกับการรู้ว่า UIKit ทำงานอย่างไร วิธีสร้างใบรับรอง วิธีเผยแพร่แอพของคุณไปยังร้านค้า วิธีจัดการกับรีวิวแอพ และอื่นๆ หากคุณพบว่ารายการงานนิรันดร์นี้น่าเบื่อหน่าย ระบบอัตโนมัติบางอย่างในเวิร์กโฟลว์ของคุณก็เป็นสิ่งที่คุณต้องการอย่างแท้จริง

พบกับ Fastlane เครื่องมือที่ออกแบบมาเพื่อช่วยคุณประหยัดเวลานาทีหรือชั่วโมงในการปรับใช้แต่ละครั้ง

จัดส่งอัตโนมัติด้วย Fastlane iOS

Fastlane ช่วยให้คุณทำให้กระบวนการส่งรุ่นเบต้าไปยัง Crashlytics, TestFlight, App Store และอีกมากมายเป็นไปโดยอัตโนมัติ

ในบทความนี้ คุณจะได้เรียนรู้วิธีที่คุณสามารถใช้ Fastlane เพื่อทำให้เวิร์กโฟลว์การปรับใช้แอป iOS ของคุณเป็นไปโดยอัตโนมัติ แม้ว่าเราจะเน้นที่ด้าน iOS ของเครื่องมือนี้ แต่ Fastlane ก็ทำงานได้ดีพอๆ กันสำหรับการพัฒนาระบบอัตโนมัติของ Android

เริ่มต้นใช้งาน Fastlane

มีวิธีการติดตั้งหลายวิธีที่คุณสามารถเลือกได้ ขึ้นอยู่กับสิ่งที่คุณคิดว่าง่ายที่สุด หากคุณติดตั้งและกำหนดค่า Homebrew ไว้ การติดตั้ง Fastlane จะใช้เวลาเพียงคำสั่งเดียว:

 brew cask install fastlane

มิฉะนั้น Fastlane เป็นเครื่องมือที่ใช้ Ruby gem ก็เป็นตัวเลือกเสมอ:

 sudo gem install fastlane -NV

หรือคุณสามารถดาวน์โหลด Fastlane ได้จากเว็บไซต์ทางการ

เมื่อคุณติดตั้ง Fastlane แล้ว ให้รัน fastlane init ในไดเร็กทอรีโครงการของคุณและทำตามคำแนะนำ

การทำให้ใช้งานได้อัตโนมัติ

เมื่อติดตั้ง Fastlane แล้ว ตอนนี้คุณสามารถเขียนสคริปต์ Ruby เพื่อระบุสิ่งที่คุณต้องทำทีละขั้นตอนเพื่อปรับใช้ในที่ที่คุณต้องการ ทำได้โดยใช้การกระทำ เครื่องมือ และเลน

เครื่องมือ การดำเนินการ และปลั๊กอิน Fastlane

Fastlane ทำงานโดยมีเครื่องมือเป็นแกนหลักที่ช่วยคุณสร้างแอป นอกเหนือจากเครื่องมือสร้างแล้ว ยังมีการผสานรวมในตัวมากกว่า 170 รายการกับบริการต่างๆ เช่น Crashlytics, HockeyApp, TestFlight และปลั๊กอินอื่นๆ ที่บุคคลที่สามสร้างและเผยแพร่ คุณจึงสามารถเชื่อมต่อกับบริการอื่นๆ และอื่นๆ ได้

ที่แกนหลัก คุณจะได้รับเครื่องมือหลักที่ช่วยให้คุณทำงานต่างๆ ได้ ตั้งแต่การถ่ายภาพหน้าจออัตโนมัติไปจนถึงการจัดเฟรมภาพและการอัปโหลดไปยังร้านค้า มันช่วยให้คุณทำการทดสอบทั้งหมดของคุณโดยอัตโนมัติก่อนสร้างแอป

การดำเนินการเป็นเครื่องมือหลักที่ Fastlane มี และปลั๊กอินเป็นวิธีเพิ่มการดำเนินการของบุคคลที่สามในการตั้งค่า Fastlane ของคุณ

เลน

Fastlane ใช้เลนที่จัดกลุ่มรายการการกระทำหรือปลั๊กอินตามลำดับเป็นหลัก เพื่อให้คุณได้ผลลัพธ์เดียวกันทุกครั้ง

เมื่อเรียกใช้เลน การดำเนินการแต่ละรายการจะส่งออกตัวแปรสภาพแวดล้อม และการดำเนินการต่อไปนี้จะทำให้ตัวแปรเหล่านี้ทำงานต่อไปโดยอัตโนมัติ ตัวอย่างเช่น การใช้การดำเนินการ gym จะส่งผลให้มีการสร้างเส้นทางของไฟล์ .ipa และการใช้ crashlytics จะเข้าถึงตำแหน่ง .ipa นี้เพื่ออัปโหลดไฟล์นี้ไปยังระบบการกระจายบริการเบต้า

การใช้ Fastlane กับ iOS

คุณกำลังเริ่มต้นด้วยไคลเอนต์ Toptal ใหม่ที่ต้องการแอพที่ง่ายมาก การออกแบบเสร็จสิ้นแล้ว และสามารถเขียนโค้ดแอปได้ในอีกไม่กี่สัปดาห์ข้างหน้า ขั้นตอนต่อไปคือการเริ่มเขียนโค้ด และในระหว่างกระบวนการวนซ้ำ คุณจะต้องส่งแอปเบต้าไปยังไคลเอ็นต์ทุกสองสัปดาห์เพื่อให้ลูกค้าสามารถเห็นความคืบหน้าและให้ข้อเสนอแนะเกี่ยวกับวิธีการทำงานของสิ่งต่างๆ

ทุกครั้งที่คุณส่งรุ่นเบต้าไปยังไคลเอนต์ คุณจะต้องผ่านรายการตรวจสอบพื้นฐาน: การลงชื่อแอป การอัปโหลดไปยังบริการเบต้า การเพิ่มเวอร์ชันใหม่เข้าไป ฯลฯ เพิ่มสิ่งที่คุณต้องทำ หนึ่งครั้ง (ทุกปี): การลงนามในใบรับรอง การลงนามในใบรับรองการแจ้งเตือนแบบพุช (หากจำเป็น) และอื่นๆ

ด้วย Fastlane สิ่งเหล่านี้สามารถเกิดขึ้นได้โดยอัตโนมัติ!

กำลังส่งไปที่ Crashlytics Beta

ตัวอย่างเช่น คุณต้องสร้างใบรับรองการลงนามและโปรไฟล์การจัดสรรเพื่อแชร์แอปของคุณผ่าน Crashlytics Beta

Fastlane มีการดำเนินการที่เรียกว่า match ซึ่งเมื่อคุณตั้งค่าแล้ว ให้ทำดังต่อไปนี้:

  1. สร้างใบรับรองการลงนามแจกจ่าย
  2. สร้างโปรไฟล์การจัดเตรียมเฉพาะ (แนบกับใบรับรองจาก #1)
  3. บันทึกใบรับรองและโปรไฟล์จาก #1 และ #2 ไปยังที่เก็บ Git ที่เข้ารหัสโดยใช้ OpenSSL

การตั้งค่าทำได้ง่าย

ขั้นแรก เรียกใช้ fastlane match init เพื่อเริ่มต้น และเมื่อคุณตั้งค่า Git repo ของคุณ เพียงเรียก fastlane match adhoc เพื่อรับโปรไฟล์การจัดเตรียมเฉพาะกิจ หรือเรียกใช้ fastlane match appstore เพื่อรับใบรับรอง App Store

ข้อดีของการใช้ match คือคุณสามารถซิงค์ใบรับรองระหว่างคอมพิวเตอร์และระหว่างเพื่อนร่วมทีมได้อย่างง่ายดายโดยไม่ต้องเพิกถอนใบรับรองอีกต่อไปและความเร็วที่คุณได้รับ เพียงแค่เรียกใช้ fastlane match appstore คุณจะได้รับใบรับรองในไม่กี่วินาที

ตอนนี้เรามีใบรับรองและการจัดเตรียมที่เราต้องการแล้ว มาเปิดตัว Crashlytics กัน

ขั้นตอนการทำงานทั่วไปในการส่งแอปของคุณไปยัง Crashlytics ของ Fabric ประกอบด้วยขั้นตอนต่อไปนี้:

  1. สร้างใบรับรองการลงนามแจกจ่าย
  2. สร้างโปรไฟล์การจัดเตรียมเฉพาะ (แนบกับใบรับรองจาก #1)
  3. ตั้งค่าแอปของคุณให้ใช้โปรไฟล์การจัดสรรจาก #2
  4. เก็บถาวรแอปของคุณ
  5. เปิด Fabric และทำตามขั้นตอนเพื่อส่งแอปไปยังผู้ทดสอบเบต้า

Fastlane แทนที่งานบ้านด้วยสิ่งนี้:

 platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end

ตอนนี้ การรัน fastlane beta จากเทอร์มินัลของคุณ จะเป็นการเปิดสคริปต์นี้

การดำเนินการนี้จะเรียก match ครั้งแรก การดำเนินการที่จัดการการสร้างและอัปเดตใบรับรองการลงนามและโปรไฟล์การจัดเตรียม จากนั้นเรียก gym การดำเนินการที่สร้างและแพ็กเกจแอปสำหรับคุณโดยใช้ใบรับรองและโปรไฟล์เดียวกันที่สร้างก่อนหน้านี้ และสุดท้ายคือ crashlytics ซึ่งก็คือ กำลังจะนำ .ipa ที่ลงนามแล้วอัปโหลดไปยังบริการ Crashlytics

ขั้นตอนทั้งหมดเหล่านี้ถูกเรียกใช้ในลำดับเดียวกันเสมอ ทำให้ไฟล์ผลลัพธ์สามารถคาดเดาได้มากขึ้นและลดข้อผิดพลาด

 MacBook-Pro:TestProject user$ fastlane beta +------+-------------------------------------+-------------+ | fastlane summary | +------+-------------------------------------+-------------+ | Step | Action | Time (in s) | +------+-------------------------------------+-------------+ | 1 | Verifying required fastlane version | 0 | | 2 | match | 57 | | 3 | gym | 592 | | 4 | crashlytics | 195 | +------+-------------------------------------+-------------+ [20:25:13]: fastlane.tools just saved you 14 minutes!

นั่นคือการตั้งค่าพื้นฐานสำหรับวิธีเรียกใช้ Fastlane เพื่อส่งแอปของคุณไปยัง Crashlytics อะไรอีกที่เราสามารถทำได้โดยอัตโนมัติ?

การเพิ่มเวอร์ชันบิลด์

ตัวอย่างเช่น เราสามารถตั้งค่าว่าทุกครั้งที่เราส่งเบต้า เราต้องการเพิ่มหมายเลขเวอร์ชันบิลด์

ซึ่งสามารถทำได้โดยใช้การกระทำที่เรียกว่า increment_build_number ที่สามารถเรียกได้จากเทอร์มินัลโดย fastlane run increment_build_number หรือใช้อินไลน์ในเลนเบต้าของเรา:

 platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end

ยินดีด้วย! ตอนนี้คุณมีสคริปต์การปรับใช้อัตโนมัติที่เพิ่มหมายเลขเวอร์ชันบิลด์ของคุณ ข้อแม้เดียวคือ เมื่อคุณเรียกเลนนี้ คุณจะต้องเปลี่ยนไฟล์ในโปรเจ็กต์ของคุณ (หรืออย่างน้อย ไฟล์ที่มีหมายเลขบิลด์)

ในกรณีที่คุณวางแผนที่จะยอมรับการเปลี่ยนแปลงนั้นกับที่เก็บ มีการดำเนินการสำหรับสิ่งนั้น: commit_version_bump การดำเนินการนี้จะคอมมิตไฟล์ด้วยหมายเลขเวอร์ชันใหม่

 platform :ios do lane :beta do increment_build_number match(type: "adhoc") gym crashlytics commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end

การดำเนินการนี้จะคอมมิตไฟล์ที่มีข้อความยืนยันเช่น "Version Bump to 27"

Crashlytics ไปยัง TestFlight

ถ้าคุณมาไกลถึงขนาดนี้ คุณสามารถปรับใช้ Crashlytics แบบอัตโนมัติได้ในเวลาอันสั้นซึ่งจะช่วยคุณประหยัดเวลานับไม่ถ้วนในระยะยาว ส่วนที่ดีที่สุดคือ หากคุณต้องการส่งแอปของคุณไปที่ TestFlight แทน สิ่งที่คุณต้องทำคือเปลี่ยน crashlytics เป็น pilot

หรือคุณสามารถสร้างช่องทางแยกสำหรับสิ่งนั้น:

 platform :ios do lane :beta-testflight do increment_build_number match(type: "adhoc") gym pilot commit_version_bump( xcodeproj:"myProject.xcodeproj", ) end end

ระบบอัตโนมัติของ iOS ทำได้ง่าย

Fastlane ใช้งานง่ายและสะดวก แต่มันนำคุณค่าที่น่าอัศจรรย์มาสู่เวิร์กโฟลว์การพัฒนา iOS ปกติของคุณโดยช่วยคุณจากการทำสิ่งไร้สาระและชั่วโมงที่คุณจะต้องเสียไป

ฉันหวังว่าคุณจะพบว่าการแนะนำ Fastlane นี้มีประโยชน์ คุณสามารถดูเอกสารอย่างเป็นทางการเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ Fastlane โดยเฉพาะอย่างยิ่งรายการการดำเนินการ หากคุณกำลังมองหาแรงบันดาลใจบางอย่างเกี่ยวกับสิ่งที่คุณสามารถทำให้เป็นอัตโนมัติสำหรับโปรเจ็กต์ iOS ในปัจจุบันและต่อไปของคุณ