Phân phối bản dựng iOS trước khi phát hành nhanh hơn bằng tính năng Phân phối ứng dụng và khởi động nhanh

1. Trước khi bắt đầu

4cddd34bd261cea0.png

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng Phân phối ứng dụng Firebase và trình bổ trợ fastlane của dịch vụ này để phân phối một ứng dụng iOS cho người kiểm thử, thu thập UDID của thiết bị kiểm thử và đăng ký các UDID đó vào hồ sơ cung cấp của ứng dụng. Nhờ đó, bạn có thể nhanh chóng đưa các bản dựng Ad Hoc đến tay người kiểm thử.

Kiến thức bạn sẽ học được

  • Cách tải lên và phân phối ứng dụng iOS trước khi phát hành (Ad Hoc) cho người kiểm thử bằng tính năng Phân phối ứng dụng Firebase và fastlane.
  • Cách đăng ký làm người kiểm thử và tải ứng dụng được phân phối xuống thiết bị kiểm thử.
  • Cách nhanh chóng đăng ký thiết bị thử nghiệm bằng cách xuất UDID của thiết bị thử nghiệm bằng trình bổ trợ fastlane của App Distribution.
  • Cách cập nhật hồ sơ cấp phép của ứng dụng và tải lại hồ sơ đó lên để phân phối.

Bạn cần có

  • Tài khoản Google
  • Máy Apple đã cài đặt XCode 11.7 trở lên
  • Ứng dụng iOS phát hành trước Ad Hoc được tạo trong Xcode
  • Một tài khoản Apple Developer có tính phí
  • Một thiết bị iOS thực để kiểm thử.

Ứng dụng trình mô phỏng iOS sẽ hoạt động cho hầu hết các lớp học lập trình, nhưng trình mô phỏng không thể tải các bản phát hành xuống.

Bạn vẫn có thể xác minh rằng chế độ thiết lập đã hoạt động bằng cách xác minh rằng nút "Tải xuống" xuất hiện trên ứng dụng web kiểm thử Phân phối ứng dụng.

2. Bắt đầu

Thiết lập fastlane

Phân phối ứng dụng tích hợp với fastlane để cho phép bạn tự động hoá việc phân phối các bản dựng trước khi phát hành của ứng dụng. Phân phối ứng dụng tích hợp với cấu hình fastlane của bạn.

  1. Cài đặt và thiết lập fastlane.
  2. Chạy fastlane init trong thư mục gốc của dự án trong quá trình thiết lập và chọn "Thiết lập thủ công". Bạn sẽ thấy một thư mục con có tên là fastlane chứa Fastfile, AppfilePluginfile. Bạn sẽ dùng các thư mục này để định cấu hình fastlane.

Cài đặt Giao diện dòng lệnh (CLI) của Firebase

Bạn cũng cần cài đặt Firebase CLI. Nếu đang sử dụng macOS hoặc Linux, bạn có thể chạy lệnh cURL sau:

curl -sL https://firebase.tools | bash

Nếu bạn đang sử dụng Windows, hãy đọc hướng dẫn cài đặt để nhận tệp nhị phân độc lập hoặc cài đặt thông qua npm.

Sau khi bạn cài đặt CLI, việc chạy firebase --version sẽ báo cáo phiên bản 12.0.0 trở lên:

$ firebase --version
12.0.0

3. Tạo ứng dụng bằng fastlane

Tạo ứng dụng

  1. Đặt một số biến chung cho fastlane trong ./fastlane/Appfile.. Thêm mã ứng dụng và Apple ID của bạn:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Tạo làn đường đầu tiên và sử dụng thao tác build_app của fastlane (còn gọi là gym) để tạo ứng dụng bằng cách thêm nội dung sau vào ./fastlane/Fastfile:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Ký ứng dụng để phân phối.

