Fastlane: มันคืออะไร, ระบบอัตโนมัติของบิลด์และการเผยแพร่

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-02-13 เวลาอ่าน: 10 นาที

Fastlane เป็นเครื่องมือสำหรับการสร้างและเผยแพร่แอปพลิเคชันมือถือสำหรับ iOS และ Android โดยอัตโนมัติ Fastlane จัดการการเซ็นโค้ด การสร้าง การรันทดสอบ การสร้างภาพหน้าจอ และการอัปโหลดไปยัง App Store Connect และ Google Play Console มันเป็นมาตรฐานโดยพฤตินัยสำหรับ CI/CD ในการพัฒนามือถือ

ข้อสรุปหลัก

  • Fastlane ทำให้เป็นอัตโนมัติ ทั้งไปป์ไลน์การเผยแพร่มือถือ: สร้าง ทดสอบ เซ็น และเผยแพร่ด้วยคำสั่งเดียว
  • Fastfile คือไฟล์คอนฟิกูเรชันใน Ruby ที่อธิบาย lanes — สถานการณ์อัตโนมัติที่มีชื่อ
  • รองรับ iOS และ Android — Fastlane ทำงานร่วมกับ Xcode, Gradle, App Store Connect, Google Play, TestFlight และ Firebase
  • match และ sigh — การจัดการใบรับรองและ provisioning profiles สำหรับการพัฒนา iOS
  • การผสานรวม CI/CD — Fastlane ผสานรวมกับ GitHub Actions, GitLab CI, Bitrise, Jenkins และ CircleCI

Fastlane — มันคืออะไร

Fastlane เป็นเครื่องมือโอเพนซอร์สที่ทำให้งานประจำในการพัฒนามือถือเป็นอัตโนมัติ: การสร้างแอปพลิเคชัน การรันทดสอบ การสร้างภาพหน้าจอ การจัดการใบรับรอง และการอัปโหลดบิลด์ไปยัง TestFlight, App Store และ Google Play Fastlane เขียนด้วย Ruby และเผยแพร่ผ่าน RubyGems ด้วยคำสั่ง gem install fastlane

Fastlane ปรากฏในปี 2015 ในฐานะเครื่องมือ iOS แต่ขยายไปยัง Android อย่างรวดเร็ว วันนี้มันเป็นระบบนิเวศของ คำสั่ง หลายสิบรายการ — คำสั่งในตัวที่สามารถรวมกันเป็นสถานการณ์ที่เรียกว่า lanes แต่ละ lane ทำหน้าที่เฉพาะ: ตัวอย่างเช่น build_release สร้างเวอร์ชันเผยแพร่ และ deploy_beta อัปโหลดบิลด์ไปยัง TestFlight

Fastlane ถูกใช้โดยบริษัทอย่าง Uber, Airbnb, Snapchat, Twitter และ Shopify จากการสำรวจในปี 2024 นักพัฒนา iOS มากกว่า 60% ใช้ Fastlane ในโปรเจกต์ของพวกเขา เครื่องมือรองรับทั้งการทำงานในเครื่องและการผสานรวมกับระบบ CI คลาวด์ ทำให้มันเป็นมาตรฐานโดยพฤตินัยสำหรับ CI/CD มือถือ

ruby
# การติดตั้ง Fastlane
sudo gem install fastlane -NV

# การเริ่มต้นในโปรเจกต์
fastlane init

หลังจากการเริ่มต้น Fastlane จะสร้างไดเรกทอรี fastlane/ ที่มีสามไฟล์: Fastfile (สถานการณ์), Appfile (การตั้งค่าแอป) และ Matchfile (การตั้งค่าใบรับรอง) โครงสร้างนี้ยังคงเหมือนเดิมสำหรับทั้งสองแพลตฟอร์ม — iOS และ Android

Fastfile และ lanes

