Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Siapkan notifikasi build baru dalam aplikasi dengan App Distribution SDK

Firebase App Distribution SDK opsional memungkinkan Anda menampilkan peringatan dalam aplikasi kepada penguji ketika versi baru aplikasi Anda tersedia untuk dipasang. Panduan ini menjelaskan cara menggunakan App Distribution SDK untuk membuat dan menyesuaikan notifikasi build baru untuk penguji Anda.

Sebelum kamu memulai

Jika Anda belum melakukannya, tambahkan Firebase ke proyek iOS Anda .

Langkah 1 : Aktifkan API Penguji Distribusi Aplikasi

  1. Pilih proyek Anda di Google Cloud Console .

  2. Di bawah API Penguji Aplikasi Firebase , klik Aktifkan .

Langkah 2 : Tambahkan Distribusi Aplikasi ke aplikasi Anda

Kami merekomendasikan penggunaan CocoaPods untuk menginstal pustaka Firebase. Anda juga dapat memilih untuk mengintegrasikan framework SDK secara langsung .

  1. Buka podfile yang Anda buat untuk proyek (atau jalankan pod init untuk membuatnya), lalu tambahkan baris berikut di dalam bagian target:

    pod 'Firebase/AppDistribution'
  2. Di direktori podfile Anda, jalankan pod install , lalu buka file .xcworkspace dibuat.

  3. Enkode ID Google app Anda ( hanya diperlukan untuk iOS versi 9 dan 10 ):

    Encode ID Google app Anda

    Tambahkan appdistribution-<encoded-google-app-id> skema URL dengan menyertakan cuplikan di Info.plist file Anda (lihat dokumentasi Apple untuk instruksi tentang cara menambahkan skema URL di Xcode):

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    Kemudian, encode ID Google app Anda dengan mengganti titik dua (:) dengan tanda hubung (-). Perhatikan bahwa ID Google app Anda terletak di file GoogleService-Info.plist . Misalnya, jika ID aplikasi Google Anda adalah:

    7:77777777777:ios:123456789

    ID aplikasi Google Anda yang dienkode adalah:

    7-77777777777-ios-123456789
  4. Impor modul Firebase di UIApplicationDelegate Anda:

    Cepat

    import Firebase
    

    Objective-C

    @import Firebase;
    
  5. Konfigurasikan instance bersama FirebaseApp , biasanya dalam metode application:didFinishLaunchingWithOptions: :

    Cepat

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. Terakhir, kompilasi ulang aplikasi Anda.

Langkah 3 : Konfigurasikan peringatan dalam aplikasi

App Distribution SDK menyediakan dua cara untuk menyiapkan peringatan build dalam aplikasi untuk penguji Anda: konfigurasi peringatan dasar, yang dilengkapi dengan dialog masuk yang sudah dibuat sebelumnya untuk ditampilkan kepada penguji, dan konfigurasi peringatan lanjutan, yang memungkinkan Anda untuk sesuaikan antarmuka pengguna (UI) Anda sendiri. Sebaiknya gunakan dulu konfigurasi peringatan dasar jika Anda baru mengenal SDK Distribusi Aplikasi.

Konfigurasi dasar

Gunakan checkForUpdate untuk menampilkan dialog aktifkan peringatan yang dibuat sebelumnya kepada penguji yang belum mengaktifkan peringatan, lalu periksa apakah build baru tersedia. Saat dipanggil, metode ini memberlakukan urutan berikut:

  1. Memeriksa apakah penguji telah mengaktifkan lansiran dengan meminta mereka masuk ke Distribusi Aplikasi dengan akun Google mereka.

  2. Jika penguji belum mengaktifkan peringatan, menampilkan dialog yang dibuat sebelumnya.

    Mengaktifkan peringatan adalah proses satu kali pada perangkat uji dan terus berlanjut di seluruh pembaruan aplikasi Anda. Peringatan tetap diaktifkan pada perangkat uji hingga aplikasi di-uninstal, atau hingga metode signOutTester dipanggil. Lihat dokumentasi referensi metode ( Swift atau Objective-C ) untuk informasi selengkapnya.

  3. Memeriksa build yang baru tersedia untuk dipasang oleh penguji.

Anda dapat menyertakan checkForUpdate kapan saja di aplikasi Anda. Misalnya, Anda dapat meminta penguji untuk menginstal build yang baru tersedia saat startup dengan menyertakan checkForUpdate di viewDidAppear dari UIViewController .

Contoh berikut memeriksa apakah penguji telah mengaktifkan peringatan dan memiliki akses ke build baru, dan jika demikian, menampilkan dialog saat build tersedia untuk diinstal:

Periksa peringatan yang diaktifkan :

Cepat

AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
})

Objective-C

[[FIRAppDistribution appDistribution]
    checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                   NSError *_Nullable error) {
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
}];

Tampilkan dialog untuk menginstal build baru :

Cepat

AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  guard let release = release else {
    return
  }

  // Customize your alerts here.
  let title = "New Version Available"
  let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
  let 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 should be a UIViewController.
  self.present(uialert, animated: true, completion: nil)
})

Objective-C

[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
  UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Check For Update"
message:[NSString stringWithFormat:@"Error during tester sign in! %@", error.localizedDescription]
preferredStyle:UIAlertControllerStyleAlert];

  UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {}];

  [alert addAction:okAction];
  [self presentViewController:alert animated:YES completion:nil];

  return;
  }

  if (release) {
  UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];

  UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    [[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
  }];
  UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
  [alert addAction:updateAction];
  [alert addAction:cancelAction];
  [self presentViewController:alert animated:YES completion:nil];
  }
}];

Konfigurasi lanjutan

Metode signInTester dan isTesterSignedIn memberi Anda lebih banyak fleksibilitas dalam menyesuaikan pengalaman login penguji Anda, sehingga bisa lebih cocok dengan tampilan dan nuansa aplikasi Anda.

Contoh berikut memeriksa apakah penguji sudah masuk ke akun penguji Firebase App Distribution, jadi Anda dapat memilih untuk menampilkan UI masuk hanya untuk penguji yang belum masuk. Setelah penguji masuk, Anda dapat panggil checkForUpdate untuk memeriksa apakah penguji memiliki akses ke build baru.

Cepat

// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().signInTester (completion: { error in
    // completion block for signInTester
     if (error != nil) {
       // handle failed sign in
      return
     }
    // handle successful sign in
  })
}

// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
      // completion block for check for update
  })
}

Objective-C

// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
    signInTesterWithCompletion:^(NSError *_Nullable error) {
      // completion block for signInTester
     if (error) {
       // handle failed sign in
       return;
     }
      // handle successful sign in
  }];
}

// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
        checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                       NSError *_Nullable error) {
     // completion block for check for update
  }];
}

Untuk informasi tentang metode tambahan, termasuk signOutTester , lihat dokumentasi referensi Distribusi Aplikasi untuk Swift dan Objective-C .

Langkah 4 : Buat dan uji penerapan Anda

Terakhir, buat aplikasi Anda dan uji implementasi Anda dengan mendistribusikan build ke penguji menggunakan Firebase console.

Kunjungi panduan Pemecahan Masalah Distribusi Aplikasi untuk mendapatkan bantuan dengan masalah umum, seperti:

  • Penguji tidak menerima peringatan dalam aplikasi
  • Penguji diminta untuk masuk ke Google lebih dari sekali