Trong lớp học lập trình này, bạn sẽ quản lý chứng chỉ và hồ sơ của riêng mình bằng get_certificates (còn gọi là cert). Công cụ này tạo chứng chỉ ký cục bộ và lưu trữ mọi thứ trong Chuỗi khoá macOS. Tuy nhiên, thông thường, bạn sẽ muốn sử dụng fastlane sync_code_signing action (còn được gọi là match) để quản lý an toàn các chứng chỉ và hồ sơ ký mã của nhóm.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Thiết lập hồ sơ cung cấp cho ứng dụng của bạn bằng thao tác get_provisioning_profile (còn gọi là sigh). Nhờ đó, bạn có thể chia sẻ ứng dụng của mình với người kiểm thử.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Không bắt buộc] Nếu bạn chưa từng chạy ứng dụng của mình trước đây, hãy chạy lệnh sau để tạo ứng dụng trong bảng điều khiển dành cho nhà phát triển của Apple:

$ fastlane produce --skip_itc

  1. Cuối cùng, hãy tạo ứng dụng bằng cách chạy làn đường.

Bạn sẽ được nhắc nhập mã nhận dạng Apple, mật khẩu (được lưu trữ trong Chuỗi khoá) và mã nhận dạng gói của ứng dụng.

$ fastlane build

Nếu bạn gặp vấn đề, vui lòng xem hướng dẫn khắc phục sự cố về fastlane.

4. Tải ứng dụng của bạn lên Firebase

Giờ đây, sau khi tạo ứng dụng, bạn đã sẵn sàng tải ứng dụng lên tính năng Phân phối ứng dụng.

Tạo một dự án Firebase mới

  1. Đăng nhập vào bảng điều khiển của Firebase bằng Tài khoản Google của bạn.
  2. Nhấp vào nút để tạo một dự án mới, sau đó nhập tên dự án (ví dụ: UDID Export Codelab).
  3. Nhấp vào Tiếp tục.
  4. Nếu được nhắc, hãy xem xét và chấp nhận các điều khoản của Firebase, rồi nhấp vào Tiếp tục.
  5. (Không bắt buộc) Bật tính năng hỗ trợ của AI trong bảng điều khiển của Firebase (còn gọi là "Gemini trong Firebase").
  6. Đối với lớp học lập trình này, bạn không cần Google Analytics, vì vậy hãy tắt lựa chọn Google Analytics.
  7. Nhấp vào Tạo dự án, đợi dự án được cấp phép rồi nhấp vào Tiếp tục.

Thêm ứng dụng iOS vào dự án

  1. Nhấp vào biểu tượng iOS để tạo một ứng dụng Firebase iOS mới, rồi nhập mã nhận dạng gói của ứng dụng.

9c26c130a6c42212.png

  1. Bỏ qua một vài bước tiếp theo, sau đó nhấp vào Tiếp tục đến bảng điều khiển. Sau này, bạn sẽ thêm các SDK vào ứng dụng của mình.

Giờ đây, dự án và ứng dụng của bạn đã có trên trang Tổng quan về dự án.

66f79cc8a97fa8e9.png

Bật tính năng Phân phối ứng dụng

  1. Trong phần Phát hành và giám sát, hãy nhấp vào Phân phối ứng dụng.
  2. Sau khi chấp nhận các điều khoản, hãy nhấp vào "Bắt đầu" để bật tính năng Phân phối ứng dụng cho ứng dụng của bạn.

460213326c2784ae.png

Thiết lập chế độ phân phối trong fastlane

  1. Chạy lệnh sau từ gốc của dự án iOS để thêm App Distribution vào cấu hình fastlane.

Nếu lệnh nhắc bạn chọn một tuỳ chọn, hãy chọn Tuỳ chọn 3: RubyGems.org:

$ fastlane add_plugin firebase_app_distribution

  1. Xác nhận rằng bạn đã cài đặt trình bổ trợ:

$ fastlane

Đầu ra sẽ cho thấy fastlane-plugin-firebase_app_distribution trong danh sách các trình bổ trợ đã cài đặt.

  1. Sau khi xác nhận rằng bạn đã cài đặt trình bổ trợ, hãy chọn phương án 0 để huỷ.

