Phân phối ứng dụng Android cho người kiểm thử bằng cách sử dụng công cụ phát triển nhanh


Hướng dẫn này mô tả cách phân phối bản dựng AAB cho người kiểm thử bằng cách sử dụng fastlane, một nền tảng nguồn mở tự động tạo và phát hành ứng dụng iOS và Android. Phương thức này 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 App Distribution với cấu hình fastlane.

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

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

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

  • Kiểm thử 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ệp tải xuống cho người kiểm thử.

Các quyền bắt buộc

Để tải AAB lên App Distribution, bạn phải liên kết ứng dụng Firebase với một ứng dụng trong Google Play. Bạn phải có cấp truy cập bắt buộc để thực hiện các thao tác này.

Nếu không có quyền truy cập cần thiết vào Firebase, bạn có thể yêu cầu Chủ sở hữu dự án Firebase chỉ định cho bạn vai trò thích hợp thông qua phần cài đặt nguyên tắc quản lý danh tính và quyền truy cập (IAM) trên bảng điều khiển Firebase. Nếu bạn có câu hỏi về cách truy cập vào dự án Firebase, bao gồm cả việc tìm hoặc chỉ định Chủ sở hữu, hãy xem các 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.

Thao tác trong bảng điều khiển Firebase Quyền IAM bắt buộc (Các) vai trò IAM có các quyền bắt buộc theo mặc định (Các) vai trò bắt buộc khác
Liên kết ứng dụng Firebase với một ứ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 là Quản trị viên
Tải tệp AAB lên App Distribution firebaseappdistro.releases.update Một trong những vai trò sau: ––

Trước khi bắt đầu

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

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

  2. Để tạo đường liên kết Firebase đến Google Play và tải AAB lên, hãy đảm bảo rằng ứ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 Android trên Firebase đề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 của ứng dụng và được phân phối cho một trong các kênh phát hành trên Google Play (Kiểm thử nội bộ, Kiểm thử khép kín, Kiểm thử công khai hoặc Bản phát hành công khai).

    • Quá trình xem xét ứng dụng trong Google Play đã hoàn tất và ứng dụng đã được phát hành. Ứng dụng của bạn sẽ được phát hành 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 Bản nháp thử nghiệm nội bộ), Thử nghiệm khép kín, Thử nghiệm công khai hoặc Bản phát hành công khai.

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

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

    2. Trên thẻ Google Play, hãy nhấp vào Liên kết.
      Nếu bạn đã có đường liên kết đến Google Play, 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ính năng tích hợp App Distribution và chọn ứng dụng Android Firebase cần liên kết với Google Play.

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

Bước 1. Thiết lập fastlane

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

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

    fastlane add_plugin firebase_app_distribution

    Nếu lệnh nhắc bạn chọn một tuỳ 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 trình bổ trợ fastlane, trước tiên, bạn phải xác thực bằng dự án Firebase theo một trong những cách sau. Theo mặc định, trình bổ trợ fastlane sẽ tìm thông tin xác thực từ CLI Firebase 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

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

    Bắt buộc: Mã ứng dụng Firebase của ứng dụng. Bạn có thể tìm thấy Mã ứ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 bằng CLI Firebase (hãy đọc phần Sử dụng CLI với các hệ thống CI để biết thêm thông tin).

    service_credentials_file

    Đường dẫn đến tệp json của tài khoản dịch vụ Google. Hãy xem phần trên để biết cách xác thực bằng thông tin xác thực 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 mà 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 đường nơi 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 ghi chú phát hành trực tiếp:

    release_notes: "Text of release notes"

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

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

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

    Bạn có thể chỉ định người kiểm thử 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 một tệp văn bản thuần tuý 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

    Các nhóm người kiểm thử mà bạn muốn mời (tham khảo phần Quản lý người kiểm thử). Các nhóm được chỉ định bằng bí danh nhóm 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 một tệp văn bản thuần tuý 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 thử nghiệm Trình kiểm thử tự động.

    Các thiết bị kiểm thử mà bạn muốn phân phối bản dựng (tham khảo phần Kiểm thử tự động).

    Bạn có thể chỉ định các thiết bị kiểm thử dưới dạng danh sách thiết bị kiểm thử đượ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 một tệp văn bản thuần tuý chứa danh sách thiết bị kiểm thử đượ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 được sử dụng trong quá trình kiểm thử tự động.

    test_password
    test_password_file

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

    Ngoài ra, bạn có thể chỉ định đường dẫn đến tệp văn bản thuần tuý 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 thử 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 thử tự động.

    test_non_blocking

    Chạy kiểm thử tự động không đồng bộ. Truy cập vào bảng điều khiển của Firebase để xem kết quả kiểm thử tự động.

    debug

    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 kiểm thử, hãy chạy làn:

fastlane <lane>

Giá trị trả về của thao tác này là một hàm băm đại diện cho bản phát hành đã tải lên. Bạn cũng có thể sử dụng lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] để tạo hàm băm này. Để 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 về API REST.

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

  • Đường 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ẻ đường 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 kiểm thử (ứng dụng gốc Android) cho phép người kiểm thử xem ghi chú phát hành và cài đặt ứng dụng trên thiết bị của họ. Người kiểm thử cần có quyền truy cập vào bản phát hành để sử dụng đường liên kết.
  • Đường liên kết đã ký tải trực tiếp và cài đặt tệp nhị phân của ứng dụng (tệp APK hoặc AAB). Đường liên kết này sẽ hết hạn sau một giờ.

Sau khi bạn phân phối bản dựng, bản dựng đó sẽ có trong trang tổng quan App Distribution của bảng điều khiển Firebase trong 150 ngày. Khi bản dựng sắp hết hạn 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 bản dựng của người kiểm thử trên thiết bị kiểm thử của họ.

Những người kiểm thử chưa từng được mời thử nghiệm ứng dụng sẽ nhận được email mời bắt đầu. Người kiểm thử 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 để kiểm thử. Để tìm hiểu cách cài đặt ứng dụng kiểm thử, hãy xem hướng dẫn thiết lập cho người kiểm thử. Bạn có thể theo dõi trạng thái của từng người kiểm thử để xác định xem họ có chấp nhận lời mời và tải ứng dụng xuống trong bảng điều khiển Firebase hay không.

(Không bắt buộc) Để tự động tăng số bản dựng mỗi khi tạo một bản phát hành mới trong App Distribution, bạn có thể sử dụng thao tác firebase_app_distribution_get_latest_release và ví dụ: trình bổ trợ fastlane increment_version_code. Mã sau đây cung cấp ví dụ về cách tự động tăng số bản dựng:

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ề thao tác firebase_app_distribution_get_latest_release, hãy xem phần Nhận thông tin về bản phát hành mới nhất của ứng dụng.

Bước 4 (Không bắt buộc). Quản lý người thử nghiệm cho bản phát hành

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

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

Nếu có một số lượng lớn người kiểm thử, 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 các thao tác 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 thử bằng --file="/path/to/testers.txt thay vì --emails.

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: Số dự án Firebase của bạn.
  • group_alias (không bắt buộc): Nếu được chỉ định, người kiểm thử sẽ được thêm vào (hoặc xoá khỏi) nhóm đã chỉ định.
  • service_credentials_file: Đường dẫn đến tệp thông tin xác thực dịch vụ của Google.
  • firebase_cli_token: Mã thông báo xác thực cho CLI Firebase.

service_credentials_filefirebase_cli_token là cùng một đối số mà thao tác tải lên sử dụng.

Bước 5 (Không bắt buộc). Xem thông tin về bản phát hành mới nhất của ứng dụng

Bạn có thể sử dụng thao tác 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 tính năng Phân phối ứng dụng, bao gồm thông tin về 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 việc tự động tăng phiên bản và chuyển các ghi chú phát hành từ bản phát hành trước.

Giá trị trả về của thao tác này là một hàm băm đại diện cho bản phát hành mới nhất. Bạn cũng có thể sử dụng lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] để tạo hàm băm này. Để 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 về API REST.

Thông số

Tham số firebase_app_distribution_get_latest_release
app

Bắt buộc: Mã ứng dụng Firebase của ứng dụng. Bạn có thể tìm thấy Mã ứ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 bằng CLI Firebase (hãy đọc phần Sử dụng CLI với các hệ thống CI để biết thêm thông tin).

service_credentials_file

Đường dẫn đến tệp json của tài khoản dịch vụ Google. Hãy xem phần trên để biết cách xác thực bằng thông tin xác thực tài khoản dịch vụ.

debug

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

Các bước tiếp theo