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.pngs

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách sử dụng tính năng Phân phối ứng dụng Firebase và trình bổ trợ fastlane của công cụ này để phân phối ứ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ý chúng vào hồ sơ cấp phép của ứng dụng. Nhờ đó, bạn có thể nhanh chóng đưa bản dựng Ad Hoc đến với người kiểm thử tay.

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 phát hành trước (Ad Hoc) cho người thử nghiệm bằng tính năng Phân phối ứng dụng Firebase và fastlane (Phân phối ứng dụng Firebase).
  • Cách đăng ký làm người kiểm thử và tải ứng dụng đã 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 tính năng Phân phối ứng dụng.
  • Cách cập nhật hồ sơ cấp phép của ứng dụng và tải ứng dụng lên lại để 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
  • Tài khoản nhà phát triển Apple có trả phí
  • Một thiết bị iOS thực để thử nghiệm.

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

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

2. Bắt đầu

Thiết lập cách nhanh chóng

Tính năng Phân phối ứng dụng tích hợp với fastlane (nhanh chóng) để 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. Tính năng Phân phối ứng dụng tích hợp với cấu hình cách nhanh chóng.

  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 rồi 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, trong đó chứa Fastfile, AppfilePluginfile. Bạn sẽ dùng các thư mục này để định cấu hình lái nhanh.

Cài đặt Firebase CLI

Bạn cũng sẽ 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 để tải tệp nhị phân độc lập hoặc cài đặt 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. Xây dựng ứng dụng bằng tua nhanh

Xây dựng ứng dụng

  1. Đặt một số biến toàn cục cho lệnh fastlane (nhanh) trong ./fastlane/Appfile. bao gồm mã ứng dụng và ID Apple 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 hành động nhanh chóng build_app (còn gọi là gym) để tạo ứng dụng bằng cách thêm đoạn mã 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.

Đối với 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 cách sử dụng get_certificates (còn gọi là cert). Thao tác này giúp tạo các chứng chỉ ký trên thiết bị và lưu trữ mọi thứ trong macOS Keychain. Tuy nhiên, thông thường, bạn nên sử dụng fastlane sync_code_signing action (còn gọi là match) để quản lý hồ sơ và chứng chỉ ký mã của nhóm một cách an toàn.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Thiết lập hồ sơ cấp phép cho ứng dụng của bạn bằng thao tác get_provisioning_profile (còn được gọi là sigh). Việc này cho phép bạn 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 của bạn trong Apple Developer Console:

$ fastlane produce --skip_itc

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

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

$ fastlane build

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

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

Giờ đây, khi đã tạo xong ứng dụng của mình, 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 và thiết lập dự án Firebase

  1. Đăng nhập Firebase.
  2. Trong bảng điều khiển của Firebase,hãy tạo hoặc thêm dự án mới, sau đó đặt tên cho dự án là "Lớp học lập trình xuất UDID".

Bạn không cần bật Google Analytics cho dự án này.

  1. Nhấp vào Tạo dự án.

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

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

9c26c130a6c42212.pngS

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

Dự án và ứng dụng của bạn hiện đã có trên trang Tổng quan về dự án.

66f79cc8a97fa8e9.png.

Cho phép phân phối ứng dụng

  1. Trong phần Bản phát hành & 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 phân phối trong fastlane

  1. Chạy lệnh sau từ thư mục gốc của dự án iOS để thêm tính năng Phân phối ứng dụng vào cấu hình fastlane.

Nếu lệnh nhắc bạn với một tuỳ chọn, hãy chọn Option 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

Kết quả phải hiển thị fastlane-plugin-firebase_app_distribution trong danh sách trình bổ trợ đã cài đặt.

  1. Sau khi xác nhận trình bổ trợ đã được cài đặt, hãy chọn tuỳ chọn 0 để huỷ.

Xác thực dự án Firebase

Để sử dụng trình bổ trợ fastlane, trước tiên, bạn sẽ 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 ra 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 của bạn.

Phân phối ứng dụng

Giờ bạn đã sẵn sàng phân phối ứng dụng của mình.

  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 sử dụng cú pháp của 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. Đường này có tên là đường của bản 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 để xây dựng ứng dụng và tạo bản phân phối.

$ fastlane distribute

