Beri tahu penguji tentang rilis aplikasi baru dengan Firebase App Distribution iOS SDK - Codelab

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 Anda 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 dan menerima update. Kemudian, Anda akan mengirim rilis baru ke App Distribution dan memicu pemberitahuan build baru langsung di aplikasi.

Yang akan Anda pelajari

  • Cara menggunakan App Distribution untuk mendistribusikan aplikasi pra-rilis ke penguji langsung
  • 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 tinggi)
  • CocoaPods 1.9.1 (atau yang lebih tinggi)
  • Akun Apple Developer 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?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana penilaian Anda terhadap pengalaman membuat aplikasi iOS?

Pemula Menengah Mahir

2. Buat project Firebase console

Tambahkan project Firebase baru

  1. Login ke Firebase.
  2. Di Firebase console, klik Tambahkan Project, lalu beri nama project "Firebase Codelab".

Anda tidak perlu mengaktifkan Google Analytics untuk project ini.

  1. Klik Create project.

Menambahkan Aplikasi ke Firebase

Ikuti dokumentasi untuk mendaftarkan aplikasi Anda ke Firebase. Gunakan "com.google.firebase.codelab.AppDistribution.<nama_anda>" sebagai ID Paket iOS.

Saat diminta, download file GoogleService-Info.plist project Anda. Anda akan membutuhkannya nanti.

3. Mendapatkan Project Contoh

Mendownload Kode

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

Download dependensi dan buka project di Xcode

  1. Buka Podfile di direktori yang sama
cd firebase-appdistribution-ios/start
Open Podfile
  1. 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 .

Mengupdate ID Paket agar cocok dengan aplikasi Firebase

Di menu kiri, klik dua kali pada AppDistributionExample. Kemudian, cari tab General dan ubah ID paket agar cocok dengan ID paket aplikasi Firebase, yang dapat ditemukan di setelan project. Nilainya harus "com.google.firebase.codelab.AppDistribution.<nama_anda>"

Menambahkan Firebase ke aplikasi

Temukan file GoogleService-Info.plist yang Anda download sebelumnya di sistem file, lalu tarik ke root project Xcode. Anda juga dapat mendownload file ini kapan saja dari halaman setelan project Anda.

3cf9290805e7fdab.pngs

Di file AppDistributionExample/AppDelegate.swift, impor Firebase di bagian atas file

AppDistributionExample/TensorFlow.swift

import Firebase

Dan dalam metode didFinishLaunchingWithOptions, tambahkan panggilan untuk mengonfigurasi Firebase.

AppDistributionExample/TensorFlow.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 sudah tersedia untuk diinstal. Untuk melakukannya, pastikan Anda telah mengaktifkan Firebase App Testers API untuk project "Firebase Codelab" Anda (di Google Cloud Console). 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 untuk 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 aktif yang telah dibuat 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:

  1. Memeriksa apakah penguji telah mengaktifkan pemberitahuan. Jika tidak, akan menampilkan dialog bawaan yang meminta mereka untuk login ke App Distribution dengan Akun Google mereka.

Mengaktifkan pemberitahuan adalah proses satu kali di perangkat uji dan tetap ada saat terjadi update pada aplikasi. Pemberitahuan tetap diaktifkan di perangkat pengujian hingga aplikasi di-uninstal, atau sampai metode signOutTester dipanggil. Lihat dokumentasi referensi metode ( Swift atau Objective-C) untuk informasi selengkapnya.

  1. Memeriksa build yang baru tersedia agar dapat diinstal oleh penguji. Menampilkan objek release atau error.

Anda dapat menyertakan checkForUpdate kapan saja di aplikasi. Misalnya, Anda dapat meminta penguji untuk menginstal build yang baru tersedia saat startup dengan menyertakan checkForUpdate di viewDidSupported 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. Membuat dan mengundang penguji untuk mendownload aplikasi Anda

Pada langkah ini, Anda akan mem-build aplikasi dan menguji implementasinya dengan mendistribusikan build kepada penguji menggunakan Firebase console.

Membuat aplikasi

Saat Anda sudah siap untuk mendistribusikan versi pra-rilis aplikasi kepada penguji, pilih "Semua Perangkat iOS (arm64)" sebagai tujuan build, dan Product->Archive. Setelah arsip dibuat, bangun distribusi yang ditandatangani dengan Profil distribusi pengembangan.

98d8eb042c36a685.png

b2e9ccff91d761c1.pngS

8e815564f64d2d39.png

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 membuat 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:

  1. Buka halaman App Distribution di Firebase console. Pilih project Firebase saat diminta.
  2. Tekan Mulai

e4671bd304ecfe47.png

  1. Di halaman Rilis, pilih aplikasi yang ingin didistribusikan dari menu drop-down.

8a3da2939b9746f4.pngS

  1. Tarik file IPA aplikasi ke konsol untuk menguploadnya.
  2. Ketika 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. Baca bagian Mengelola penguji untuk mengetahui informasi selengkapnya tentang cara membuat grup penguji.

de63e3c3c64f909e.png

  1. Klik Distribute agar build tersedia untuk penguji.

b6e75dc216fc3731.pngs

Tambahkan diri Anda sebagai penguji ke rilis

Di Firebase console, Anda kini dapat melihat penguji yang ditambahkan di rilis aplikasi.

eb61c6be96ff3a11.png