Xác thực dự án Firebase

Để sử dụng trình bổ trợ fastlane, trước tiên, bạn cần xác thực dự án Firebase của mình.

  1. Chạy lệnh sau để kết nối CLI với Tài khoản Google của bạn:

$ firebase login

  1. Khi lệnh in một đường liên kết xác thực, hãy mở đường liên kết đó trong một trình duyệt.
  2. Khi được nhắc, hãy đăng nhập vào Tài khoản Google của bạn và cấp quyền truy cập vào dự án Firebase.

Phân phối ứng dụng

Bây giờ, bạn đã sẵn sàng phân phối ứng dụng.

  1. Ở đầu ./fastlane/Fastfile, hãy xác định một biến có tên là firebase_app_id. Thay thế <your_app_id> bằng mã ứng dụng Firebase cho ứng dụng mà bạn đã tạo (bạn có thể tìm thấy mã này trên trang cài đặt dự án).

Fastfile được viết bằng Ruby, vì vậy hãy dùng cú pháp Ruby để xác định các biến.

firebase_app_id = "<your_app_id>"
  1. Thêm một làn đường mới có tên là distribute, gọi làn đường xây dựng, rồi phân phối ứng dụng của bạn bằng thao tác firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Chạy làn đường mới để tạo ứng dụng và tạo bản phân phối.

$ fastlane distribute

Tại thời điểm này, Fastfile của bạn sẽ có dạng như sau:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Sau khi làm mới bảng điều khiển Firebase, bạn sẽ thấy bản phát hành mới cho ứng dụng của mình.

c59dc1a94de3bf3c.png

5. Mời người kiểm thử tải ứng dụng của bạn xuống

Khi chấp nhận lời mời kiểm thử một bản dựng Ad Hoc, người kiểm thử sẽ được yêu cầu cấp quyền chia sẻ UDID của họ. Nếu họ đồng ý, tính năng Phân phối ứng dụng sẽ thu thập thông tin về thiết bị của họ và thông báo cho bạn qua email. Trong phần này, bạn sẽ thêm chính mình làm người kiểm thử để tải xuống và kiểm thử ứng dụng mà bạn đã phân phối.

Thêm chính bạn làm người kiểm thử cho bản phát hành

  1. Trong firebase_app_id ở đầu Fastfile, hãy tạo một biến để lưu trữ người kiểm thử và thêm địa chỉ email của riêng bạn, cũng như các địa chỉ email không bắt buộc khác mà bạn muốn thử.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Áp dụng phương thức Array#join của Ruby để chuyển mảng app_testers thành một chuỗi được phân tách bằng dấu phẩy mà tham số testers mong đợi. Sau đó, truyền kết quả vào tham số testers của firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

Tại thời điểm này, Fastfile của bạn sẽ có dạng như sau:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. Chạy lại làn đường.

$ fastlane distribute

Sau khi bạn chạy làn đường, những người kiểm thử mà bạn đã thêm sẽ nhận được email mời từ Dịch vụ phân phối ứng dụng, thông báo cho họ về bản phát hành mới có sẵn. Trong bảng điều khiển của Firebase, giờ đây, bạn có thể thấy những người kiểm thử mà bạn đã thêm trong bản phát hành của ứng dụng.

2e0fc9603b868af8.png

Vì bạn đã cung cấp địa chỉ email của mình, nên bạn sẽ nhận được email từ Firebase App Distribution mời bạn kiểm thử ứng dụng. Giờ đây, bạn là người kiểm thử đầu tiên! Tiếp tục xem phần bên dưới để thiết lập tư cách người kiểm thử trên thiết bị kiểm thử.

Đăng ký thiết bị thử nghiệm

