Phân phối ứng dụng Android cho người thử nghiệm bằng cách sử dụng fastlane

Hướng dẫn này mô tả cách phân phối bản dựng AAB cho người thử nghiệm bằng cách sử dụng fastlane , một nền tảng nguồn mở tự động hóa việc xây dựng và phát hành ứng dụng iOS và Android. Nó tuân theo các hướng dẫn đơn giản được xác định trong Fastfile . Sau khi thiết lập fastlane và Fastfile , bạn có thể tích hợp Phân phối ứng dụng với cấu hình fastlane của mình.

Phân phối ứng dụng tích hợp với dịch vụ chia sẻ ứng dụng nội bộ của Google Play để xử lý AAB mà bạn tải lên và phân phối APK được tối ưu hóa cho cấu hình thiết bị của người thử nghiệm. Việc phân phối AAB cho phép bạn thực hiện những việc sau:

  • Chạy các APK được tối ưu hóa (do Google Play phân phối) được tối ưu hóa cho thiết bị của người thử nghiệm.

  • Khám phá và gỡ lỗi các vấn đề cụ thể của thiết bị.

  • Thử nghiệm các tính năng của gói ứng dụng như Play Feature DeliveryPlay Asset Delivery .

  • Giảm kích thước tải xuống cho người thử nghiệm của bạn.

Quyền cần thiết

Để tải AAB lên Phân phối ứng dụng, bạn phải liên kết ứng dụng Firebase của mình với một ứng dụng trong Google Play . Bạn phải có mức truy cập cần thiết để thực hiện những hành động này.

Nếu không có quyền truy cập Firebase cần thiết, bạn có thể yêu cầu Chủ sở hữu dự án Firebase chỉ định cho bạn vai trò phù hợp thông qua cài đặt IAM của bảng điều khiển Firebase . Nếu bạn có câu hỏi về việc truy cập vào dự án Firebase của mình, bao gồm cả việc tìm hoặc chỉ định Chủ sở hữu, hãy xem lại Câu hỏi thường gặp về "Quyền và quyền truy cập vào dự án Firebase" .

Bảng sau đây áp dụng cho việc liên kết ứng dụng Firebase với ứng dụng trong Google Play cũng như tải AAB lên.

Hành động trong bảng điều khiển Firebase Cần có quyền IAM (Các) vai trò IAM bao gồm các quyền được yêu cầu theo mặc định (Các) vai trò bắt buộc bổ sung
Liên kết ứng dụng Firebase với ứng dụng trong Google Play firebase.playLinks.update Một trong những vai trò sau: Quyền truy cập vào tài khoản nhà phát triển Google Play với tư cách Quản trị viên
Tải AAB lên phân phối ứng dụng firebaseappdistro.releases.update Một trong những vai trò sau: ––

Trước khi bắt đầu

  1. Nếu bạn chưa có, hãy thêm Firebase vào dự án Android của bạn . Khi kết thúc quy trình công việc này, bạn sẽ có Ứng dụng Firebase Android trong dự án Firebase của mình.

    Nếu không sử dụng bất kỳ sản phẩm Firebase nào khác, bạn chỉ cần tạo dự án và đăng ký ứng dụng của mình. Nếu bạn quyết định sử dụng các sản phẩm bổ sung, hãy đảm bảo hoàn thành tất cả các bước trong Thêm Firebase vào dự án Android của bạn .

  2. Để tạo liên kết Firebase với Google Play và tải AAB lên, hãy đảm bảo ứng dụng của bạn đáp ứng các yêu cầu sau:

    • Ứng dụng trong Google Play và ứng dụng Firebase Android đều được đăng ký bằng cùng một tên gói.

    • Ứng dụng trong Google Play được thiết lập trên trang tổng quan ứng dụng và được phân phối tới một trong các kênh Google Play (Thử nghiệm nội bộ, Thử nghiệm khép kín, Thử nghiệm mở hoặc Sản xuất).

    • Quá trình đánh giá ứng dụng trong Google Play đã hoàn tất và ứng dụng đã được xuất bản. Ứng dụng của bạn được xuất bản nếu cột Trạng thái ứng dụng hiển thị một trong các trạng thái sau: Thử nghiệm nội bộ (không phải thử nghiệm nội bộ nháp), Thử nghiệm khép kín, Thử nghiệm mở hoặc Sản xuất.

  3. Liên kết Ứng dụng Android Firebase với tài khoản nhà phát triển Google Play của bạn:

    1. Trong bảng điều khiển Firebase, hãy truy cập Cài đặt dự án , sau đó chọn tab Tích hợp .

    2. Trên thẻ Google Play , nhấp vào Liên kết .
      Nếu bạn đã có liên kết tới Google Play, thay vào đó hãy nhấp vào Quản lý .

    3. Làm theo hướng dẫn trên màn hình để bật tích hợp Phân phối ứng dụng và chọn Ứng dụng Android Firebase nào sẽ liên kết với Google Play.

    Tìm hiểu thêm về liên kết với Google Play .

