Thông báo cho người thử nghiệm về các bản phát hành ứng dụng mới của bạn bằng SDK iOS của Phân phối ứng dụng Firebase - Codelab

1. Khái quát chung

Chào mừng bạn đến với phần Tích hợp SDK phân phối ứng dụng Firebase trong lớp học lập trình ứng dụng iOS của bạn. Trong lớp học lập trình này, bạn sẽ thêm SDK phân phối ứng dụng vào ứng dụng của mình để hiển thị thông báo trong ứng dụng cho người thử nghiệm khi có bản dựng mới để tải xuống. Bạn sẽ tìm hiểu cách sử dụng cả cấu hình cơ bản và cấu hình tùy chỉnh để giúp người thử nghiệm đăng nhập để nhận bản cập nhật. Sau đó, bạn sẽ đẩy bản phát hành mới lên Phân phối ứng dụng và kích hoạt cảnh báo bản dựng mới ngay trong ứng dụng.

Bạn sẽ học được gì

  • Cách sử dụng Phân phối ứng dụng để phân phối ứng dụng phát hành trước cho người thử nghiệm trực tiếp
  • Cách tích hợp SDK iOS phân phối ứng dụng vào ứng dụng của bạn
  • Cách thông báo cho người thử nghiệm khi có bản dựng trước phát hành mới sẵn sàng để cài đặt
  • Cách tùy chỉnh SDK để phù hợp với nhu cầu thử nghiệm riêng của bạn

Những gì bạn cần

  • Xcode 12 (hoặc cao hơn)
  • CocoaPods 1.9.1 (hoặc cao hơn)
  • Tài khoản Nhà phát triển Apple để phân phối Ad Hoc
  • 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 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 xuống các bản phát hành.)

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ đọc qua Đọc và hoàn thành bài tập

Bạn đánh giá trải nghiệm của bạn khi xây dựng ứng dụng iOS như thế nào?

Người mới Trung cấp thành thạo

2. Tạo dự án bảng điều khiển Firebase

Thêm dự án Firebase mới

  1. Đăng nhập vào Firebase.
  2. Trong bảng điều khiển Firebase, hãy nhấp vào Thêm dự án rồi đặt tên cho dự án của bạn là "Firebase Codelab".

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 vào Firebase

Làm theo tài liệu để đăng ký ứng dụng của bạn với Firebase. Sử dụng "com.google.firebase.codelab.AppDistribution.<your_name>" làm ID gói iOS.

Khi được nhắc, hãy tải xuống tệp GoogleService-Info.plist của dự án của bạn. Bạn sẽ cần điều này sau.

3. Lấy dự án mẫu

Tải xuống mã

Bắt đầu bằng cách nhân bản dự án mẫu.

git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git

Nếu chưa cài đặt git, bạn cũng có thể tải xuống dự án mẫu từ trang GitHub hoặc bằng cách nhấp vào liên kết này .

Tải xuống phần phụ thuộc và mở dự án trong Xcode

  1. Mở Podfile trong cùng thư mục
cd firebase-appdistribution-ios/start
Open Podfile
  1. Thêm dòng sau vào podfile của bạn:

tập tin podcast

pod 'Firebase/AppDistribution'

Chạy pod update trong thư mục dự án và mở dự án trong Xcode.

pod install --repo-update
xed .

Cập nhật Mã nhận dạng gói để khớp với ứng dụng Firebase của bạn

Trong menu bên trái, nhấp đúp chuột vào AppDistributionExample. Sau đó, tìm tab Chung và thay đổi mã nhận dạng gói để khớp với mã nhận dạng gói của ứng dụng Firebase của bạn, có thể tìm thấy trong cài đặt dự án . Đây phải là "com.google.firebase.codelab.AppDistribution.<your_name>"

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

Xác định vị trí tệp GoogleService-Info.plist mà bạn đã tải xuống trước đó trong hệ thống tệp của mình và kéo tệp đó vào thư mục gốc của dự án Xcode. Bạn cũng có thể tải xuống tệp này bất kỳ lúc nào từ trang cài đặt dự án của bạn.