Là người kiểm thử, bạn cần đăng nhập vào Google trên thiết bị kiểm thử để truy cập vào các bản phát hành ứng dụng mà bạn được mời kiểm thử. Vì bản kiểm thử là một bản phát hành Ad Hoc, nên bạn cũng cần đăng ký thiết bị kiểm thử bằng cách cài đặt hồ sơ Firebase. Sau đó, bạn có thể truy cập vào các bản phát hành có sẵn thông qua ứng dụng web dành cho người kiểm thử của Phân phối ứng dụng bằng cách sử dụng đoạn mã trên web được thêm vào màn hình chính của thiết bị.

  1. Trên thiết bị kiểm thử iOS, hãy mở email do Firebase App Distribution gửi rồi nhấn vào đường liên kết Bắt đầu. Nhớ mở đường liên kết trong Safari.
  2. Giờ đây, bạn đã truy cập vào ứng dụng web dành cho người kiểm thử Phân phối ứng dụng. Trong trang xuất hiện, hãy đăng nhập bằng Tài khoản Google của bạn rồi nhấn vào Chấp nhận lời mời.

d833407de251b89f.png

  1. Giờ đây, bạn có thể xem những bản phát hành mà bạn được mời tham gia. Nhấn vào Đăng ký thiết bị trong một bản phát hành.

fd141215e54a938d.png

  1. Khi được nhắc, hãy tải hồ sơ Firebase xuống, sau đó cài đặt hồ sơ này trong ứng dụng Cài đặt.

Việc cài đặt hồ sơ sẽ cấp cho Firebase quyền:

  • Đăng ký thiết bị thử nghiệm bằng cách thu thập mã thiết bị duy nhất (UDID) của thiết bị.

Firebase sẽ gửi email cho tất cả Chủ sở hữu và Người chỉnh sửa của dự án Firebase, trong đó có UDID của thiết bị thử nghiệm.

  • Cài đặt một đoạn trích trên web vào màn hình chính của thiết bị thử nghiệm. Đoạn trích trên web sẽ mở ứng dụng web dành cho người kiểm thử của tính năng Phân phối ứng dụng, cho phép bạn cài đặt và truy cập vào tất cả các ứng dụng thử nghiệm của mình.

Trong ứng dụng web dành cho người kiểm thử của tính năng Phân phối ứng dụng, thiết bị kiểm thử của bạn hiện đã được đăng ký cho bản phát hành ứng dụng.

fe93d649dfa25877.png

Giờ đây, khi đã chia sẻ UDID của thiết bị thử nghiệm với Firebase, bạn có thể tiếp tục với tư cách là nhà phát triển. Trong thẻ Người kiểm thử của trang tổng quan Phân phối ứng dụng, thông tin về người kiểm thử hiện xuất hiện trong bản phát hành ứng dụng của bạn với trạng thái "Đã chấp nhận":

7b9f665a63a384cf.png

Trong phần tiếp theo, bạn sẽ thêm UDID của thiết bị vào hồ sơ cung cấp của ứng dụng, sau đó tạo một phiên bản ứng dụng hoạt động với thiết bị kiểm thử.

Xuất UDID của thiết bị kiểm thử

Là nhà phát triển, bạn sẽ nhận được email từ Firebase có chứa UDID của thiết bị thử nghiệm. Ngoài ra, App Distribution giúp bạn dễ dàng thu thập nhiều UDID thiết bị mới cùng lúc bằng cách cho phép bạn xuất các UDID đó trực tiếp từ bảng điều khiển Firebase dưới dạng tệp văn bản thô.

  1. Để xuất tất cả UDID, hãy mở thẻ Người kiểm thử và nhóm.

241a9936898a2fc0.png

  1. Nhấp vào Xuất UDID của Apple.

bcf0c26c522d9b4e.png

Tệp này phải chứa UDID của thiết bị kiểm thử.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

Bạn cũng có thể xuất UDID từ dòng lệnh bằng fastlane. Bạn sẽ thực hiện việc này trong phần tiếp theo.

6. Cập nhật hồ sơ cấp phép của ứng dụng rồi tạo lại hồ sơ đó