Tại thời điểm này, tệp 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 của 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 thử nghiệm 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 mình. Nếu họ đồng ý, tính năng Phân phối ứng dụng sẽ thu thập thông tin 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 và kiểm thử ứng dụng bạn đã phân phối.

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

  1. Bên dưới firebase_app_id ở đầu Fastfile của bạn, hãy tạo một biến để giữ người kiểm tra và bao gồm địa chỉ email của riêng bạn cũng như các địa chỉ email tùy chọn khác mà bạn muốn dùng 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 để biế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 đó, hãy chuyển kết quả đến 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, tệp 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 này, những người kiểm thử mà bạn đã thêm sẽ nhận được email mời từ tính năng 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, bạn hiện có thể xem 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 đã thêm địa chỉ email của mình, nên bạn sẽ nhận được email từ tính năng Phân phối ứng dụng Firebase mời bạn thử nghiệm ứng dụng. Bạn là người thử nghiệm đầu tiên! Tiếp tục phần dưới đây để thiết lập người kiểm thử trên thiết bị kiểm thử.

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

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

  1. Trên thiết bị thử nghiệm iOS, hãy mở email được gửi từ tính năng Phân phối ứng dụng Firebase và nhấn vào đường liên kết Bắt đầu. Hãy nhớ mở đường liên kết trong Safari.
  2. Bạn hiện đã ở trong ứng dụng web kiểm tra 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 các bản phát hành mà mình được mời tham gia. Nhấn vào Đăng ký thiết bị của một trong các bản phát hành.

fd141215e54a938d.pngS

  1. Khi được nhắc, hãy tải hồ sơ Firebase xuống, sau đó cài đặt hồ sơ 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 gửi cho tất cả Chủ sở hữu và Người chỉnh sửa dự án Firebase một email có chứa UDID của thiết bị thử nghiệm.

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

Trong ứng dụng web của người kiểm thử 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 của ứng dụng.

fe93d649dfa25877.pngs

Giờ đây, bạn đã chia sẻ UDID của thiết bị thử nghiệm với Firebase, nên giờ bạn có thể tiếp tục với vai trò nhà phát triển. Trong thẻ Nhân viên kiểm thử của Trang tổng quan về việc phân phối ứng dụng, giờ đây, thông tin về người kiểm thử sẽ xuất hiện trong bản phát hành của ứng dụng với trạng thái là "Đã 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ơ cấp phép của ứng dụng, sau đó tạo một phiên bản ứng dụng hoạt động được với thiết bị thử nghiệm.

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. Tính năng Phân phối ứng dụng giúp bạn dễ dàng thu thập nhiều UDID thiết bị mới cùng một lúc bằng cách cho phép bạn xuất các mã này trực tiếp từ bảng điều khiển của Firebase dưới dạng tệp văn bản thô.

  1. Để xuất tất cả UDID, hãy mở trang Nhân viên kiểm thử và Thẻ Nhóm.

241a9936898a2fc0.pngS

  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ị thử nghiệm.

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 cách sử dụng fastlane, thao tác này sẽ được thực hiện trong phần tiếp theo.

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

Bây giờ, bạn sẽ thêm UDID của thiết bị thử nghiệm vào hồ sơ cấp phép của ứng dụng, tạo lại một phiên bản ứng dụng phù hợp với thiết bị 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 ở đầu Fastfile của bạn và đặt biến đó thành đường dẫn tệp mà người kiểm thử của bạn UDID của thiết bị 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 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 trình kiểm thử xuống, giống như cách 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 đường sau để tải UDID xuống.

$ fastlane download_udids

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

$ cat tester_udids.txt

Thêm thiết bị vào bảng điều khiển dành cho nhà phát triển của Apple

  1. Tạo làn đường sau để thêm UDID vào danh sách thiết bị của bạn 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 các mã này vào hồ sơ cấp phép bằng thao tác fastlane register_devices:
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ơ cấp phép

  1. Thêm đối số force vào bước hồ sơ cấp phép trong làn build của bạn để buộc thành phần này nhận thiết bị mới mỗi khi bạn tạo bản dựng.
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

Bây giờ, bạn sẽ cập nhật làn đường distribute của mình với các làn đường mới để thêm thiết bị vào hồ sơ cấp phép, xây dựng lại ứng dụng rồi phân phối.

  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, tệp 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 qua thiết bị thử nghiệm

Hiện tại, ứng dụng của bạn đã bao gồm mã UDID của thiết bị thử nghiệm, nên bạn có thể cài đặt mã này trên thiết bị thử nghiệm.

e275f73d57cc8fb1.pngs

  1. Trên thiết bị kiểm thử, hãy quay lại ứng dụng web dành cho người kiểm thử tính năng Phân phối ứng dụng bằ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 bản phát hành đã sẵn sàng để tải xuống.

dad6d03b6ad78746.pngs

  1. Nếu bạn đang sử dụng một thiết bị thực, hãy nhấn vào 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 tính năng Phân phối ứng dụng và nhanh để tự động hoá quy trình thử nghiệm 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 thu thập riêng mã UDID từ người kiểm thử hoặc chuyển đến 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ơ cấp phép nữa. Thậm chí, bạn không cần phải mở XCode!

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

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