Phân phối các bản iOS trước khi phát hành của bạn nhanh hơn với App Distribution và fastlane

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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

4cddd34bd261cea0.png

Trong codelab này, bạn sẽ học cách sử dụng Firebase App Distribution và plugin fastlane của nó để phân phối ứng dụng iOS cho người thử nghiệm, thu thập UDID của thiết bị thử nghiệm và đăng ký chúng vào hồ sơ cấp phép của ứng dụng, vì vậy, bạn có thể nhanh chóng nhận được các bản dựng Ad Hoc cho người thử nghiệm 'tay.

Những gì bạn sẽ họ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 cách sử dụng Firebase App Distribution và fastlane .
  • Cách đăng ký làm người thử nghiệm và tải xuống ứng dụng được phân phối trên thiết bị thử nghiệm.
  • 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 với plugin 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ơ đó để phân phối.

Những gì bạn cần

  • Một tài khoản Google
  • Máy Apple được cài đặt XCode 11.7+
  • Một ứng dụng iOS phát hành trước Ad Hoc được tích hợp trong Xcode
  • Tài khoản nhà phát triển Apple trả phí
  • Một thiết bị iOS vật lý để thử nghiệm.

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

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 rằng nút "Tải xuống" xuất hiện trên ứng dụng web của trình kiểm tra 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 phân phối các bản dựng trước khi phát hành ứng dụng của mình. 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 của bạn trong khi 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 gọi là fastlane chứa Fastfile , AppfilePluginfile mà bạn sẽ sử dụng để định cấu hình fastlane .

3. Xây dựng ứng dụng của bạn với fastlane

Xây dựng ứng dụng của bạn

  1. Đặt một số biến toàn cục cho fastlane trong ./fastlane/Appfile. Bao gồm ID ứ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 của bạn và sử dụng hành động build_app của build_app (còn được gọi là gym ) để xây dựng ứng dụng của bạn bằng cách thêm phần sau vào ./fastlane/Fastfile :
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Đăng ký ứng dụng của bạn để phân phối.

Đối với codelab này, bạn sẽ quản lý chứng nhận và hồ sơ của riêng mình bằng cách sử dụng get_certificates (còn được gọi là cert ), tạo chứng chỉ ký cục bộ và lưu trữ mọi thứ trong Chuỗi khóa macOS của bạn. Tuy nhiên, thông thường, bạn sẽ muốn sử dụng hành động fastlane sync_code_signing action (còn được gọi là match ) để quản lý an toàn hồ sơ và chứng chỉ ký mã của nhóm của bạ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 hành động get_provisioning_profile (còn được gọi là sigh ). Điều này cho phép bạn chia sẻ ứng dụng của mình với những người thử nghiệm.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Tùy chọn] 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 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, xây dựng ứng dụng của bạn bằng cách chạy làn đường.

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

$ fastlane build

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

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

Bây giờ bạn đã xây dựng ứng dụng của mình, bạn đã sẵn sàng tải nó lên Phân phối ứng dụng.

Tạo và thiết lập dự án Firebase

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

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

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

Thêm ứng dụng iOS của bạn vào dự án

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

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 . Bạn sẽ thêm SDK vào ứng dụng của mình sau này.

Dự án và ứng dụng của bạn hiện có sẵn trong trang Tổng quan về dự án .

66f79cc8a97fa8e9.png

Bật phân phối ứng dụng

  1. Trong phần Phát hành & Giám sát, 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 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 của bạn để thêm Phân phối ứng dụng vào cấu hình fastlane của bạn.

Nếu lệnh nhắc bạn với một tùy chọn, hãy chọn Tùy chọn 3: RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Xác nhận rằng plugin đã được cài đặt:

$ fastlane

Đầu ra sẽ hiển thị fastlane-plugin-firebase_app_distribution trong danh sách các plugin đã cài đặt.

  1. Sau khi xác nhận plugin đã được cài đặt, hãy chọn tùy chọn 0 để hủy.

Xác thực dự án Firebase của bạn

Để sử dụng plugin 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:

$ fastlane run firebase_app_distribution_login

  1. Khi lệnh in một liên kết xác thực, hãy mở liên kết đó trong 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.

Sao chép mã kết quả từ trình duyệt đăng nhập và dán vào dòng lệnh.

  1. Sau đó, hành động đăng nhập sẽ in mã thông báo làm mới, mà plugin Phân phối ứng dụng sử dụng để xác thực với Firebase:

dbd61c40c4131158.png

  1. Chuyển mã thông báo bằng cách đặt biến môi trường FIREBASE_TOKEN :

$ export FIREBASE_TOKEN= <token>

Phân phối ứng dụng của bạn

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

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

Fastfile được viết bằng Ruby, vì vậy hãy sử dụng cú pháp Ruby để định nghĩa các biến.

