Fastlane: nó là gì, tự động hóa bản dựng và xuất bản

Tác giả: IT Sectr Đã đăng: 2026-02-13 Thời gian đọc: 10 phút

Fastlane là công cụ tự động hóa việc xây dựng và xuất bản ứng dụng di động cho iOS và Android. Fastlane quản lý ký mã, xây dựng, chạy kiểm thử, tạo ảnh chụp màn hình và tải lên App Store Connect và Google Play Console. Đây là tiêu chuẩn thực tế cho CI/CD trong phát triển di động.

Kết luận chính

  • Fastlane tự động hóa toàn bộ quy trình phát hành di động: xây dựng, kiểm thử, ký và xuất bản bằng một lệnh
  • Fastfile là tệp cấu hình Ruby mô tả các lanes — kịch bản tự động hóa có tên
  • Hỗ trợ iOS và Android — Fastlane hoạt động với Xcode, Gradle, App Store Connect, Google Play, TestFlight và Firebase
  • match và sigh — quản lý chứng chỉ và hồ sơ cấp phép cho phát triển iOS
  • Tích hợp CI/CD — Fastlane tích hợp vào GitHub Actions, GitLab CI, Bitrise, Jenkins và CircleCI

Fastlane — nó là gì

Fastlane là công cụ mã nguồn mở tự động hóa các tác vụ phát triển di động thường xuyên: xây dựng ứng dụng, chạy kiểm thử, tạo ảnh chụp màn hình, quản lý chứng chỉ và tải bản dựng lên TestFlight, App Store và Google Play. Fastlane được viết bằng Ruby và phân phối qua RubyGems với lệnh gem install fastlane.

Fastlane xuất hiện vào năm 2015 như một công cụ iOS nhưng nhanh chóng mở rộng sang Android. Ngày nay, nó là một hệ sinh thái gồm hàng chục action — các lệnh tích hợp có thể kết hợp thành các kịch bản gọi là lanes. Mỗi lane thực hiện một nhiệm vụ cụ thể: ví dụ: build_release xây dựng phiên bản phát hành và deploy_beta tải bản dựng lên TestFlight.

Fastlane được sử dụng bởi các công ty như Uber, Airbnb, Snapchat, Twitter và Shopify. Theo khảo sát năm 2024, hơn 60% nhà phát triển iOS sử dụng Fastlane trong các dự án của họ. Công cụ hỗ trợ cả thực thi cục bộ và tích hợp với các hệ thống CI đám mây, trở thành tiêu chuẩn thực tế cho CI/CD di động.

ruby
# Cài đặt Fastlane
sudo gem install fastlane -NV

# Khởi tạo trong dự án
fastlane init

Sau khi khởi tạo, Fastlane tạo thư mục fastlane/ với ba tệp: Fastfile (kịch bản), Appfile (cài đặt ứng dụng) và Matchfile (cài đặt chứng chỉ). Cấu trúc này giống nhau cho cả hai nền tảng — iOS và Android.

Fastfile và lanes

Tệp cấu hình chính của Fastlane là Fastfile. Nó nằm trong thư mục fastlane/ tại thư mục gốc của dự án. Fastfile được viết bằng Ruby: mỗi lane là một khối có tên với một chuỗi các action. Một lane có thể chấp nhận tham số, gọi các lane khác và trả về giá trị.

ruby
# fastlane/Fastfile — ví dụ cho 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

Mỗi lane được chạy bằng lệnh fastlane ios beta hoặc fastlane ios release. Fastfile hỗ trợ biến, điều kiện, vòng lặp và gọi tập lệnh bên ngoài — nó là một tệp Ruby hoàn chỉnh. Các nhà phát triển có thể tái sử dụng mã qua private_lane (phương thức cục bộ) và import từ các Fastfile khác.

Fastlane cung cấp hơn 200 action tích hợp cho hầu hết các tác vụ. Nếu action cần không tồn tại, bạn có thể tự viết bằng Ruby hoặc gọi lệnh shell qua sh("..."). Các action có thể chấp nhận tham số — cài đặt bản dựng, đường dẫn, token truy cập — và trả về kết quả để sử dụng trong các bước tiếp theo.

Tự động hóa bản dựng iOS

Fastlane cho iOS giải quyết ba vấn đề chính: quản lý chứng chỉ và hồ sơ cấp phép, xây dựng IPA qua Xcode và xuất bản lên App Store Connect và TestFlight. Mỗi tác vụ này được xử lý bởi một action riêng.

match là action quản lý chứng chỉ. Nó lưu trữ tất cả chứng chỉ và hồ sơ cấp phép trong một kho Git được mã hóa. Mọi nhà phát triển và máy chủ CI đều sử dụng cùng một bộ tệp, loại bỏ xung đột và vấn đề chứng chỉ hết hạn. Match tự động cập nhật hồ sơ khi thiết bị mới được thêm vào.

