1. Ringkasan
Selamat datang di codelab Mengintegrasikan Firebase App Distribution SDK di aplikasi iOS Anda. Dalam codelab ini, Anda akan menambahkan App Distribution SDK ke aplikasi untuk menampilkan pemberitahuan dalam aplikasi kepada penguji saat build baru tersedia untuk didownload. Anda akan mempelajari cara menggunakan konfigurasi dasar dan konfigurasi kustom agar penguji login untuk menerima update. Kemudian, Anda akan mendorong rilis baru ke App Distribution dan memicu notifikasi build baru langsung di aplikasi.
Yang akan Anda pelajari
- Cara menggunakan App Distribution untuk mendistribusikan aplikasi pra-rilis kepada penguji aktif
- Cara mengintegrasikan App Distribution iOS SDK ke dalam aplikasi Anda
- Cara memberi tahu penguji saat ada build pra-rilis baru yang siap diinstal
- Cara menyesuaikan SDK agar sesuai dengan kebutuhan pengujian unik Anda
Yang Anda butuhkan
- Xcode 12 (atau yang lebih baru)
- CocoaPods 1.9.1 (atau yang lebih tinggi)
- Akun Developer Apple untuk distribusi Ad Hoc
- Perangkat iOS fisik untuk pengujian. ( Aplikasi simulator iOS akan berfungsi untuk sebagian besar codelab, tetapi simulator tidak dapat mendownload rilis.)
Bagaimana Anda akan menggunakan tutorial ini?
Bagaimana Anda menilai pengalaman membuat aplikasi iOS Anda?
2. Membuat project Firebase console
Tambahkan project Firebase baru
- Login ke Firebase.
- Di Firebase console, klik Add Project, lalu beri nama project Anda "Firebase Codelab".
Anda tidak perlu mengaktifkan Google Analytics untuk project ini.
- Klik Create project.
Menambahkan Aplikasi ke Firebase
Ikuti dokumentasi untuk mendaftarkan aplikasi Anda ke Firebase. Gunakan "com.google.firebase.codelab.AppDistribution.<nama_anda>" dengan ID Paket iOS.
Saat diminta, download file GoogleService-Info.plist
project Anda. Anda akan membutuhkannya nanti.
3. Mendapatkan Project Contoh
Mendownload Kode
Mulai dengan meng-clone project contoh.
git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git
Jika belum menginstal git, Anda juga dapat mendownload project contoh dari halaman GitHub-nya atau dengan mengklik link ini.
Mendownload dependensi dan Membuka project di Xcode
- Buka Podfile di direktori yang sama
cd firebase-appdistribution-ios/start Open Podfile
- Tambahkan baris berikut ke podfile Anda:
Podfile
pod 'Firebase/AppDistribution'
Jalankan pod update
di direktori project dan buka project di Xcode.
pod install --repo-update xed .
Perbarui ID Paket agar cocok dengan aplikasi Firebase
Di menu kiri, klik dua kali AppDistributionExample. Kemudian, cari tab General, dan ubah ID paket agar sesuai dengan ID paket aplikasi Firebase, yang dapat ditemukan di project settings. Ini harus berupa "com.google.firebase.codelab.AppDistribution.<your_name>"
Menambahkan Firebase ke aplikasi
Temukan file GoogleService-Info.plist
yang Anda download sebelumnya di sistem file Anda, lalu tarik ke root project Xcode. Anda juga dapat mendownload file ini kapan saja dari halaman setelan project Anda.
Di file AppDistributionExample/AppDelegate.swift
, impor Firebase di bagian atas file
AppDistributionExample/AppDelegate.swift
import Firebase
Dalam metode didFinishLaunchingWithOptions
, tambahkan panggilan untuk mengonfigurasi Firebase.
AppDistributionExample/AppDelegate.swift
FirebaseApp.configure()
4. Menyiapkan pemberitahuan build baru dalam aplikasi dengan App Distribution SDK
Pada langkah ini, Anda akan menambahkan Firebase App Distribution SDK ke aplikasi dan menampilkan pemberitahuan dalam aplikasi kepada penguji saat build baru aplikasi tersedia untuk diinstal. Untuk melakukannya, pastikan Anda telah mengaktifkan Firebase App Testers API untuk project "Firebase Codelab" (di Konsol Google Cloud). Anda harus login dengan akun yang sama dan memilih project yang benar dari menu drop-down di bagian atas.
Mengonfigurasi pemberitahuan dalam aplikasi
App Distribution SDK menyediakan dua cara untuk menyiapkan pemberitahuan build dalam aplikasi bagi penguji: konfigurasi pemberitahuan dasar, yang dilengkapi dengan dialog login bawaan untuk ditampilkan kepada penguji, dan konfigurasi pemberitahuan lanjutan, yang memungkinkan Anda menyesuaikan antarmuka pengguna (UI) Anda sendiri.
Kita akan mulai dengan konfigurasi pemberitahuan dasar. Anda dapat menggunakan checkForUpdate
untuk menampilkan dialog pemberitahuan pengaktifan bawaan kepada penguji yang belum mengaktifkan pemberitahuan, lalu memeriksa apakah build baru tersedia. Penguji mengaktifkan pemberitahuan dengan login ke akun yang memiliki akses ke aplikasi di App Distribution. Saat dipanggil, metode tersebut akan menerapkan urutan berikut:
- Memeriksa apakah penguji telah mengaktifkan pemberitahuan. Jika belum, akan menampilkan dialog bawaan yang meminta pengguna untuk login ke App Distribution dengan Akun Google-nya.
Mengaktifkan pemberitahuan adalah proses satu kali di perangkat uji dan tetap ada setiap kali update aplikasi. Notifikasi tetap diaktifkan di perangkat pengujian hingga aplikasi di-uninstal, atau hingga metode signOutTester
dipanggil. Lihat dokumentasi referensi metode ( Swift atau Objective-C) untuk mengetahui informasi selengkapnya.
- Memeriksa build yang baru tersedia agar dapat diinstal oleh penguji. Menampilkan objek rilis atau error.
Anda dapat menyertakan checkForUpdate
kapan saja di aplikasi. Misalnya, Anda dapat meminta penguji untuk menginstal build yang baru tersedia saat aplikasi dimulai dengan menyertakan checkForUpdate di viewDidAppear dari UIViewController.
Di file AppDistributionViewController.swift
, impor Firebase di bagian atas file
AppDistributionViewController.swift
import Firebase
Buka AppDistributionExample/AppDistributionViewController.swift, dan salin baris ke dalam metode viewDidAppear
seperti ini:
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
checkForUpdate()
}
Sekarang, mari kita implementasikan metode 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. Membangun dan mengundang penguji untuk mendownload aplikasi Anda
Pada langkah ini, Anda akan membangun aplikasi dan menguji implementasi Anda dengan mendistribusikan build kepada penguji menggunakan Firebase console.
Membangun aplikasi
Jika Anda sudah siap untuk mendistribusikan versi pra-rilis aplikasi kepada penguji, pilih "Perangkat iOS Apa Pun (arm64)" sebagai tujuan build, dan Produk->Arsipkan. Setelah arsip dibuat, bangun distribusi yang ditandatangani dengan profil distribusi Pengembangan.
Setelah selesai, build akan menyimpan file IPA dan beberapa file log dalam folder yang Anda tentukan. Anda dapat mendistribusikan file IPA ke penguji dengan langkah-langkah berikut.
Jika Anda mengalami masalah saat mem-build aplikasi, lihat dokumen penandatanganan kode Apple untuk mengetahui langkah-langkah pemecahan masalah.
Mendistribusikan aplikasi kepada penguji
Untuk mendistribusikan aplikasi kepada penguji, upload file IPA menggunakan Firebase console:
- Buka halaman App Distribution di Firebase console. Pilih project Firebase jika diminta.
- Tekan Mulai
- Di halaman Rilis, pilih aplikasi yang ingin Anda distribusikan dari menu drop-down.
- Tarik file IPA aplikasi ke konsol untuk menguploadnya.
- Setelah upload selesai, tentukan grup penguji dan penguji individual yang akan menerima build. (Tambahkan email Anda untuk menerima undangan.) Lalu, tambahkan catatan rilis untuk versi build tersebut. Lihat Mengelola penguji untuk informasi selengkapnya tentang cara membuat grup penguji.
- Klik Distribute agar build tersedia untuk penguji.
Menambahkan diri Anda sebagai penguji pada rilis
Di Firebase console, sekarang Anda bisa melihat penguji yang ditambahkan di rilis aplikasi.
Karena Anda menyertakan alamat email, Anda akan menerima email dari Firebase App Distribution yang mengundang Anda untuk menguji aplikasi. Sekarang Anda adalah penguji pertama. Lanjutkan bagian di bawah untuk melakukan penyiapan sebagai penguji di perangkat pengujian.
Mendaftarkan perangkat pengujian
Anda harus mendaftarkan perangkat pengujian terlebih dahulu untuk mendownload dan menguji rilis Ad Hoc.
- Di perangkat pengujian iOS Anda, buka email yang dikirim dari Firebase App Distribution, lalu ketuk link Mulai. Pastikan untuk membuka link di Safari.
- Di aplikasi web penguji Firebase App Distribution yang muncul, login dengan akun Google Anda, lalu ketuk Terima undangan.
Sekarang, Anda akan melihat rilis yang Anda undang.
- Ketuk Register device untuk membagikan UDID dengan Firebase agar Anda dapat memperbarui profil penyediaan aplikasi nanti.
- Ikuti petunjuknya, dan buka setelan untuk mendownload profil dan membagikan UDID Anda.
Sekarang, saat Anda kembali ke App Distribution, rilis kini ditandai sebagai "Perangkat terdaftar":
UDID penguji sekarang telah dibagikan dengan developer. Sekarang, developer dapat mem-build versi baru aplikasi untuk penguji.
Melihat informasi penguji di konsol
Kembali ke tampilan developer di Firebase console, penguji akan muncul sebagai "Diterima" pada rilis:
Kemudian, Anda juga akan menerima email sebagai developer jika perangkat yang digunakan pengguna belum disertakan dalam profil penyediaan. Tindakan ini akan memberi tahu Anda UDID baru yang perlu ditambahkan. Anda juga memiliki opsi untuk mengekspor semua UDID sebagai file teks.
- Untuk mengekspor semua UDID, buka Penguji & Tab Grup.
- Klik "Ekspor UDID Apple".
File harus berisi UDID perangkat pengujian Anda.
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
Saat menerima salah satu dari email tersebut, perbarui profil penyediaan Anda dengan UDID ini dan distribusikan build baru kepada penguji dengan mengikuti langkah-langkah berikut:
- Tambahkan perangkat ke portal Apple Developer.
- Opsi 1: Impor UDID perangkat sebagai file CSV. Di tab Penguji & Grup pada dasbor App Distribution, pilih Semua penguji, lalu klik Ekspor UDID Apple untuk mendownload file CSV. Selanjutnya, impor file ke akun Apple Developer menggunakan opsi Register Multiple Devices. Baca dokumentasi Apple untuk mempelajari lebih lanjut. Perhatikan bahwa akun Apple Developer Anda mungkin memiliki batasan jumlah pengimporan perangkat per tahun.
- Opsi 2: Kumpulkan dan masukkan UDID melalui email. Di halaman Add Devices di portal Apple Developer, daftarkan UDID baru yang tercantum dalam email yang Anda terima.
- Tambahkan perangkat terdaftar ke profil penyediaan Anda.
- Download profil penyediaan dan gunakan untuk membangun ulang aplikasi Anda. Jika Anda membangun ulang hanya untuk memperbarui perangkat terdaftar, jangan perbarui nomor atau versi build.
- Distribusikan ulang aplikasi Anda dari Firebase console atau CLI. Jika Anda telah mendistribusikan build dengan nomor dan versi build yang sama, hanya pengguna perangkat yang baru terdaftar yang akan menerima email notifikasi.
Mendownload rilis dari perangkat pengujian
Sekarang rilis memiliki UDID perangkat pengujian, sehingga perangkat pengujian dapat mendownload dan menginstal aplikasi. App Distribution mengirim email kepada penguji saat UDID mereka ditambahkan ke rilis baru.
- Di perangkat pengujian, kembali ke aplikasi web penguji App Distribution menggunakan link di email, atau ikon di layar utama perangkat.
Saat membuka aplikasi codelab UDID, Anda dapat melihat bahwa rilis siap didownload.
- Jika Anda menggunakan perangkat fisik, tekan download, lalu instal dan jalankan aplikasi.
- Saat dimulai, aplikasi akan meminta Anda untuk mengaktifkan pemberitahuan build baru. Pilih "Aktifkan"
- Kemudian, Anda akan diminta untuk login. Klik "Lanjutkan.
- Login dengan akun penguji Anda.
- Anda akan diarahkan kembali ke aplikasi. Anda tidak perlu masuk atau menerima pemberitahuan saat berikutnya Anda menjalankan aplikasi.
Mendistribusikan update kepada penguji
- Perbarui nomor build Anda menjadi "2".
- Pilih "Any iOS Device (arm64)" sebagai tujuan build, dan Product->Archive. Setelah arsip dibuat, build distribusi yang ditandatangani dengan profil distribusi Pengembangan.
- Setelah selesai, build akan menyimpan file IPA dan beberapa file log di folder yang Anda tentukan. Upload IPA baru ini di Firebase console, tambahkan email Anda sebagai penguji lagi, lalu Distribute.
Menguji pemberitahuan build
- Pastikan Anda menutup aplikasi jika aplikasi terbuka. Mulai ulang aplikasi.
- Saat aplikasi dimulai ulang, Anda akan menerima pesan "Versi Baru Tersedia" pemberitahuan.
- Klik "Perbarui" untuk menerima versi terbaru.
- Klik "Instal" di layar berikutnya.
- Selamat! Anda dapat mengupdate aplikasi dengan pemberitahuan bawaan.
6. Menyesuaikan login penguji
Metode signInTester/signOutTester dan isTesterSignedIn memberi Anda lebih banyak fleksibilitas untuk menyesuaikan pengalaman login penguji, sehingga dapat lebih cocok dengan tampilan dan nuansa aplikasi Anda.
Contoh berikut memeriksa apakah penguji sudah login ke akun penguji Firebase App Distribution, sehingga Anda dapat memilih untuk menampilkan UI login hanya untuk penguji yang belum login. Setelah penguji login, Anda dapat memanggil checkForUpdate untuk memeriksa apakah penguji memiliki akses ke build baru.
Mari kita nonaktifkan pemeriksaan update secara otomatis di viewDidAppear dengan mengomentari panggilan checkForUpdate().
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
// checkForUpdate()
}
Sebagai gantinya, mari kita panggil checkForUpdate() di checkForUpdateButtonClicked().
@objc func checkForUpdateButtonClicked() {
checkForUpdate()
}
Sekarang, mari kita terapkan metode signInOutButtonClicked() yang akan membuat pengguna logout jika telah logout, atau membuat pengguna logout jika sudah login.
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)
}
})
}
}
Terakhir, mari kita implementasikan metode isTesterSignedIn.
AppDistributionViewController.swift
private func isTesterSignedIn() -> Bool {
return AppDistribution.appDistribution().isTesterSignedIn
}
Mem-build dan menguji penerapan Anda
7. Selamat!
Anda telah membuat "tampilan pemberitahuan dalam aplikasi" aplikasi ke aplikasi menggunakan Firebase App Distribution iOS SDK.
Yang telah kita bahas
- Firebase App Distribution
- SDK iOS Pemberitahuan Baru Firebase App Distribution
Langkah Berikutnya
Pelajari Lebih Lanjut
Ada Pertanyaan?
Laporkan Masalah