Bạn có thể phân phối các bản dựng cho người kiểm thử bằng cách sử dụng fastlane, một nền tảng nguồn mở giúp tự động hoá việc xây dựng và phát hành ứng dụng iOS và Android. Hướng dẫn này tuân theo các hướng dẫ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.
Trước khi bắt đầu
Nếu bạn chưa thực hiện, hãy thêm Firebase vào dự án Apple.
Nếu không sử dụng bất kỳ sản phẩm nào khác của Firebase, bạn chỉ cần tạo một dự án và đăng ký ứng dụng của mình. Tuy nhiên, nếu bạn quyết định sử dụng thêm các sản phẩm khác trong tương lai, hãy nhớ hoàn tất tất cả các bước trên trang được liên kết ở trên.
Mở trang App Distribution của bảng điều khiển Firebase. Chọn dự án Firebase của bạn khi được nhắc, chọn ứng dụng bằng trình chuyển đổi ứng dụng rồi nhấp vào Bắt đầu.
Bước 1. Thiết lập fastlane
Để 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 iOS:
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 của mình theo một trong những cách sau. Theo mặc định, trình bổ trợ fastlane sẽ tìm thông tin đăng nhập từ CLI Firebase nếu không có phương thức xác thực nào khác được sử dụng.
Bước 3. Thiết lập Fastfile và phân phối ứng dụng
- Trong làn
./fastlane/Fastfile, hãy thêm một khốifirebase_app_distribution. Sử dụng các tham số sau để định cấu hình bản phân phối:tham số firebase_app_distribution appChỉ bắt buộc nếu ứng dụng của bạn không chứa tệp cấu hình Firebase (
GoogleService-Info.plist): 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:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathĐường dẫn đến tệp
GoogleService-Info.plistcủa bạn, tương ứng với đường dẫn sản phẩm đã lưu trữ. Theo mặc định, thuộc tính này được đặt thànhGoogleService-Info.plist.Tệp này được dùng để lấy Mã ứng dụng Firebase của ứng dụng nếu bạn không chỉ định tham số
app.firebase_cli_tokenMã làm mới được in khi bạn xác thực môi trường CI bằng Firebase CLI (đọc bài viết 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 của tài khoản dịch vụ Google. Xem phầ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ụ.
ipa_pathThay thế
apk_path(không dùng nữa). Đường dẫn tuyệt đối đến tệp IPA 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 mà tệp được tạo.release_notes
release_notes_fileGhi 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 những 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_fileNhó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 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
Thiết bị thử nghiệm mà bạn muốn chạy các thử nghiệm của tác nhân Kiểm thử ứng dụng.
Bạn có thể chỉ định thiết bị thử nghiệm dưới dạng danh sách thông số kỹ thuật của thiết bị được phân tách bằng dấu chấm phẩy:
test_devices: "model=shiba,version=34,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 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_usernameTên người dùng để tự động đăng nhập trong quá trình kiểm thử bằng tác nhân Kiểm thử ứng dụng.
test_password
test_password_fileMật khẩu để đăng nhập tự động, được dùng trong các bài kiểm thử của tác nhân Kiểm thử ứng dụ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_resourceTên tài nguyên cho trường tên người dùng để tự động đăng nhập trong quá trình kiểm thử bằng tác nhân Kiểm thử ứng dụng.
test_password_resourceTên tài nguyên cho trường mật khẩu để đăng nhập tự động, được dùng trong các bài kiểm thử của tác nhân Kiểm thử ứng dụng.
test_non_blockingNếu được đặt khi chạy các bài kiểm thử của tác nhân Kiểm thử ứng dụng, lệnh này sẽ bắt đầu các bài kiểm thử rồi trả về ngay lập tức thay vì chờ các bài kiểm thử hoàn tất. Để xem kết quả thử nghiệm, hãy truy cập vào bảng điều khiển của Firebase. Nếu bạn không đặt cờ này, lệnh sẽ chặn cho đến khi các kiểm thử hoàn tất và thoát bằng mã lỗi nếu có bất kỳ kiểm thử nào không thành công.
debugCờ boolean. Bạn có thể đặt giá trị này thành
trueđể in kết quả gỡ lỗi chi tiết.
Ví dụ:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Để cung cấp bản dựng cho người kiểm thử, hãy chạy làn của bạn:
fastlane <lane>
Giá trị trả về của hành động 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ể lấy hàm băm này 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 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 cho thấy một bản phát hành duy nhất. 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 thử nghiệm (đoạn video trên web iOS) cho phép người thử nghiệm xem ghi chú phát hành và cài đặt ứng dụng trên 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 đường liên kết.
- Một đường liên kết đã ký giúp tải xuống và cài đặt trực tiếp tệp nhị phân của ứng dụng (tệp IPA). Đường 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, bản dựng đó sẽ xuất hiện 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 còn 30 ngày nữa là hết hạn, 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 thử nghiệm chưa được mời thử nghiệm ứng dụng trước đó sẽ nhận được lời mời qua email để 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 thử nghiệm, hãy xem bài viết Thiết lập với tư cách là 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 hay không và liệu họ có 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 bạn 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à increment_build_number.
Đoạn mã sau đây là 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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Để tìm hiểu thêm về tính năng trình bổ trợ fastlane này, hãy xem bài viết 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ân phối
Bạn có thể thêm và xoá người thử nghiệm khỏi dự án hoặc nhóm bằng tệp Fastfile
hoặc bằng cách trực tiếp chạy các thao tác fastlane. Việc chạy trực tiếp các hành động 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 thử nghiệm 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ể vẫn có 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 có nhiều 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_testersChạ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.
Các tác vụ firebase_app_distribution_add_testers và firebase_app_distribution_remove_testers cũng chấp nhận các đối số sau:
project_number: 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 được 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 Firebase CLI.
service_credentials_file và firebase_cli_token là các đối số giống nhau được dùng cho thao tác tải lên.
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ể 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 App Distribution, bao gồm cả 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 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à 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ể lấy hàm băm này 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 về API REST.
Thông số
| tham số firebase_app_distribution_get_latest_release | |
|---|---|
app
|
Chỉ bắt buộc nếu ứng dụng của bạn không chứa tệp cấu hình Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
Đường dẫn đến tệp
Tệp này được dùng để lấy Mã ứng dụng Firebase của ứng dụng nếu bạn không chỉ định tham số |
firebase_cli_token
|
Mã làm mới được in khi bạn xác thực môi trường CI bằng Firebase CLI (đọc bài viết 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 của tài khoản dịch vụ Google. Hãy xem tài liệu trước đó để biết cách xác thực bằng thông tin đăng nhập tài khoản dịch vụ. |
service_credentials_json_data
|
Nội dung tệp JSON của tài khoản dịch vụ Google. Hãy xem tài liệu trước đó để biết cách xác thực bằng thông tin đăng nhập tài khoản dịch vụ. |
debug
|
Cờ boolean. Bạn có thể đặt giá trị này thành |
Các bước tiếp theo
Để đăng ký thêm thiết bị theo cách thủ công hoặc theo chương trình, hãy xem phần Đăng ký thêm thiết bị iOS.
Tìm hiểu các phương pháp hay nhất để phân phối ứng dụng Apple cho người kiểm thử QA bằng CI/CD và fastlane.