sigh tạo và tải xuống hồ sơ cấp phép qua Apple Developer Portal. Nó được sử dụng khi bạn cần nhanh chóng có hồ sơ cho một loại cụ thể: development, ad-hoc hoặc appstore.

gym xây dựng IPA. Gym bao bọc xcodebuild với các tham số tối ưu, tự động chọn lược đồ, cấu hình, tùy chọn xuất và tạo IPA đã ký. Ví dụ: gym(scheme: "MyApp", export_method: "app-store").

pilot quản lý TestFlight. Nó tải lên bản dựng, thêm người kiểm thử và theo dõi trạng thái đánh giá. deliver xử lý toàn bộ việc xuất bản lên App Store, bao gồm siêu dữ liệu, ảnh chụp màn hình, giá cả và phiên bản.

ruby
# Xây dựng và xuất bản ứng dụng 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

Làm việc với App Store Connect yêu cầu token truy cập. Fastlane hỗ trợ hai phương thức xác thực: Khóa API App Store Connect (được khuyến nghị) và Apple ID với xác thực hai yếu tố. Khóa API thuận tiện hơn cho CI/CD vì không yêu cầu nhập mật khẩu tương tác.

ActionMục đíchTương đương thủ công
matchQuản lý chứng chỉ và hồ sơApple Developer Portal
sighTạo hồ sơ cấp phépXcode + Developer Portal
gymXây dựng IPAxcodebuild + xcrun
pilotTải lên TestFlightXcode Organizer
deliverXuất bản App StoreApp Store Connect Web
scanChạy kiểm thử UIxcodebuild test

Tự động hóa bản dựng Android

Trên Android, Fastlane tự động hóa việc xây dựng qua Gradle, ký APK và AAB, tải lên Google Play Console và Firebase App Distribution.

gradle là action chính cho bản dựng Android. Nó gọi trình bao bọc Gradle với các tác vụ cần thiết: gradle(task: "assembleRelease") hoặc gradle(task: "bundleRelease") cho AAB. Bạn có thể truyền cờ, biến môi trường và đường dẫn đến gradle.properties.

supply tải APK hoặc AAB lên Google Play Console. Supply quản lý phiên bản, track (internal, alpha, beta, production), ghi chú phát hành, giá cả và phân phối theo quốc gia. Ví dụ: supply(track: "beta", release_status: "completed").

screengrab tạo ảnh chụp màn hình cho Google Play. Nó chạy kiểm thử thiết bị để chụp ảnh màn hình của ứng dụng trên các thiết bị và ngôn ngữ khác nhau. Ảnh chụp màn hình kết quả được tải lên qua supply.

ruby
# Xây dựng và xuất bản ứng dụng Android
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
ActionMục đíchTương đương thủ công
gradleXây dựng qua Gradle./gradlew assembleRelease
supplyTải lên Google PlayGoogle Play Console Web
screengrabTạo ảnh chụp màn hìnhChụp thủ công + ImageMagick
firebase_app_distributionPhân phối qua FirebaseFirebase Console Upload

Tích hợp CI/CD

Fastlane được thiết kế để hoạt động trong các pipeline CI/CD. Nó xử lý chính xác chế độ không tương tác, biến môi trường và tạo phẩm xây dựng. Dưới đây là các ví dụ tích hợp với các hệ thống CI phổ biến.

Trong GitHub Actions, Fastlane được chạy như một tập lệnh Ruby. Quy trình làm việc điển hình: cài đặt Ruby và Fastlane, cấu hình khóa (chứng chỉ, token API qua secrets) và chạy lane. iOS yêu cầu trình chạy macOS; Android hoạt động trên ubuntu-latest.

Trong GitLab CI, Fastlane được sử dụng trong .gitlab-ci.yml với thiết lập tương tự: cài đặt phụ thuộc, chạy fastlane và truyền tạo phẩm. GitLab CI hỗ trợ trình chạy macOS và Linux.

Bitrise — một CI/CD chuyên biệt cho ứng dụng di động — có hỗ trợ Fastlane tích hợp. Bitrise Workflow có thể gọi Fastlane Step hoặc chạy tập lệnh tùy chỉnh với fastlane. Bitrise quản lý chứng chỉ qua trình quản lý ký mã của nó.

ruby
# Fastfile cho CI/CD với chạy kiểm thử có điều kiện
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

Một khía cạnh quan trọng của tích hợp CI/CD là lưu trữ bí mật. Fastlane sử dụng tệp .env qua dotenv và biến môi trường. Đối với iOS, các biến quan trọng: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Đối với Android: SUPPLY_JSON_KEY_DATA — nội dung tài khoản dịch vụ Google Play.

Các action Fastlane phổ biến

Fastlane bao gồm hơn 200 action tích hợp. Dưới đây là tổng quan về các action phổ biến nhất với nền tảng và mô tả.

