1. Tổng quan
Chào mừng bạn đến với khoá học Tích hợp SDK Phân phối ứng dụng Firebase trong lớp học lập trình về ứng dụng iOS. 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 kiểm thử 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 tuỳ chỉnh để giúp người kiểm thử đăng nhập nhận các bản cập nhật. Sau đó, bạn sẽ đẩy một bản phát hành mới vào tính năng Phân phối ứng dụng và kích hoạt một thông báo về bản dựng mới ngay trong ứng dụng.
Kiến thức bạn sẽ học được
- Cách sử dụng tính năng Phân phối ứng dụng để phân phối bản phát hành trước của ứng dụng cho người kiểm thử trực tiếp
- Cách tích hợp SDK Phân phối ứng dụng iOS vào ứng dụng
- Cách thông báo cho người kiểm thử khi có một bản phát hành trước mới cho người dùng cài đặt
- Cách tuỳ chỉnh SDK để phù hợp với nhu cầu kiểm thử riêng biệt của bạn
Bạn cần có
- Xcode 12 (trở lên)
- CacaoPods 1.9.1 (trở lên)
- Tài khoản nhà phát triển Apple để phân phối Ad Hoc
- 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 sẽ sử dụng hướng dẫn này như thế nào?
Bạn đánh giá thế nào về trải nghiệm xây dựng ứng dụng iOS?
2. Tạo dự án bảng điều khiển Firebase
Thêm dự án Firebase mới
- Đăng nhập Firebase.
- Trong bảng điều khiển của Firebase,hãy nhấp vào Thêm dự án, sau đó đặt tên cho dự án là "Lớp học lập trình Firebase".
Bạn không cần bật Google Analytics cho dự án này.
- Nhấp vào Tạo dự án.
Thêm ứng dụng vào Firebase
Làm theo tài liệu này để đăng ký ứng dụng của bạn với Firebase. Sử dụng "com.google.firebase.codelab.AppDistribution.<your_name>" làm mã nhận dạng gói iOS.
Khi được nhắc, hãy tải tệp GoogleService-Info.plist
của dự án xuống. Bạn sẽ cần thông tin này vào lúc khác.
3. Nhận dự án mẫu
Tải mã nguồn xuống
Bắt đầu bằng cách sao chép 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 dự án mẫu xuống từ trang GitHub hoặc bằng cách nhấp vào đường liên kết này.
Tải phần phụ thuộc xuống và mở dự án trong Xcode
- Mở Podfile trong cùng thư mục đó
cd firebase-appdistribution-ios/start Open Podfile
- Thêm dòng sau vào tệp pod của bạn:
Podfile
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 trình đơn bên trái, hãy nhấp đúp vào AppDistributionExample. Sau đó, tìm thẻ General (Chung) rồi thay đổi mã nhận dạng gói cho khớp với mã nhận dạng gói của ứng dụng Firebase. Bạn có thể tìm thấy mã này trong phần cài đặt dự án. Giá trị này phải là "com.google.firebase.codelab.AppDistribution.<your_name>"
Thêm Firebase vào ứng dụng của bạn
Tìm tệp GoogleService-Info.plist
mà bạn đã tải xuống trước đó trong hệ thống tệp rồi kéo tệp đó vào thư mục gốc của dự án Xcode. Bạn cũng có thể tải tệp này xuống bất cứ lúc nào trên trang cài đặt của dự án.
Trong tệp AppDistributionExample/AppDelegate.swift
, hãy nhập Firebase ở phần đầu tệp
AppAnalyticsExample/AppDelegate.swift
import Firebase
Và trong phương thức didFinishLaunchingWithOptions
, hãy thêm một lệnh gọi để định cấu hình Firebase.
AppAnalyticsExample/AppDelegate.swift
FirebaseApp.configure()
4. Thiết lập cảnh báo về 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 kiểm thử khi có thể cài đặt các bản dựng mới của ứng dụng. Để thực hiện việc này, hãy đảm bảo rằng bạn đã bật API Người kiểm tra ứng dụng Firebase cho "Lớp học lập trình Firebase" của mình dự án (trong Google Cloud Console). Bạn sẽ cần đăng nhập bằng cùng một tài khoản và chọn đúng dự án trong trình đơn 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 kiểm thử: cấu hình thông báo cơ bản đi kèm với hộp thoại đăng nhập tích hợp sẵn để hiển thị với người kiểm thử và cấu hình cảnh báo nâng cao cho phép bạn tuỳ chỉnh giao diện người dùng (UI) của riêng mình.
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 hộp thoại bật cảnh báo được tạo sẵn cho những người kiểm thử chưa bật thông báo, sau đó kiểm tra xem có bản dựng mới hay không. Người kiểm thử bậ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 tính năng Phân phối ứng dụng. Khi được gọi, phương thức này sẽ thực thi trình tự sau đây:
- Kiểm tra xem người kiểm thử đã bật thông báo hay chưa. Nếu không, hãy hiển thị một hộp thoại tạo sẵn để nhắc họ đăng nhập vào tính năng Phân phối ứng dụng bằng Tài khoản Google của họ.
Bật cảnh báo là quy trình một lần trên thiết bị thử nghiệm và sẽ duy trì 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 bạn gỡ cài đặt ứng dụng hoặc cho đến khi phương thức signOutTester
được gọi. Hãy xem tài liệu tham khảo về phương thức này ( Swift hoặc GOAL-C) để biết thêm thông tin.
Bạn có thể đưa checkForUpdate
vào bất cứ lúc nào trong ứng dụng. Ví dụ: bạn có thể nhắc người kiểm thử cài đặt bản dựng mới có sẵn khi khởi động bằng cách thêm checkForUpdate vào viewDidAppearance của UIViewController.
Trong tệp AppDistributionViewController.swift
, hãy nhập Firebase ở phần đầu tệp
AppDistributionViewController.swift
import Firebase
Mở AppDistributionExample/AppDistributionViewController.swift rồi sao chép các dòng vào phương thức viewDidAppear
như sau:
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. Tạo bản dựng và mời người thử nghiệm tải ứng dụng của bạn xuống
Ở bước này, bạn sẽ tạo bản dựng ứng dụng và kiểm thử kết quả triển khai bằng cách phân phối bản dựng cho người kiểm thử thông qua bảng điều khiển của Firebase.
Xây dựng ứng dụng
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 kiểm thử, hãy chọn "Mọi thiết bị iOS (arm64)" làm đích đến bản dựng và Sản phẩm -> Lưu trữ. Sau khi tạo bản lưu trữ, hãy tạo một bản phân phối có chữ ký bằng hồ sơ Phân phối phát triển.
Khi quá trình tạo hoàn tất, quá trình tạo sẽ lưu một tệp IPA và một số tệp nhật ký trong thư mục mà bạn chỉ định. Bạn phân phối tệp IPA cho người kiểm thử theo các bước sau.
Nếu bạn gặp vấn đề khi xây dựng ứng dụng, hãy xem tài liệu ký mã của Apple để biết các bước khắc phục sự cố.
Phân phối ứng dụng cho người kiểm thử
Để phân phối ứng dụng cho người thử nghiệm, hãy tải tệp IPA lên bằng bảng điều khiển của Firebase:
- Mở trang Phân phối ứng dụng của bảng điều khiển của Firebase. Chọn dự án Firebase của bạn khi được nhắc.
- Nhấn vào Bắt đầu
- Trên trang Bản phát hành, hãy chọn ứng dụng bạn muốn phân phối trong trình đơn thả xuống.
- Kéo tệp IPA của ứng dụng vào bảng điều khiển để tải tệp đó lên.
- Khi quá trình tải lên hoàn tất, hãy chỉ định nhóm người kiểm thử và từng người kiểm thử 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 đó, hãy thêm ghi chú phát hành cho bản dựng. Xem phần Quản lý người kiểm thử để biết thêm thông tin về cách tạo nhóm người kiểm thử.
- Nhấp vào Phân phối để cung cấp bản dựng cho người kiểm thử.
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 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.
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
Trước tiên, bạn cần đă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.
- 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.
- Trong ứng dụng web dành cho người kiểm tra 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 rồi nhấn vào Chấp nhận lời mời.
Giờ đây, bạn sẽ thấy bản phát hành mà mình được mời tham gia.
- Nhấn vào Đăng ký thiết bị để chia sẻ UDID của bạn với Firebase để sau này bạn có thể cập nhật hồ sơ cấp phép của ứng dụng.
- Làm theo hướng dẫn rồi chuyển đến phần cài đặt để tải hồ sơ xuống và chia sẻ mã UDID của bạn.
Giờ đây, khi bạn quay lại phần Phân phối ứng dụng, bản phát hành sẽ được đánh dấu là "Đã đăng ký thiết bị":
Mã UDID của người kiểm thử hiện đã được chia sẻ với nhà phát triển. Giờ đây, nhà phát triển có trách nhiệm tạo cho người thử nghiệm một phiên bản ứng dụng mới.
Xem thông tin về người kiểm thử trong bảng điều khiển
Trở lại chế độ xem của nhà phát triển trong bảng điều khiển của Firebase, người thử nghiệm sẽ xuất hiện với trạng thái "Đã chấp nhận" trong bản phát hành này:
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ị mà họ đang sử dụng chưa có trong hồ sơ cấp phép. Thao tác 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ó thể xuất tất cả UDID dưới dạng tệp văn bản.
- Để xuất tất cả UDID, hãy mở mục Người kiểm thử và Thẻ Nhóm.
- Nhấp vào "Xuất UDID của Apple".
Tệp này phải chứa UDID của thiết bị thử nghiệm.
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 UDID cho hồ sơ cấp phép rồi phân phối một bản dựng mới cho người kiểm thử bằng cách làm theo các bước sau:
- Thêm thiết bị vào cổng thông tin dành cho nhà phát triển của Apple.
- Cách 1: Nhập UDID của thiết bị dưới dạng tệp CSV. Trong mục Người kiểm thử và Thẻ Nhóm trên trang tổng quan Phân phối ứng dụng, chọn Tất cả người kiểm thử, sau đó nhấp vào Xuất UDID của Apple để tải tệp CSV xuống. Tiếp theo, hãy nhập tệp này vào tài khoản nhà phát triển Apple của bạn bằng tuỳ chọn Đăng ký nhiều thiết bị. Hãy tham khảo tài liệu của Apple để tìm hiểu thêm. Xin lưu ý rằng tài khoản nhà phát triển của Apple có thể chỉ cho phép bạn nhập một số lượng thiết bị hạn chế mỗi năm.
- Cách 2: Thu thập và nhập UDID qua email. Trên trang Add Devices (Thêm thiết bị) trong cổng thông tin dành cho nhà phát triển của Apple, hãy đăng ký UDID mới được chỉ định trong email mà bạn nhận được.
- Thêm các thiết bị đã đăng ký vào hồ sơ cấp phép.
- Tải hồ sơ cấp phép xuống và dùng hồ sơ đó để xây dựng lại ứng dụng. Nếu bạn tạo lại bản dựng chỉ để 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.
- Phân phối lại ứng dụng từ bảng điều khiển của 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 bản phát hành xuống qua thiết bị thử nghiệm
Giờ đây, 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. Tính năng Phân phối ứng dụng gửi email cho người kiểm thử khi mã UDID của họ được thêm vào bản phát hành mới.
- 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.
- 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!
- Khi khởi động, ứng dụng sẽ yêu cầu bạn bật cảnh báo về bản dựng mới. Chọn "Bật"
- Sau đó, hệ thống sẽ yêu cầu bạn đăng nhập. Nhấp vào "Tiếp tục".
- Đăng nhập bằng tài khoản người kiểm thử của bạn.
- Bạn sẽ được chuyển về ứ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 chạy ứng dụng tiếp theo.
Phân phối bản cập nhật cho người kiểm thử
- Hãy cập nhật số bản dựng thành "2".
- Chọn "Mọi thiết bị iOS (arm64)" làm đích đến bản dựng và Sản phẩm -> Lưu trữ. Sau khi tạo tệp lưu trữ, hãy tạo một bản phân phối có chữ ký bằng hồ sơ Phân phối phát triển.
- Khi quá trình tạo hoàn tất, quá trình tạo sẽ lưu một tệp IPA và một số tệp nhật ký trong thư mục mà bạn chỉ định. Tải IPA mới này lên bảng điều khiển của Firebase, thêm lại email của bạn làm người kiểm thử rồi Phân phối.
Cảnh báo bản thử nghiệm
- Đảm bảo bạn đã đóng ứng dụng nếu ứng dụng đang mở. Khởi động lại ứng dụng.
- 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" cảnh báo.
- Nhấp vào "Cập nhật" để nhận phiên bản mới nhất.
- Nhấp vào "Cài đặt" trên màn hình tiếp theo.
- Xin chúc mừng! Bạn đã có thể cập nhật ứng dụng bằng cảnh báo tích hợp.
6. Tuỳ chỉnh thông tin đăng nhập của người kiểm thử
Các phương thức signInTester/signOutTester và isTesterSignedIn cho phép bạn linh hoạt hơn khi tuỳ chỉnh trải nghiệm đăng nhập của người kiểm thử, nhờ đó có thể phù hợp hơn với giao diện của ứng dụng.
Ví dụ sau đây sẽ kiểm tra xem người kiểm thử đã đăng nhập vào tài khoản người kiểm thử Phân phối ứng dụng Firebase 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 cho người kiểm thử chưa đăng nhập. Sau khi người kiểm thử đăng nhập, bạn có thể gọi checkForUpdate để kiểm tra xem người kiểm thử 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 bản cập nhật trong viewDidAppear 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(). 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 isTesterSignedIn.
AppDistributionViewController.swift
private func isTesterSignedIn() -> Bool {
return AppDistribution.appDistribution().isTesterSignedIn
}
Xây dựng và kiểm thử kết quả triển khai
7. Xin chúc mừng!
Bạn đã tạo "màn hình thông báo trong ứng dụng" vào một ứng dụng bằng cách sử dụng SDK iOS Phân phối ứng dụng Firebase.
Nội dung đã đề cập
- Phân phối ứng dụng Firebase
- SDK cảnh báo mới cho iOS của tính năng Phân phối ứng dụng Firebase
Các bước tiếp theo
Tìm hiểu thêm
Bạn có thắc mắc?
Báo cáo vấn đề