Karena Anda sudah menyertakan alamat email, Anda akan menerima email dari Firebase App Distribution yang mengundang Anda untuk menguji aplikasi. Sekarang Anda menjadi 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.

  1. Di perangkat pengujian iOS, buka email yang dikirim dari Firebase App Distribution dan ketuk link Mulai. Pastikan untuk membuka link di Safari.
  2. Di aplikasi web penguji Firebase App Distribution yang muncul, login dengan Akun Google Anda, lalu ketuk Terima undangan.

4d1af345ef944620.pngS

Sekarang, Anda akan melihat rilis tempat Anda diundang.

  1. Ketuk Daftarkan perangkat untuk membagikan UDID Anda ke Firebase sehingga Anda dapat memperbarui profil penyediaan aplikasi nanti.

fd141215e54a938d.png

  1. Ikuti petunjuknya, dan buka setelan untuk mendownload profil dan membagikan UDID Anda.

Sekarang, saat Anda kembali ke App Distribution, rilis ditandai sebagai "Perangkat terdaftar":

fe93d649dfa25877.png

UDID penguji kini telah dibagikan kepada developer. Sekarang terserah developer untuk membuat versi baru aplikasi kepada penguji.

Melihat informasi penguji di konsol

Kembali ke tampilan developer di Firebase console, penguji akan muncul sebagai "Diterima" di bagian rilis:

1bef6f182c1c58f9.pngS

Kemudian, Anda juga akan mendapatkan email sebagai developer jika perangkat yang mereka gunakan belum disertakan dalam profil penyediaan. Tindakan ini akan memberi tahu Anda tentang UDID baru yang perlu ditambahkan. Anda juga memiliki opsi untuk mengekspor semua UDID sebagai file teks.

  1. Untuk mengekspor semua UDID, buka tab Penguji & Grup.

2745d49a6abc47fe.pngs

  1. Klik "Ekspor UDID Apple".

cb45477f8cc436ba.png

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 ini, perbarui profil penyediaan Anda dengan UDID ini dan distribusikan build baru kepada penguji dengan mengikuti langkah-langkah berikut:

  1. Tambahkan perangkat ke portal Apple Developer.
  • Opsi 1: Impor UDID perangkat sebagai file CSV. Di tab Testers & Groups pada dasbor App Distribution, pilih Semua penguji, lalu klik Export Apple UDIDs untuk mendownload file CSV. Selanjutnya, impor file ke akun Apple Developer menggunakan opsi Register Multiple Devices. Lihat 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.

ffb74294e68ee1c8.png

  1. Tambahkan perangkat terdaftar ke profil penyediaan Anda.
  2. Download profil penyediaan dan gunakan untuk membangun ulang aplikasi. Jika Anda membangun ulang hanya untuk memperbarui perangkat terdaftar, jangan memperbarui nomor atau versi build.
  3. 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

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

a4049260bae2850b.png

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

ayah6d03b6ad78746.png

  1. Jika Anda menggunakan perangkat fisik, tekan download, lalu instal dan jalankan aplikasi.
  2. Saat aplikasi dimulai, Anda akan diminta untuk mengaktifkan pemberitahuan build baru. Pilih "Aktifkan"

6e3540a2900734e6.png

  1. Kemudian, Anda akan diminta untuk login. Klik "Lanjutkan".

82d90d7935bfaea0.png

  1. Login dengan akun penguji.

13bee1d03fa94ebf.png

  1. Anda akan diarahkan kembali ke aplikasi. Anda tidak perlu login atau menerima pemberitahuan saat menjalankan aplikasi lagi.

815d6757eb5f6327.png

Mendistribusikan update untuk penguji

  1. Perbarui nomor build Anda menjadi "2".

861aa63ebbc6ec54.png

  1. Pilih "Any iOS Device (arm64)" sebagai tujuan build, dan Product->Archive. Setelah arsip dibuat, bangun distribusi yang ditandatangani dengan Profil distribusi pengembangan.
  2. Setelah selesai, build akan menyimpan file IPA dan beberapa file log dalam folder yang Anda tentukan. Upload IPA baru ini di Firebase console, tambahkan email Anda sebagai penguji lagi, lalu Distribusikan.

b6e75dc216fc3731.pngs

Menguji pemberitahuan build

  1. Pastikan Anda menutup aplikasi jika terbuka. Mulai ulang aplikasi.
  2. Saat aplikasi dimulai ulang, Anda akan menerima pemberitahuan "Versi Baru Tersedia".

3bd532992df458e6.png

  1. Klik "Perbarui" untuk menerima versi terbaru.
  2. Klik "Instal" di layar berikutnya.

3a761d8fa4b79d33.png

  1. 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 telah login ke akun penguji Firebase App Distribution miliknya, 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 menjadikan panggilan checkForUpdate() sebagai komentar.

AppDistributionViewController.swift

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

Sebagai gantinya, mari kita panggil checkForUpdate() di checkForUpdateButtonClicked().

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Sekarang, mari kita implementasikan metode signInOutButtonClicked() yang akan membuat pengguna logout jika sudah login, 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
 }

Membuat dan menguji implementasi Anda

7. Selamat!

Anda telah membangun fitur "tampilan pemberitahuan dalam aplikasi" ke dalam aplikasi menggunakan Firebase App Distribution iOS SDK.

Yang telah kita bahas

  • Firebase App Distribution
  • Notifikasi Baru Firebase App Distribution untuk iOS SDK

Langkah Berikutnya

Pelajari Lebih Lanjut

Ada Pertanyaan?

Melaporkan Masalah