ไฟล์คอนฟิกูเรชันหลักของ Fastlane คือ Fastfile มันอยู่ในไดเรกทอรี fastlane/ ที่รากของโปรเจกต์ Fastfile เขียนด้วย Ruby: แต่ละ lane คือบล็อกที่มีชื่อพร้อมลำดับของคำสั่ง lane สามารถรับพารามิเตอร์ เรียก lanes อื่น และส่งค่ากลับได้

ruby
# fastlane/Fastfile — ตัวอย่างสำหรับ iOS
default_platform(:ios)

platform :ios do
  desc "Build and upload to TestFlight"
  lane :beta do
    match(type: "appstore")
    gym(scheme: "MyApp", configuration: "Release")
    pilot(skip_waiting_for_build: true)
  end

  desc "Deploy to App Store"
  lane :release do
    ensure_git_status_clean
    match(type: "appstore")
    gym(scheme: "MyApp")
    deliver(
      skip_metadata: true,
      skip_screenshots: true
    )
    push_to_git_remote(tags: true)
  end
end

แต่ละ lane ถูกเรียกใช้ด้วยคำสั่ง fastlane ios beta หรือ fastlane ios release Fastfile รองรับตัวแปร เงื่อนไข ลูป และการเรียกสคริปต์ภายนอก — มันคือไฟล์ Ruby ที่สมบูรณ์ นักพัฒนาสามารถนำโค้ดกลับมาใช้ใหม่ผ่าน private_lane (เมธอดภายใน) และ import จาก Fastfile อื่น

Fastlane มี คำสั่ง ในตัวมากกว่า 200 รายการสำหรับงานส่วนใหญ่ หากไม่มีคำสั่งที่ต้องการ คุณสามารถเขียนเองใน Ruby หรือเรียกคำสั่งเชลล์ผ่าน sh("...") คำสั่งสามารถรับพารามิเตอร์ — การตั้งค่าบิลด์ เส้นทาง โทเคนการเข้าถึง — และส่งคืนผลลัพธ์สำหรับใช้ในขั้นตอนถัดไป

ระบบอัตโนมัติของบิลด์ iOS

Fastlane สำหรับ iOS แก้ปัญหาหลักสามประการ: การจัดการใบรับรองและ provisioning profiles, การสร้าง IPA ผ่าน Xcode และการเผยแพร่ไปยัง App Store Connect และ TestFlight แต่ละงานเหล่านี้ครอบคลุมโดยคำสั่งแยกต่างหาก

match คือคำสั่งสำหรับการจัดการใบรับรอง มันเก็บใบรับรองและ provisioning profiles ทั้งหมดในที่เก็บ Git ที่เข้ารหัส นักพัฒนาและเซิร์ฟเวอร์ CI ทุกคนใช้ชุดไฟล์เดียวกัน ซึ่งช่วยขจัดข้อขัดแย้งและปัญหาใบรับรองหมดอายุ Match อัปเดตโปรไฟล์โดยอัตโนมัติเมื่อเพิ่มอุปกรณ์ใหม่

sigh สร้างและดาวน์โหลด provisioning profile ผ่าน Apple Developer Portal ใช้เมื่อคุณต้องการรับโปรไฟล์สำหรับประเภทเฉพาะอย่างรวดเร็ว: development, ad-hoc หรือ appstore

gym สร้าง IPA Gym ห่อหุ้ม xcodebuild ด้วยพารามิเตอร์ที่เหมาะสมที่สุด เลือกสคีมา คอนฟิกูเรชัน ตัวเลือกการส่งออกโดยอัตโนมัติ และสร้าง IPA ที่เซ็นแล้ว ตัวอย่าง: gym(scheme: "MyApp", export_method: "app-store")

pilot จัดการ TestFlight อัปโหลดบิลด์ เพิ่มผู้ทดสอบ และติดตามสถานะการตรวจสอบ deliver จัดการการเผยแพร่ App Store ทั้งหมด รวมถึงเมทาดาทา ภาพหน้าจอ ราคา และเวอร์ชัน

ruby
# การสร้างและเผยแพร่แอป iOS
lane :deploy_ios do
  cocoapods
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(changelog: "Bug fixes and performance improvements")
end