Bước 1. Thiết lập làn đường nhanh

  1. Cài đặt và thiết lập fastlane .

  2. Để thêm Phân phối ứng dụng vào cấu hình fastlane của bạn, hãy chạy lệnh sau từ thư mục gốc của dự án Android của bạn:

    fastlane add_plugin firebase_app_distribution

    Nếu lệnh nhắc bạn với một tùy chọn, hãy chọn Option 3: RubyGems.org .

Bước 2. Xác thực bằng Firebase

Trước khi có thể sử dụng plugin fastlane, trước tiên bạn phải xác thực với dự án Firebase của mình theo một trong các cách sau. Theo mặc định, plugin fastlane tìm kiếm thông tin xác thực từ Firebase CLI nếu không sử dụng phương thức xác thực nào khác.

Bước 3. Thiết lập Fastfile và phân phối ứng dụng của bạn

  1. Trong làn ./fastlane/Fastfile , hãy thêm khối firebase_app_distribution . Sử dụng các tham số sau để định cấu hình phân phối:
    tham số firebase_app_distribution
    app

    Bắt buộc : ID ứng dụng Firebase của ứng dụng của bạn. Bạn có thể tìm thấy ID ứng dụng trong bảng điều khiển Firebase, trên trang Cài đặt chung .

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    Mã thông báo làm mới được in khi bạn xác thực môi trường CI của mình bằng CLI Firebase (đọc Sử dụng CLI với hệ thống CI để biết thêm thông tin).

    service_credentials_file

    Đường dẫn đến tệp json tài khoản dịch vụ Google của bạn. Xem bên trên để biết cách xác thực bằng thông tin đăng nhập tài khoản dịch vụ .

    android_artifact_type

    Chỉ định loại tệp Android (APK hoặc AAB).

    android_artifact_path

    Thay thế apk_path (không dùng nữa). Đường dẫn tuyệt đối đến tệp APK hoặc AAB bạn muốn tải lên. Nếu không được chỉ định, fastlane sẽ xác định vị trí của tệp từ làn mà tệp được tạo.

    release_notes
    release_notes_file

    Ghi chú phát hành cho bản dựng này.

    Bạn có thể chỉ định trực tiếp ghi chú phát hành:

    release_notes: "Text of release notes"

    Hoặc chỉ định đường dẫn đến tệp văn bản thuần túy:

    release_notes_file: "/path/to/release-notes.txt"
    testers
    testers_file

    Địa chỉ email của người thử nghiệm mà bạn muốn mời.

    Bạn có thể chỉ định người kiểm tra dưới dạng danh sách địa chỉ email được phân tách bằng dấu phẩy:

    testers: "ali@example.com, bri@example.com, cal@example.com"

    Hoặc, bạn có thể chỉ định đường dẫn đến tệp văn bản thuần túy chứa danh sách địa chỉ email được phân tách bằng dấu phẩy:

    testers_file: "/path/to/testers.txt"
    groups
    groups_file

    Nhóm người thử nghiệm mà bạn muốn mời (tham khảo Quản lý người thử nghiệm ). Các nhóm được chỉ định bằng cách sử dụng bí danh nhóm , bạn có thể tra cứu trong bảng điều khiển Firebase.

    Bạn có thể chỉ định các nhóm dưới dạng danh sách được phân tách bằng dấu phẩy:

    groups: "qa-team, trusted-testers"

    Hoặc, bạn có thể chỉ định đường dẫn đến tệp văn bản thuần túy chứa danh sách tên nhóm được phân tách bằng dấu phẩy:

    groups_file: "/path/to/groups.txt"
    test_devices
    test_devices_file

    Các loại phân phối sau đây là một phần của tính năng beta dành cho người thử nghiệm tự động .

    Các thiết bị thử nghiệm mà bạn muốn phân phối bản dựng tới (tham khảo Thử nghiệm tự động ).

    Bạn có thể chỉ định các thiết bị thử nghiệm dưới dạng danh sách các thiết bị thử nghiệm được phân tách bằng dấu chấm phẩy:

    test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

    Hoặc, bạn có thể chỉ định đường dẫn đến tệp văn bản thuần túy chứa danh sách các thiết bị thử nghiệm được phân tách bằng dấu chấm phẩy:

    test_devices_file: "/path/to/test-devices.txt"
    test_username

    Tên người dùng để đăng nhập tự động sẽ được sử dụng trong quá trình kiểm tra tự động .

    test_password
    test_password_file

    Mật khẩu để đăng nhập tự động được sử dụng trong quá trình kiểm tra tự động .

    Hoặc, bạn có thể chỉ định đường dẫn đến tệp văn bản thuần túy chứa mật khẩu:

    test_password_file: "/path/to/test-password.txt"
    test_username_resource

    Tên tài nguyên cho trường tên người dùng để đăng nhập tự động được sử dụng trong quá trình kiểm tra tự động .

    test_password_resource

    Tên tài nguyên cho trường mật khẩu để đăng nhập tự động được sử dụng trong quá trình kiểm tra tự động .

    test_non_blocking

    Chạy thử nghiệm tự động không đồng bộ. Truy cập bảng điều khiển Firebase để biết kết quả kiểm tra tự động.

    debug

    Một lá cờ boolean. Bạn có thể đặt giá trị này thành true để in kết quả gỡ lỗi chi tiết.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

Để cung cấp bản dựng cho người thử nghiệm, hãy chạy làn đường của bạn:

fastlane <lane>

Giá trị trả về của hành động là hàm băm đại diện cho bản phát hành đã tải lên. Hàm băm này cũng có sẵn bằng cách sử dụng lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] . Để biết thêm thông tin về các trường có sẵn trong hàm băm này, hãy xem tài liệu API REST .

Plugin fastlane xuất ra các liên kết sau sau khi tải lên bản phát hành. Các liên kết này giúp bạn quản lý các tệp nhị phân và đảm bảo rằng người thử nghiệm và nhà phát triển khác có bản phát hành phù hợp:

  • Một liên kết đến bảng điều khiển Firebase hiển thị một bản phát hành. Bạn có thể chia sẻ liên kết này với các nhà phát triển khác trong tổ chức của mình.
  • Đường liên kết đến bản phát hành trong trải nghiệm của người thử nghiệm (ứng dụng gốc của Android) cho phép người thử nghiệm xem ghi chú phát hành và cài đặt ứng dụng vào thiết bị của họ. Người thử nghiệm cần có quyền truy cập vào bản phát hành để sử dụng liên kết.
  • Liên kết đã ký trực tiếp tải xuống và cài đặt tệp nhị phân của ứng dụng (tệp APK hoặc AAB). Liên kết sẽ hết hạn sau một giờ.

Sau khi bạn phân phối bản dựng của mình, bản dựng đó sẽ có sẵn trong bảng điều khiển Phân phối ứng dụng của bảng điều khiển Firebase trong 150 ngày. Khi bản dựng hết hạn sau 30 ngày, thông báo hết hạn sẽ xuất hiện trong bảng điều khiển và trong danh sách các bản dựng của người thử nghiệm trên thiết bị thử nghiệm của họ.

Những người thử nghiệm trước đây chưa được mời thử nghiệm ứng dụng sẽ nhận được lời mời qua email để bắt đầu. Những người thử nghiệm hiện tại sẽ nhận được thông báo qua email rằng bản dựng mới đã sẵn sàng để thử nghiệm. Để tìm hiểu cách cài đặt ứng dụng thử nghiệm, hãy xem hướng dẫn thiết lập người thử nghiệm . Bạn có thể theo dõi trạng thái của từng người thử nghiệm để xác định xem họ có chấp nhận lời mời hay không và liệu họ có tải xuống ứng dụng trong bảng điều khiển Firebase hay không.