Giờ đây, bạn sẽ thêm UDID của thiết bị kiểm thử vào hồ sơ cung cấp của ứng dụng, tạo lại một phiên bản ứng dụng hoạt động cho thiết bị của bạn và phân phối phiên bản mới.

Thêm làn đường xuất UDID

  1. Thêm một biến khác vào đầu Fastfile và đặt biến đó thành một đường dẫn tệp nơi UDID thiết bị của người kiểm thử sẽ được tải xuống.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Thiết lập một làn đường mới sử dụng thao tác xuất UDID của trình bổ trợ Phân phối ứng dụng để tải UDID của người kiểm thử xuống, giống như bạn đã làm trên bảng điều khiển.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. Chạy làn đường sau để tải UDID xuống.

$ fastlane download_udids

  1. In tệp đã tải xuống. Tệp này phải chứa UDID của thiết bị kiểm thử.

$ cat tester_udids.txt

Thêm thiết bị vào Apple Developer Console

  1. Tạo làn đường sau đây để thêm UDID vào danh sách thiết bị trong bảng điều khiển dành cho nhà phát triển của Apple, nhờ đó bạn có thể thêm UDID vào hồ sơ cung cấp bằng cách sử dụng thao tác register_devices của fastlane:
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Sau đó, hãy chạy làn đường:

$ fastlane add_new_devices

Sau đó, bạn sẽ thấy các thiết bị mới trong danh sách thiết bị của bảng điều khiển dành cho nhà phát triển.

Thêm thiết bị vào hồ sơ cung cấp

  1. Thêm đối số force vào bước hồ sơ cung cấp trong làn build của bạn để buộc nó chọn thiết bị mới mỗi khi bạn tạo.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Chạy lại làn đường để tạo và tải lên

Giờ đây, bạn sẽ cập nhật làn đường distribute bằng các làn đường mới để thêm thiết bị vào hồ sơ cung cấp, tạo lại ứng dụng rồi phân phối ứng dụng đó.

  1. Gọi các làn đường mới từ distribute:
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. Chạy làn đường distribute:

$ fastlane distribute

Tại thời điểm này, Fastfile của bạn sẽ có dạng như sau:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

Tải bản phát hành xuống từ thiết bị thử nghiệm

Giờ đây, ứng dụng của bạn đã có UDID của thiết bị thử nghiệm, nên bạn có thể cài đặt ứng dụng lên các thiết bị thử nghiệm.

e275f73d57cc8fb1.png

  1. Trên thiết bị kiểm thử, hãy quay lại ứng dụng web kiểm thử Phân phối ứng dụng bằng cách dùng đường liên kết trong email hoặc biểu tượng trên màn hình chính của thiết bị.

Khi chuyển đến ứng dụng lớp học lập trình UDID, bạn có thể thấy rằng bản phát hành đã sẵn sàng để tải xuống.

dad6d03b6ad78746.png

  1. Nếu bạn đang sử dụng một thiết bị thực, hãy nhấn vào nút tải xuống, sau đó cài đặt và chạy ứng dụng!

7. Xin chúc mừng

Giờ đây, bạn đã định cấu hình Phân phối ứng dụng và fastlane để tự động hoá quy trình kiểm thử trước khi phát hành. Giờ đây, khi muốn mời thêm người kiểm thử hoặc thêm UDID của họ vào ứng dụng, bạn chỉ cần chạy một lệnh: fastlane distribute.

Vì vậy, bạn không cần phải thu thập riêng lẻ UDID của người kiểm thử, hoặc truy cập vào bảng điều khiển dành cho nhà phát triển của Apple để cập nhật danh sách thiết bị hoặc hồ sơ cung cấp nữa. Bạn thậm chí không cần mở XCode!

Bạn có thể dễ dàng thiết lập quy trình này để chạy theo giờ hoặc theo ngày trong môi trường tích hợp liên tục.

Tài liệu đọc thêm