3cf9290805e7fdab.png

Trong tệp AppDistributionExample/AppDelegate.swift của bạn, hãy nhập Firebase ở đầu tệp

AppDistributionExample/AppDelegate.swift

import Firebase

Và trong phương thức didFinishLaunchingWithOptions , hãy thêm lệnh gọi để định cấu hình Firebase.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Thiết lập cảnh báo bản dựng mới trong ứng dụng bằng SDK phân phối ứng dụng

Trong bước này, bạn sẽ thêm SDK phân phối ứng dụng Firebase vào ứng dụng của mình và hiển thị thông báo trong ứng dụng cho người thử nghiệm khi có sẵn bản dựng ứng dụng mới để cài đặt. Để thực hiện việc này, hãy đảm bảo bạn đã bật API người kiểm tra ứng dụng Firebase cho dự án "Firebase Codelab" (trong Google Cloud Console). Bạn sẽ cần phải đăng nhập bằng cùng một tài khoản và chọn đúng dự án từ menu thả xuống ở trên cùng.

Định cấu hình cảnh báo trong ứng dụng

SDK phân phối ứng dụng cung cấp hai cách thiết lập cảnh báo bản dựng trong ứng dụng cho người thử nghiệm của bạn: cấu hình cảnh báo cơ bản, đi kèm với hộp thoại đăng nhập được tạo sẵn để hiển thị cho người thử nghiệm và cấu hình cảnh báo nâng cao, cho phép bạn tùy chỉnh giao diện người dùng (UI) của riêng bạn.

Chúng ta sẽ bắt đầu với cấu hình cảnh báo cơ bản. Bạn có thể sử dụng checkForUpdate để hiển thị hộp thoại bật cảnh báo được tạo sẵn cho những người thử nghiệm chưa bật cảnh báo, sau đó kiểm tra xem có bản dựng mới hay không. Người thử nghiệm kích hoạt cảnh báo bằng cách đăng nhập vào tài khoản có quyền truy cập vào ứng dụng trong Phân phối ứng dụng. Khi được gọi, phương thức sẽ thực hiện trình tự sau:

  1. Kiểm tra xem người kiểm tra có bật cảnh báo hay không. Nếu không, sẽ hiển thị hộp thoại dựng sẵn nhắc họ đăng nhập vào Phân phối ứng dụng bằng tài khoản Google của họ.

Việc bật cảnh báo là quy trình một lần trên thiết bị thử nghiệm và tiếp tục diễn ra trong các bản cập nhật ứng dụng của bạn. Cảnh báo vẫn được bật trên thiết bị thử nghiệm cho đến khi ứng dụng được gỡ cài đặt hoặc cho đến khi phương thức signOutTester được gọi. Xem tài liệu tham khảo của phương pháp ( Swift hoặc Objective-C ) để biết thêm thông tin.

  1. Kiểm tra các bản dựng mới có sẵn để người kiểm tra cài đặt. Trả về một đối tượng phát hành hoặc một lỗi .

Bạn có thể bao gồm checkForUpdate tại bất kỳ thời điểm nào trong ứng dụng của mình. Ví dụ: bạn có thể nhắc người thử nghiệm cài đặt các bản dựng mới có sẵn khi khởi động bằng cách đưa checkForUpdate vào viewDidAppear của UIViewController .

Trong tệp AppDistributionViewController.swift của bạn, hãy nhập Firebase ở đầu tệp

AppDistributionViewController.swift

import Firebase

Mở AppDistributionExample/AppDistributionViewController.swift và sao chép các dòng vào phương thức viewDidAppear như thế này:

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    checkForUpdate()
 }

Bây giờ hãy triển khai phương thức checkForUpdate().

AppDistributionViewController.swift

  private func checkForUpdate() {
    AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
      var uiAlert: UIAlertController

      if error != nil {
        uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
      } else if release == nil {
        uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
        uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
      } else {
        guard let release = release else { return }

        let title = "New Version Available"
        let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
        uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)

        uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
          _ in
          UIApplication.shared.open(release.downloadURL)
        })
        uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
          _ in
        })
      }
      self.present(uiAlert, animated: true, completion: nil)
    })
  }