(Tùy chọn) Để tự động tăng số bản dựng mỗi khi bạn tạo bản phát hành mới trong Phân phối ứng dụng, bạn có thể sử dụng hành động firebase_app_distribution_get_latest_release và, ví dụ: plugin fastlane increment_version_code . Đoạn mã sau cung cấp ví dụ về cách tự động tăng số bản dựng của bạn:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

Để tìm hiểu thêm về hành động firebase_app_distribution_get_latest_release , hãy xem Nhận thông tin về bản phát hành mới nhất của ứng dụng của bạn .

Bước 4 (Tùy chọn). Quản lý người thử nghiệm để phân phối

Bạn có thể thêm và xóa người thử nghiệm khỏi dự án hoặc nhóm của mình bằng tệp Fastfile hoặc bằng cách chạy trực tiếp các hành động fastlane. Các hành động đang chạy sẽ ghi đè trực tiếp các giá trị được đặt trong Fastfile của bạn.

Sau khi người thử nghiệm được thêm vào dự án Firebase của bạn, bạn có thể thêm họ vào các bản phát hành riêng lẻ. Những người thử nghiệm bị xóa khỏi dự án Firebase của bạn sẽ không còn có quyền truy cập vào các bản phát hành trong dự án của bạn nữa nhưng họ có thể giữ quyền truy cập vào các bản phát hành của bạn trong một khoảng thời gian.

Nếu bạn có số lượng lớn người thử nghiệm, bạn nên cân nhắc sử dụng nhóm.

Sử dụng Fastfile

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

Chạy hành động fastlane

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

Bạn cũng có thể chỉ định người kiểm tra bằng cách sử dụng --file="/path/to/testers.txt thay vì --emails .

Các tác vụ firebase_app_distribution_add_testersfirebase_app_distribution_remove_testers cũng chấp nhận các đối số sau:

  • project_name : Mã số dự án Firebase của bạn.
  • group_alias (tùy chọn): Nếu được chỉ định, người thử nghiệm sẽ được thêm vào (hoặc bị xóa khỏi) nhóm được chỉ định.
  • service_credentials_file : Đường dẫn đến tệp thông tin xác thực dịch vụ Google của bạn.
  • firebase_cli_token : Mã thông báo xác thực cho Firebase CLI.

service_credentials_filefirebase_cli_token là các đối số giống nhau được hành động tải lên sử dụng.

Bước 5 (Tùy chọn). Nhận thông tin về bản phát hành mới nhất của ứng dụng của bạn

Bạn có thể sử dụng hành động firebase_app_distribution_get_latest_release để tìm nạp thông tin về bản phát hành mới nhất của ứng dụng trong Phân phối ứng dụng, bao gồm thông tin phiên bản ứng dụng, ghi chú phát hành và thời gian tạo. Các trường hợp sử dụng bao gồm tự động tăng phiên bản và chuyển sang ghi chú phát hành từ bản phát hành trước.

Giá trị trả về của hành động là hàm băm đại diện cho bản phát hành mới nhất. Hàm băm này cũng có sẵn bằng cách sử dụng lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] . Để biết thêm thông tin về các trường có sẵn trong hàm băm này, hãy xem tài liệu API REST .

Thông số

tham số firebase_app_distribution_get_latest_release
app

Bắt buộc : ID ứng dụng Firebase của ứng dụng của bạn. Bạn có thể tìm thấy ID ứng dụng trong bảng điều khiển Firebase, trên trang Cài đặt chung .

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

Mã thông báo làm mới được in khi bạn xác thực môi trường CI của mình bằng CLI Firebase (đọc Sử dụng CLI với hệ thống CI để biết thêm thông tin).

service_credentials_file

Đường dẫn đến tệp json tài khoản dịch vụ Google của bạn. Xem bên trên để biết cách xác thực bằng thông tin đăng nhập tài khoản dịch vụ .

debug

Một lá cờ boolean. Bạn có thể đặt giá trị này thành true để in kết quả gỡ lỗi chi tiết.

Bước tiếp theo