ActionNền tảngMô tả
gymiOSXây dựng IPA với tham số xcodebuild tối ưu
matchiOSĐồng bộ chứng chỉ và hồ sơ cấp phép qua Git
pilotiOSTải bản dựng lên TestFlight và quản lý người kiểm thử
deliveriOSXuất bản ứng dụng lên App Store với siêu dữ liệu
scaniOSChạy kiểm thử đơn vị và UI với tạo báo cáo
gradleAndroidChạy tác vụ Gradle: assemble, bundle, test
supplyAndroidTải APK và AAB lên Google Play Console
screengrabAndroidẢnh chụp màn hình tự động cho Google Play
firebase_app_distributionAndroidPhân phối bản dựng qua Firebase
snapshotiOSẢnh chụp màn hình tự động trên trình mô phỏng cho App Store
increment_build_numberiOSTự động tăng số bản dựng trong dự án Xcode
appcenter_uploadCả haiTải bản dựng lên App Center

Để tìm action cần thiết, hãy sử dụng lệnh fastlane action [tên], lệnh này hiển thị tài liệu, tham số và ví dụ. Danh sách đầy đủ có sẵn tại địa phương: fastlane actions.

Fastlane cũng hỗ trợ plugin — tiện ích mở rộng cộng đồng thêm action mới. Plugin được cài đặt qua fastlane add_plugin [tên] và có sẵn trong sổ đăng ký RubyGems. Ví dụ về plugin phổ biến: fastlane-plugin-versioning (quản lý phiên bản), fastlane-plugin-sentry (tải ký hiệu gỡ lỗi lên Sentry), fastlane-plugin-teams (thông báo trong Microsoft Teams).

Câu hỏi thường gặp

Fastlane là gì và tại sao cần nó?

Fastlane là công cụ tự động hóa việc xây dựng và xuất bản ứng dụng di động. Nó thay thế các thao tác thủ công — xây dựng, ký mã, tải lên cửa hàng — bằng một lệnh duy nhất. Fastlane giảm thời gian phát hành từ hàng giờ xuống còn vài phút và loại bỏ lỗi con người khi xuất bản.

Tôi có thể sử dụng Fastlane chỉ cho Android hoặc chỉ cho iOS không?

Có. Fastlane hỗ trợ cả hai nền tảng độc lập. iOS yêu cầu macOS, trong khi Android chỉ cần Linux. Trong một Fastfile, bạn có thể tách lanes theo nền tảng: platform :ios do ... endplatform :android do ... end.

Fastlane quản lý chứng chỉ iOS như thế nào?

Thông qua action match. Nó lưu trữ chứng chỉ mã hóa và hồ sơ cấp phép trong kho Git. Mỗi nhà phát triển sao chép kho, match giải mã tệp bằng mật khẩu từ biến MATCH_PASSWORD và cài đặt chúng vào chuỗi khóa. Điều này giải quyết vấn đề "nó hoạt động trên máy của tôi".

Fastlane có hoạt động với Firebase App Distribution không?

Có. Fastlane có action tích hợp firebase_app_distribution để tải APK và IPA lên Firebase App Distribution. firebase_app_distribution_add_testers cũng có sẵn để thêm người kiểm thử. Một thay thế là action appcenter_upload cho App Center.

Làm cách nào để cài đặt Fastlane trên máy chủ CI?

Fastlane được cài đặt qua RubyGems: gem install fastlane -NV. iOS yêu cầu macOS với Xcode; Android yêu cầu Linux hoặc macOS với JDK và Android SDK. Trong GitHub Actions có action ruby/setup-ruby để cài đặt Ruby và Fastlane. Biến môi trường được truyền qua secrets của hệ thống CI.

Fastlane khác gì so với Bitrise hoặc Jenkins?

Fastlane là thư viện và CLI để tự động hóa tác vụ xây dựng và xuất bản. BitriseJenkins là các nền tảng CI/CD hoàn chỉnh. Fastlane chạy bên trong chúng: Jenkins chạy Fastlane như một bước pipeline, Bitrise gọi Fastlane qua Step chuyên dụng. Fastlane không thay thế hệ thống CI — nó bổ sung chức năng dành riêng cho di động.

Tóm tắt

  • Fastlane — công cụ mã nguồn mở tự động hóa xây dựng, kiểm thử và xuất bản ứng dụng di động cho iOS và Android
  • Fastfile — tệp cấu hình Ruby mô tả lanes — kịch bản với chuỗi action
  • match + gym + pilot — pipeline iOS tiêu chuẩn: quản lý chứng chỉ, xây dựng IPA, tải lên TestFlight
  • gradle + supply — pipeline Android tiêu chuẩn: xây dựng qua Gradle, tải lên Google Play Console
  • Tích hợp CI/CD — Fastlane tích hợp vào GitHub Actions, GitLab CI, Bitrise, Jenkins và CircleCI qua biến môi trường
  • 200+ action — lệnh tích hợp cho ký mã, xây dựng, kiểm thử, ảnh chụp màn hình, xuất bản và thông báo
  • Plugin — tiện ích mở rộng cộng đồng thêm action mới: quản lý phiên bản, Sentry, thông báo qua tin nhắn

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm