Fastlane và ứng dụng trong quá trình deploy sản phẩm

Giới thiệu

Bạn đã mệt mỏi với việc vật lộn config project, provisioning, archive, publish các build. Hôm nay chúng ta sẽ tìm cách thực hiện các công việc trên chỉ với 1 command line. Fastlane sẽ giúp chúng ta thực hiện điều đó. Mình sẽ bắt đầu với 1 project demo Các yêu cầu để chạy được fastlane:

  • OS X 10.9 (Mavericks) or newer
  • Ruby 2.0 or newer
  • Xcode Command Line Tools (CLT) Fast lane là một chuối các ruby script, để chạy được fastlane cần ruby 2.0 trở lên. Các bạn có thể chạy lệnh sau để kiểm tra version của ruby trên máy.
ruby -v

Để kiểm tra Xcode command line tool bạn chạy lện sau.

xcode-select --install

Tất cả đã sẵn sàng để cài fastlane chúng ta chạy command

sudo gem install fastlane -NV

Sau khi install hoàn tất, chúng ta có thể sử dụng fastlane trong project.

The fastlane Toolchain

Cùng đi tìm hiểu xem fastlane có thể làm gì.

  • produce creates new iOS apps in both iTunes Connect and the Apple Developer Portal.
  • cert automatically creates and maintains iOS code signing certificates.
  • sigh creates, renews, downloads and repairs provisioning profiles.
  • snapshot automates taking localized screenshots of your iOS app on every device.
  • frameit puts your screenshots into the right device frames.
  • gym builds and packages your iOS apps.
  • deliver uploads screenshots, metadata and your apps to the App Store.
  • pem automatically generates and renews your push notification profiles.
  • spaceship is a Ruby library able to access the Apple Developer Center and iTunes Connect APIs.
  • pilot automates TestFlight deployments and manages beta testers.
  • boarding invites beta testers.
  • match syncs certificates and provisioning profiles across your team using Git.
  • scan runs tests on your apps. Như các bạn có thể thấy, fastlane hỗ trợ gần như hoàn chỉnh toàn bộ process phát triển sản phẩm của chúng ta từ khi phát triển đến khi beta testing và lên production.

Cài đặt fastlane trong project

Mở terminal và chuyển thư mục đến project của chúng ta. Khi đã vào thư mực của project thì ta tiến hành init fastlane

fastlane init

Nhập appleID để tiếp tục. Sau khi init xong fastlane sẽ tạo app trên itune connect và developer portal cho chúng ta nếu có nhu cầu. Nhưng mình ko có tài khoản developer nên sẽ không setup itune connect. Sau khi hoàn tất init thì chúng ta sẽ có folder fastlane trong thư mục demo. Nội dung các file này như sau:

  • Appfile, file này sẽ lưu app ID và apple ID của chúng ta.
  • Fastfile file này lưu các cấu hình với lanes mà chúng ta sẽ sử dung.

Chúng ta sẽ đi định nghĩa một lane để build project của chúng ta

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.18.3"

default_platform :ios

platform :ios do

   lane :build do
    xcodebuild(
      xcodeproj: "FastLaneDemo.xcodeproj",
      scheme: "FastLaneDemo",
      clean: true,
      build: true,
      destination: "generic/platform=iOS",
      output_name: “FastlaneBuild”,
      output_directory: "Test_build",
      build_settings: {
        "CODE_SIGNING_REQUIRED" => "NO",
        "CODE_SIGN_IDENTITY" => ""
      },
      
    )
   end

  # You can define as many lanes as you want

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end

Ở đây mình sẽ định nghĩa một lane build với các option build xcode. Vào terminal và chạy lệnh fastlane build chúng ta sẽ thấy project demo được build với các option mà chúng ta đã thiết lập.

 fastlane build // build này là lane mà chúng ta đã định nghĩa trong file

Vì hạn chế về account developer nên mình không thể đi xa hơn với các scenerio export, upload build lên test flight, deploy sản phẩm. Các bạn có thể tìm hiểu sâu hơn tại https://fastlane.tools/