5. Xây dựng và mời người thử nghiệm tải xuống ứng dụng của bạn

Trong bước này, bạn sẽ xây dựng ứng dụng của mình và kiểm tra quá trình triển khai bằng cách phân phối bản dựng cho người thử nghiệm bằng bảng điều khiển Firebase.

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

Khi bạn đã sẵn sàng phân phối phiên bản phát hành trước của ứng dụng cho người thử nghiệm, hãy chọn "Bất kỳ thiết bị iOS nào (arm64)" làm đích xây dựng và Sản phẩm->Lưu trữ. Khi kho lưu trữ được tạo, hãy xây dựng bản phân phối đã ký với hồ sơ phân phối Phát triển.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Khi quá trình xây dựng hoàn tất, nó sẽ lưu tệp IPA và một số tệp nhật ký vào thư mục bạn chỉ định. Bạn phân phối tệp IPA cho người thử nghiệm của mình theo các bước sau.

Nếu bạn gặp vấn đề khi xây dựng ứng dụng của mình, hãy xem tài liệu về thiết kế mã của Apple để biết các bước khắc phục sự cố.

Phân phối ứng dụng của bạn cho người thử nghiệm

Để phân phối ứng dụng của bạn cho người thử nghiệm, hãy tải tệp IPA lên bằng bảng điều khiển Firebase:

  1. Mở trang Phân phối ứng dụng của bảng điều khiển Firebase. Chọn dự án Firebase của bạn khi được nhắc.
  2. Nhấn Bắt đầu

e4671bd304ecfe47.png

  1. Trên trang Bản phát hành, chọn ứng dụng bạn muốn phân phối từ menu thả xuống.

8a3da2939b9746f4.png

  1. Kéo tệp IPA của ứng dụng của bạn vào bảng điều khiển để tải tệp lên.
  2. Khi quá trình tải lên hoàn tất, hãy chỉ định nhóm người thử nghiệm và từng người thử nghiệm mà bạn muốn nhận bản dựng. (Thêm email của bạn để nhận lời mời.) Sau đó, thêm ghi chú phát hành cho bản dựng. Xem Quản lý người thử nghiệm để biết thêm về cách tạo nhóm người thử nghiệm.

de63e3c3c64f909e.png

  1. Nhấp vào Phân phối để cung cấp bản dựng cho người thử nghiệm.

b6e75dc216fc3731.png

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

Trong bảng điều khiển Firebase, giờ đây bạn có thể xem 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.

eb61c6be96ff3a11.png

Vì bạn đã bao gồm địa chỉ email của mình nên bạn sẽ nhận được email từ Phân phối ứng dụng Firebase mời bạn dùng thử ứ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

Trước tiên, bạn cần phải đăng ký thiết bị thử nghiệm của mình để tải xuống và thử nghiệm bản phát hành Ad Hoc.

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

4d1af345ef944620.png

Bây giờ, bạn sẽ thấy bản phát hành mà bạn đã được mời.

  1. Nhấn vào Đăng ký thiết bị để chia sẻ UDID của bạn với Firebase để bạn có thể cập nhật hồ sơ cấp phép cho ứng dụng của mình sau này.

fd141215e54a938d.png

  1. Làm theo hướng dẫn và đi tới cài đặt để tải xuống hồ sơ và chia sẻ UDID của bạn.

Bây giờ, khi bạn quay lại Phân phối ứng dụng, bản phát hành hiện được đánh dấu là "Đã đăng ký thiết bị":

fe93d649dfa25877.png

UDID của người thử nghiệm hiện đã được chia sẻ với nhà phát triển. Giờ đây, nhà phát triển có trách nhiệm xây dựng phiên bản mới của ứng dụng cho người thử nghiệm.

Xem thông tin người thử nghiệm trong bảng điều khiển

Quay lại chế độ xem của nhà phát triển trong bảng điều khiển Firebase, người thử nghiệm sẽ hiển thị là "Được chấp nhận" trong bản phát hành:

1bef6f182c1c58f9.png

Sau đó, bạn cũng sẽ nhận được email với tư cách là nhà phát triển nếu thiết bị họ đang sử dụng chưa có trong hồ sơ cung cấp. Điều này sẽ thông báo cho bạn về UDID mới mà bạn cần thêm. Bạn cũng có tùy chọn xuất tất cả UDID dưới dạng tệp văn bản.

  1. Để xuất tất cả UDID, hãy mở tab Người kiểm tra & Nhóm.

2745d49a6abc47fe.png

  1. Nhấp vào "Xuất Apple UDID."

cb45477f8cc436ba.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     tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen        ios

Khi bạn nhận được một trong những email này, hãy cập nhật hồ sơ cung cấp của bạn với UDID và phân phối bản dựng mới cho những người thử nghiệm của bạn bằng cách làm theo các bước sau:

  1. Thêm thiết bị vào cổng thông tin nhà phát triển Apple của bạn.
  • Tùy chọn 1: Nhập UDID của thiết bị dưới dạng tệp CSV. Trong tab Người thử nghiệm & Nhóm của bảng điều khiển Phân phối ứng dụng, chọn Tất cả người thử nghiệm, sau đó nhấp vào Xuất Apple UDID để tải xuống tệp CSV. Tiếp theo, nhập tệp vào tài khoản nhà phát triển Apple của bạn bằng tùy chọn Đăng ký nhiều thiết bị. Tham khảo tài liệu của Apple để tìm hiểu thêm. Lưu ý rằng tài khoản nhà phát triển Apple của bạn chỉ có thể cho phép bạn nhập một số lượng thiết bị giới hạn mỗi năm.
  • Tùy chọn 2: Thu thập và nhập UDID qua email. Trên trang Thêm thiết bị của cổng thông tin dành cho nhà phát triển Apple, hãy đăng ký UDID mới được chỉ định trong email bạn nhận được.

ffb74294e68ee1c8.png

  1. Thêm các thiết bị đã đăng ký vào hồ sơ cung cấp của bạn.
  2. Tải xuống hồ sơ cung cấp và sử dụng nó để xây dựng lại ứng dụng của bạn. Nếu bạn chỉ xây dựng lại để cập nhật các thiết bị đã đăng ký, đừng cập nhật số bản dựng hoặc phiên bản.
  3. Phân phối lại ứng dụng của bạn từ bảng điều khiển Firebase hoặc CLI. Nếu bạn đã phân phối một bản dựng có cùng số bản dựng và phiên bản thì chỉ người dùng thiết bị mới đăng ký mới nhận được email thông báo.

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

Hiện bản phát hành đã có UDID của thiết bị thử nghiệm nên thiết bị thử nghiệm có thể tải xuống và cài đặt ứng dụng. Phân phối ứng dụng gửi email đến người thử nghiệm khi UDID của họ được thêm vào bản phát hành mới.

a4049260bae2850b.png

  1. Trên thiết bị thử nghiệm, hãy quay lại ứng dụng web của người thử nghiệm Phân phối ứng dụng bằng cách sử dụ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 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.

cha6d03b6ad78746.png

  1. Nếu bạn đang sử dụng thiết bị vật lý, hãy nhấn tải xuống, sau đó cài đặt và chạy ứng dụng!
  2. Khi ứng dụng khởi động, ứng dụng sẽ yêu cầu bạn bật cảnh báo bản dựng mới. Chọn "Bật"

6e3540a2900734e6.png

  1. Sau đó, nó sẽ yêu cầu bạn đăng nhập. Nhấp vào "Tiếp tục.

82d90d7935bfaea0.png

  1. Đăng nhập bằng tài khoản người thử nghiệm của bạn.

13bee1d03fa94ebf.png

  1. Bạn sẽ được đưa trở lại ứng dụng. Bạn sẽ không phải đăng nhập hoặc chấp nhận thông báo vào lần tiếp theo khi chạy ứng dụng.

815d6757eb5f6327.png

Phân phối bản cập nhật cho người thử nghiệm của bạn

  1. Cập nhật số bản dựng của bạn thành "2".

861aa63ebbc6ec54.png

  1. Chọn "Bất kỳ thiết bị iOS nào (arm64)" làm đích xây dựng và Sản phẩm->Lưu trữ. Khi kho lưu trữ được tạo, hãy xây dựng bản phân phối đã ký với hồ sơ phân phối Phát triển.
  2. Khi quá trình xây dựng hoàn tất, nó sẽ lưu tệp IPA và một số tệp nhật ký vào thư mục bạn chỉ định. Tải IPA mới này lên bảng điều khiển Firebase của bạn, thêm lại email của bạn làm người thử nghiệm và Phân phối.

b6e75dc216fc3731.png

Cảnh báo bản dựng thử nghiệm

  1. Đảm bảo bạn đã đóng ứng dụng nếu nó đang mở. Khởi động lại ứng dụng.
  2. Khi ứng dụng khởi động lại, bạn sẽ nhận được thông báo "Có phiên bản mới".

3bd532992df458e6.png

  1. Nhấp vào "Cập nhật" để nhận phiên bản mới nhất.
  2. Nhấp vào "Cài đặt" trên màn hình tiếp theo.

3a761d8fa4b79d33.png

  1. Chúc mừng! Bạn đã có thể cập nhật ứng dụng của mình bằng các cảnh báo tích hợp.

6. Tùy chỉnh đăng nhập của người thử nghiệm

Các phương thức signInTester/signOutTesterisTesterSignedIn mang lại cho bạn sự linh hoạt hơn trong việc tùy chỉnh trải nghiệm đăng nhập của người thử nghiệm để có thể phù hợp hơn với giao diện ứng dụng của bạn.

Ví dụ sau đây kiểm tra xem người thử nghiệm đã đăng nhập vào tài khoản người thử nghiệm Phân phối ứng dụng Firebase của họ hay chưa, vì vậy, bạn có thể chọn chỉ hiển thị giao diện người dùng đăng nhập của mình cho những người thử nghiệm chưa đăng nhập. Sau khi người thử nghiệm đăng nhập, bạn có thể gọi checkForUpdate để kiểm tra xem người kiểm tra có quyền truy cập vào bản dựng mới hay không.

Hãy tắt tính năng tự động kiểm tra cập nhật trong viewDidAppea r bằng cách nhận xét lệnh gọi checkForUpdate() .

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    // checkForUpdate()
 }

Thay vào đó, hãy gọi checkForUpdate() trong checkForUpdateButtonClicked( ).

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Bây giờ, hãy triển khai phương thức signInOutButtonClicked() của chúng tôi. Phương thức này sẽ đăng nhập người dùng nếu họ đã đăng xuất hoặc đăng xuất người dùng nếu họ đã đăng nhập.

AppDistributionViewController.swift

 @objc func signInOutButtonClicked() {
    if isTesterSignedIn() {
      AppDistribution.appDistribution().signOutTester()

      self.configureCheckForUpdateButton()
      self.configureSignInSignOutButton()
      self.configureSignInStatus()

    } else {
      AppDistribution.appDistribution().signInTester(completion: { error in
        if error == nil {
          self.configureCheckForUpdateButton()
          self.configureSignInSignOutButton()
          self.configureSignInStatus()
        } else {
          let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
          uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
            _ in
          })

          self.present(uiAlert, animated: true, completion: nil)
        }
      })
    }
  }

Cuối cùng, hãy triển khai phương thức isTesterSignedI n.

AppDistributionViewController.swift

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

Xây dựng và kiểm tra việc triển khai của bạn

7. Xin chúc mừng!

Bạn đã tích hợp tính năng "hiển thị cảnh báo trong ứng dụng" vào một ứng dụng bằng cách sử dụng SDK iOS của Phân phối ứng dụng Firebase.

Những gì chúng tôi đã đề cập

  • Phân phối ứng dụng Firebase
  • Phân phối ứng dụng Firebase Cảnh báo mới SDK iOS

Bước tiếp theo

Tìm hiểu thêm

Có một câu hỏi?

Báo cáo vấn đề