firebase_app_id = "<your_app_id>"
  1. Thêm một làn mới được gọi là distribute gọi làn xây dựng, sau đó phân phối ứng dụng của bạn bằng hành động 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 của bạn 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ẽ giố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 thử nghiệm tải xuống ứng dụng của bạn

Khi người thử nghiệm chấp nhận lời mời thử nghiệm bản dựng Ad Hoc, họ sẽ được yêu cầu quyền chia sẻ UDID của họ. Nếu họ đồ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ẽ tự thêm mình làm người thử nghiệm để tải xuống và thử nghiệm ứ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. Trong firebase_app_id ở đầu Fastfile của bạn, hãy tạo một biến để giữ người thử nghiệm 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 thử.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Áp dụng phương thức nối Array # 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 đó, chuyển kết quả cho 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ẽ giố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 thử nghiệm bạn đã thêm sẽ nhận được email mời từ 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 Firebase, giờ đây bạn có thể thấy những người thử nghiệm mà bạn đã thêm trong bản phát hành ứng dụng của mình.

2e0fc9603b868af8.png

Vì bạn đã bao gồm địa chỉ email của mình nên bạn sẽ nhận được email từ Firebase App Distribution mời bạn thử nghiệm ứng dụng. Bây giờ bạn là người thử nghiệm đầu tiên! Tiếp tục phần bên dưới để thiết lập làm người thử nghiệm trên thiết bị thử nghiệm của bạn.

Đăng ký thiết bị thử nghiệm của bạn

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

  1. Trên thiết bị thử nghiệm iOS của bạn, mở email được gửi từ Firebase App Distribution và nhấn vào liên kết Bắt đầu . Đảm bảo mở liên kết trong Safari.
  2. Bạn hiện đang ở trong ứng dụng web Trình kiểm tra phân phối ứng dụng. Trong trang xuất hiện, đăng nhập bằng tài khoản Google của bạn và nhấn Chấp nhận lời mời.

d833407de251b89f.png

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

fd141215e54a938d.png

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

Việc cài đặt cấu hình cấp cho Firebase quyền:

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

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

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

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

fe93d649dfa25877.png

Bây giờ bạn đã chia sẻ UDID của thiết bị thử nghiệm của mình với Firebase, bây giờ bạn có thể tiếp tục với tư cách là nhà phát triển. Trong tab Người thử nghiệm của trang tổng quan Phân phối ứng dụng , thông tin người thử nghiệm của bạn 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 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 và sau đó tạo một phiên bản ứng dụng hoạt động với thiết bị thử nghiệm của bạn.

Xuất UDID thiết bị thử nghiệm của bạn

Với tư cách là nhà phát triển, bạn sẽ nhận được email từ Firebase chứa UDID của thiết bị thử nghiệm. Là một tùy chọn, Phân phối ứng dụng giúp 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 chúng 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ả các UDID, hãy mở tab Người thử nghiệm & Nhóm .

241a9936898a2fc0.png

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

bcf0c26c522d9b4e.png

Tệp phải chứa UDID của thiết bị thử nghiệm của bạn.

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

Các UDID cũng có thể được xuất từ ​​dòng lệnh bằng fastlane , bạn sẽ thực hiện trong phần tiếp theo.

6. Cập nhật hồ sơ cấp phép của ứng dụng và xây dựng lại nó

Bây giờ, bạn sẽ thêm UDID thiết bị thử nghiệm của mình vào hồ sơ cấp phép của ứng dụng, xây dựng lại 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 xuất UDID

  1. Thêm một biến khác ở đầu Fastfile của bạn và đặt nó thành đường dẫn tệp nơi UDID thiết bị của người kiểm tra của bạn 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 làn mới sử dụng hành động xuất UDID của plugin Phân phối ứng dụng để tải xuống UDID của người thử nghiệm, giống như bạn đã làm từ 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 sau để tải xuống UDID.

$ fastlane download_udids

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

$ cat tester_udids.txt

Một thiết bị dd cho 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 Apple, vì vậy bạn có thể thêm chúng vào hồ sơ cấp phép của mình bằng hành động register_devices của fastlane :
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Sau đó, 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 của mình.

Thêm thiết bị vào hồ sơ cấp phép của bạn

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

  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ẽ giố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 xuống bản phát hành từ thiết bị thử nghiệm

Giờ đây, ứng dụng của bạn đã bao gồm các UDID của thiết bị thử nghiệm, chúng có thể được cài đặt trên các thiết bị thử nghiệm.

e275f73d57cc8fb1.png

  1. Trên thiết bị thử nghiệm của bạn, quay lại ứng dụng web của trình kiểm tra Phân phối ứng dụng bằ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 điều hướng đến ứng dụng mã hóa 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 thiết bị thực, hãy nhấn tải xuống, sau đó cài đặt và chạy ứng dụng!

7. Xin chúc mừng

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

Vì vậy, không còn phải thu thập từng UDID từ người thử nghiệm hoặc truy cập 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. Bạn thậm chí không cần mở XCode!

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

đọc thêm