การทำงานกับ App Store Connect ต้องใช้โทเคนการเข้าถึง Fastlane รองรับสองวิธีการยืนยันตัวตน: คีย์ API App Store Connect (แนะนำ) และ Apple ID ที่มีการยืนยันตัวตนสองปัจจัย คีย์ API สะดวกกว่าสำหรับ CI/CD เนื่องจากไม่ต้องป้อนรหัสผ่านแบบโต้ตอบ

คำสั่งวัตถุประสงค์สิ่งที่เทียบเท่าแบบ manual
matchการจัดการใบรับรองและโปรไฟล์Apple Developer Portal
sighการสร้าง provisioning profileXcode + Developer Portal
gymการสร้าง IPAxcodebuild + xcrun
pilotการอัปโหลด TestFlightXcode Organizer
deliverการเผยแพร่ App StoreApp Store Connect Web
scanการรันทดสอบ UIxcodebuild test

ระบบอัตโนมัติของบิลด์ Android

บน Android Fastlane ทำให้การสร้างผ่าน Gradle, การเซ็น APK และ AAB, การอัปโหลดไปยัง Google Play Console และ Firebase App Distribution เป็นอัตโนมัติ

gradle คือคำสั่งหลักสำหรับบิลด์ Android มันเรียก Gradle wrapper ด้วยงานที่จำเป็น: gradle(task: "assembleRelease") หรือ gradle(task: "bundleRelease") สำหรับ AAB คุณสามารถส่งแฟล็ก ตัวแปรสภาพแวดล้อม และพาธไปยัง gradle.properties

supply อัปโหลด APK หรือ AAB ไปยัง Google Play Console Supply จัดการเวอร์ชัน แทร็ก (internal, alpha, beta, production), บันทึกการเผยแพร่ ราคา และการกระจายตามประเทศ ตัวอย่าง: supply(track: "beta", release_status: "completed")

screengrab สร้างภาพหน้าจอสำหรับ Google Play มันรันทดสอบเครื่องมือที่จับภาพหน้าจอของแอปบนอุปกรณ์และภาษาต่างๆ ภาพหน้าจอที่ได้จะถูกอัปโหลดผ่าน supply

ruby
# การสร้างและเผยแพร่แอป Android
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
คำสั่งวัตถุประสงค์สิ่งที่เทียบเท่าแบบ manual
gradleสร้างผ่าน Gradle./gradlew assembleRelease
supplyอัปโหลดไปยัง Google PlayGoogle Play Console Web
screengrabสร้างภาพหน้าจอภาพหน้าจอ manual + ImageMagick
firebase_app_distributionกระจายผ่าน FirebaseFirebase Console Upload

การผสานรวม CI/CD

Fastlane ถูกออกแบบมาให้ทำงานในไปป์ไลน์ CI/CD มันจัดการโหมดไม่โต้ตอบ ตัวแปรสภาพแวดล้อม และอาร์ติแฟกต์บิลด์อย่างถูกต้อง ด้านล่างเป็นตัวอย่างการผสานรวมกับระบบ CI ยอดนิยม

ใน GitHub Actions Fastlane ถูกเรียกใช้เป็นสคริปต์ Ruby เวิร์กโฟลว์ทั่วไป: ติดตั้ง Ruby และ Fastlane, คอนฟิกคีย์ (ใบรับรอง, โทเคน API ผ่าน secrets), และรัน lane iOS ต้องการ runner macOS; Android ทำงานบน ubuntu-latest

ใน GitLab CI Fastlane ถูกใช้ใน .gitlab-ci.yml ด้วยการตั้งค่าที่คล้ายกัน: ติดตั้ง dependencies, รัน fastlane, และส่งต่ออาร์ติแฟกต์ GitLab CI รองรับ runner macOS และ Linux

Bitrise — CI/CD เฉพาะสำหรับแอปพลิเคชันมือถือ — มีการรองรับ Fastlane ในตัว Bitrise Workflow สามารถเรียก Fastlane Step หรือรันสคริปต์ที่กำหนดเองด้วย fastlane Bitrise จัดการใบรับรองผ่านตัวจัดการการเซ็นโค้ดของมัน

ruby
# Fastfile สำหรับ CI/CD พร้อมการรันทดสอบแบบมีเงื่อนไข
lane :ci_test do
  scan(scheme: "MyApp", code_coverage: true)
end

lane :ci_beta do
  ensure_git_status_clean
  version_bump_podspec(path: "MyApp.podspec")
  match(type: "appstore", readonly: true)
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(distribute_external: true)
end

สิ่งสำคัญของการผสานรวม CI/CD คือการจัดเก็บความลับ Fastlane ใช้ไฟล์ .env ผ่าน dotenv และตัวแปรสภาพแวดล้อม สำหรับ iOS ตัวแปรที่สำคัญ: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID สำหรับ Android: SUPPLY_JSON_KEY_DATA — เนื้อหาของบัญชีบริการ Google Play

คำสั่ง Fastlane ยอดนิยม

Fastlane มีคำสั่งในตัวมากกว่า 200 รายการ ด้านล่างเป็นภาพรวมของคำสั่งที่ได้รับความนิยมมากที่สุดพร้อมแพลตฟอร์มและคำอธิบาย

คำสั่งแพลตฟอร์มคำอธิบาย
gymiOSสร้าง IPA ด้วยพารามิเตอร์ xcodebuild ที่ปรับให้เหมาะสม
matchiOSซิงค์ใบรับรองและ provisioning profiles ผ่าน Git
pilotiOSอัปโหลดบิลด์ไปยัง TestFlight และจัดการผู้ทดสอบ
deliveriOSเผยแพร่แอปบน App Store พร้อมเมทาดาทา
scaniOSรันทดสอบ unit และ UI พร้อมสร้างรายงาน
gradleAndroidรันงาน Gradle: assemble, bundle, test
supplyAndroidอัปโหลด APK และ AAB ไปยัง Google Play Console
screengrabAndroidภาพหน้าจออัตโนมัติสำหรับ Google Play
firebase_app_distributionAndroidกระจายบิลด์ผ่าน Firebase
snapshotiOSภาพหน้าจออัตโนมัติบน simulator สำหรับ App Store
increment_build_numberiOSเพิ่มหมายเลขบิลด์อัตโนมัติในโปรเจกต์ Xcode
appcenter_uploadทั้งสองอัปโหลดบิลด์ไปยัง App Center

ในการค้นหาคำสั่งที่ต้องการ ให้ใช้คำสั่ง fastlane action [ชื่อ] ซึ่งแสดงเอกสาร พารามิเตอร์ และตัวอย่าง รายการทั้งหมดมีอยู่ในเครื่อง: fastlane actions

Fastlane ยังรองรับ ปลั๊กอิน — ส่วนขยายจากชุมชนที่เพิ่มคำสั่งใหม่ ปลั๊กอินติดตั้งผ่าน fastlane add_plugin [ชื่อ] และมีอยู่ในทะเบียน RubyGems ตัวอย่างปลั๊กอินยอดนิยม: fastlane-plugin-versioning (การจัดการเวอร์ชัน), fastlane-plugin-sentry (อัปโหลดสัญลักษณ์ดีบักไปยัง Sentry), fastlane-plugin-teams (การแจ้งเตือนใน Microsoft Teams)

คำถามที่พบบ่อย

Fastlane คืออะไรและจำเป็นอย่างไร?

Fastlane เป็นเครื่องมือสำหรับสร้างและเผยแพร่แอปพลิเคชันมือถือโดยอัตโนมัติ มันแทนที่การดำเนินงานแบบ manual — การสร้าง การเซ็นโค้ด การอัปโหลดไปยังร้านค้า — ด้วยคำสั่งเดียว Fastlane ลดเวลาเผยแพร่จากชั่วโมงเป็นนาทีและกำจัดข้อผิดพลาดของมนุษย์ระหว่างการเผยแพร่

ฉันสามารถใช้ Fastlane เฉพาะ Android หรือเฉพาะ iOS ได้หรือไม่?

ได้ Fastlane รองรับทั้งสองแพลตฟอร์มอย่างอิสระ iOS ต้องการ macOS ในขณะที่ Android ต้องการเพียง Linux ใน Fastfile เดียวคุณสามารถแยก lanes ตามแพลตฟอร์ม: platform :ios do ... end และ platform :android do ... end

Fastlane จัดการใบรับรอง iOS อย่างไร?

ผ่านคำสั่ง match มันเก็บใบรับรองที่เข้ารหัสและ provisioning profiles ในที่เก็บ Git นักพัฒนาแต่ละคนโคลนที่เก็บ match ถอดรหัสไฟล์ด้วยรหัสผ่านจากตัวแปร MATCH_PASSWORD และติดตั้งลงใน keychain ซึ่งแก้ปัญหา "มันทำงานบนเครื่องของฉัน"

Fastlane ทำงานกับ Firebase App Distribution หรือไม่?

ได้ Fastlane มีคำสั่งในตัว firebase_app_distribution สำหรับอัปโหลด APK และ IPA ไปยัง Firebase App Distribution นอกจากนี้ยังมี firebase_app_distribution_add_testers สำหรับเพิ่มผู้ทดสอบ ทางเลือกอื่นคือคำสั่ง appcenter_upload สำหรับ App Center

วิธีการติดตั้ง Fastlane บนเซิร์ฟเวอร์ CI?

Fastlane ติดตั้งผ่าน RubyGems: gem install fastlane -NV iOS ต้องการ macOS พร้อม Xcode; Android ต้องการ Linux หรือ macOS พร้อม JDK และ Android SDK ใน GitHub Actions มีคำสั่งพร้อมใช้ ruby/setup-ruby สำหรับติดตั้ง Ruby และ Fastlane ตัวแปรสภาพแวดล้อมถูกส่งผ่าน secrets ของระบบ CI

Fastlane แตกต่างจาก Bitrise หรือ Jenkins อย่างไร?

Fastlane คือไลบรารีและ CLI สำหรับทำให้งานสร้างและเผยแพร่เป็นอัตโนมัติ Bitrise และ Jenkins คือแพลตฟอร์ม CI/CD ที่สมบูรณ์ Fastlane ทำงานภายในพวกมัน: Jenkins รัน Fastlane เป็นขั้นตอนไปป์ไลน์ Bitrise เรียก Fastlane ผ่าน Step เฉพาะ Fastlane ไม่ได้แทนที่ระบบ CI — มันเสริมด้วยฟังก์ชันเฉพาะสำหรับมือถือ

สรุป

  • Fastlane — เครื่องมือโอเพนซอร์สสำหรับทำให้การสร้าง ทดสอบ และเผยแพร่แอปมือถือสำหรับ iOS และ Android เป็นอัตโนมัติ
  • Fastfile — ไฟล์คอนฟิก Ruby ที่อธิบาย lanes — สถานการณ์พร้อมลำดับคำสั่ง
  • match + gym + pilot — ไปป์ไลน์มาตรฐานสำหรับ iOS: การจัดการใบรับรอง, การสร้าง IPA, การอัปโหลด TestFlight
  • gradle + supply — ไปป์ไลน์มาตรฐานสำหรับ Android: สร้างผ่าน Gradle, อัปโหลดไปยัง Google Play Console
  • การผสานรวม CI/CD — Fastlane ผสานรวมกับ GitHub Actions, GitLab CI, Bitrise, Jenkins และ CircleCI ผ่านตัวแปรสภาพแวดล้อม
  • 200+ คำสั่ง — คำสั่งในตัวสำหรับการเซ็นโค้ด การสร้าง การทดสอบ ภาพหน้าจอ การเผยแพร่ และการแจ้งเตือน
  • ปลั๊กอิน — ส่วนขยายชุมชนเพิ่มคำสั่งใหม่: การจัดการเวอร์ชัน, Sentry, การแจ้งเตือนในแชท

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม