Bạn có thể phân phối bản dựng cho người thử nghiệm bằng cách sử dụng fastlane , một nền tảng mã 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 bạn thiết lập fastlane và Fastfile
của mình, 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.
Bước 1. Thiết lập fastlane
Để 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 iOS 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 với Firebase
Trước khi bạn 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 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.
Xác thực bằng tài khoản dịch vụ cho phép bạn sử dụng plugin một cách linh hoạt với hệ thống tích hợp liên tục (CI) của mình. Có hai cách để cung cấp thông tin đăng nhập tài khoản dịch vụ:
- Chuyển tệp khóa tài khoản dịch vụ của bạn cho hành động
firebase_app_distribution
. Bạn có thể thấy phương pháp này thuận tiện nếu bạn đã có tệp khóa tài khoản dịch vụ trong môi trường xây dựng của mình. - Đặt biến môi trường
GOOGLE_APPLICATION_CREDENTIALS
để trỏ đến tệp khóa tài khoản dịch vụ của bạn. Bạn có thể thích phương pháp này hơn nếu bạn đã định cấu hình Thông tin đăng nhập mặc định của ứng dụng (ADC) cho một dịch vụ khác của Google (ví dụ: Google Cloud).
- Trên Google Cloud Console, chọn dự án của bạn và tạo một tài khoản dịch vụ mới.
- Thêm vai trò Quản trị viên phân phối ứng dụng Firebase .
- Tạo khóa json riêng và di chuyển khóa đến vị trí có thể truy cập vào môi trường xây dựng của bạn. Đảm bảo giữ tệp này ở nơi an toàn vì tệp cấp cho quản trị viên quyền truy cập vào Phân phối ứng dụng trong dự án Firebase của bạn.
- Bỏ qua bước này nếu bạn đã tạo ứng dụng của mình sau ngày 20 tháng 9 năm 2019: Trong bảng điều khiển Google API, hãy bật API phân phối ứng dụng Firebase. Khi được nhắc, hãy chọn dự án có cùng tên với dự án Firebase của bạn.
Cung cấp hoặc xác định thông tin đăng nhập tài khoản dịch vụ của bạn:
- Để chuyển khóa tài khoản dịch vụ của bạn tới hành động
firebase_app_distribution
trên làn đường của bạn, hãy đặt tham sốservice_credentials_file
với đường dẫn đến tệp JSON khóa riêng tư của bạn Để xác định thông tin đăng nhập của bạn với ADC, hãy đặt biến môi trường
GOOGLE_APPLICATION_CREDENTIALS
thành đường dẫn cho tệp JSON của khóa riêng tư. Ví dụ:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Để biết thêm thông tin về xác thực với ADC, hãy đọc Cung cấp thông tin xác thực cho ứng dụng của bạn.
- Để chuyển khóa tài khoản dịch vụ của bạn tới hành động
Xem Đăng nhập bằng Firebase CLI để biết hướng dẫn về cách xác thực dự án của bạn.
Bước 3. Thiết lập Fastfile và phân phối ứng dụng của bạn
- Trong làn đường
./fastlane/Fastfile
, hãy thêm khốifirebase_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
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 (
GoogleService-Info.plist
) : 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:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
Đường dẫn đến tệp
GoogleService-Info.plist
của bạn, có liên quan đến đường dẫn sản phẩm đã lưu trữ. Đặt thànhGoogleService-Info.plist
theo mặc định.Tệp được sử dụng để lấy ID ứng dụng Firebase của ứng dụng nếu thông số
app
không được chỉ định.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ụ .
ipa_path
Thay 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_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 những 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
Các 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"
debug
Một cờ boolean. Bạn có thể đặt giá trị này thành
true
để in đầu ra 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 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à một hàm băm đại diện cho bản phát hành đã tải lên. 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 khả dụng trong hàm băm này, hãy xem tài liệu API REST .
Plugin fastlane xuất 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à các 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.
- Liên kết tới bản phát hành trong trải nghiệm của người thử nghiệm (clip 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 truy cập vào bản phát hành để sử dụng liên kết.
- Một liên kết đã ký trực tiếp tải xuống và cài đặt ứng dụng nhị phân (tệp IPA). Liên kết 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 còn 30 ngày kể từ ngày 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 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 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 Thiết lập với tư cách là 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 của bạn 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 tác vụ firebase_app_distribution_get_latest_release
và tác vụ increment_build_number
. Đoạn mã sau cung cấp một 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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Để tìm hiểu thêm về tính năng plugin fastlane này, 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 kiểm tra phân phối
Bạn có thể thêm và xóa người kiểm tra khỏi dự án hoặc nhóm của mình bằng cách sử dụng tệp Fastfile
hoặc bằng cách chạy trực tiếp các tác vụ 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 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ó nhiều người thử nghiệm, bạn nên cân nhắc sử dụng các 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 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_testers
và firebase_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
(tùy chọn): Nếu được chỉ định, người kiểm tra sẽ được thêm vào (hoặc 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_file
và firebase_cli_token
là các đối số giống nhau được sử dụng bởi hành động tải lên.
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 tác vụ 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 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 tự động tăng phiên bản và mang theo 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ă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 khả dụng trong hàm băm này, hãy xem tài liệu API REST .
Thông số
thông 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 được sử dụng để lấy ID ứng dụng Firebase của ứng dụng nếu thông số |
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 cờ boolean. Bạn có thể đặt giá trị này thành |
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 Đăng ký thiết bị iOS bổ sung .
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 tra QA bằng cách sử dụng CI/CD và fastlane .