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

Siapkan lansiran build baru dalam aplikasi dengan App Distribution SDK

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

Sebelum kamu memulai

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

Langkah 1: Aktifkan App Distribusi Tester API

  1. Pilih proyek Anda dalam Cloud Console Google .

  2. Di bawah Firebase App Testers API, klik Aktifkan.

Langkah 2: Tambahkan App Distribusi ke aplikasi Anda

  1. Buka podfile Anda buat untuk proyek (atau run pod init untuk membuat satu), kemudian tambahkan baris berikut di dalam bagian sasaran:

    pod 'Firebase/AppDistribution'
  2. Dalam direktori podfile Anda, jalankan pod install , kemudian buka menciptakan .xcworkspace berkas.

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

    Enkode ID aplikasi Google Anda

    Tambahkan appdistribution-<encoded-google-app-id> skema URL dengan memasukkan potongan dalam Anda Info.plist file (lihat dokumentasi Apple untuk petunjuk tentang cara untuk 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, enkode ID aplikasi Google Anda dengan mengganti titik dua (:) dengan tanda hubung (-). Perhatikan bahwa Google app ID Anda berada di Anda GoogleService-Info.plist berkas. Misalnya, jika ID aplikasi Google Anda adalah:

    7:77777777777:ios:123456789

    ID aplikasi Google Anda yang disandikan adalah:

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

    Cepat

    import Firebase
    

    Objective-C

    @import Firebase;
    
  5. Konfigurasi FirebaseApp bersama misalnya, biasanya dalam aplikasi Anda application:didFinishLaunchingWithOptions: Metode:

    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: Konfigurasi alert di-app

App Distribution SDK menyediakan dua cara menyiapkan lansiran build dalam aplikasi untuk penguji Anda: konfigurasi lansiran dasar, yang dilengkapi dengan dialog masuk bawaan untuk ditampilkan kepada penguji, dan konfigurasi lansiran lanjutan, yang memungkinkan Anda sesuaikan antarmuka pengguna (UI) Anda sendiri. Sebaiknya gunakan konfigurasi lansiran dasar terlebih dahulu jika Anda baru menggunakan App Distribution SDK.

Konfigurasi dasar

Gunakan checkForUpdate untuk menampilkan pre-built mengaktifkan peringatan dialog untuk penguji yang belum diaktifkan alert, dan kemudian memeriksa apakah membangun baru tersedia. Saat dipanggil, metode memberlakukan urutan berikut:

  1. Memeriksa apakah penguji telah mengaktifkan lansiran dengan meminta mereka masuk ke App Distribution dengan akun Google mereka.

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

    Mengaktifkan lansiran adalah proses satu kali pada perangkat uji dan terus berlanjut di seluruh pembaruan aplikasi Anda. Alarm tetap diaktifkan pada perangkat uji sampai baik aplikasi di-uninstall, atau sampai signOutTester metode ini disebut. Lihat dokumentasi metode ini referensi ( Swift atau Objective-C ) untuk informasi lebih lanjut.

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

Anda dapat menyertakan checkForUpdate pada setiap titik dalam aplikasi Anda. Misalnya, Anda dapat meminta penguji Anda untuk menginstal baru tersedia membangun di startup dengan memasukkan 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 dipasang:

Periksa alert 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).
}];

Menampilkan dialog untuk menginstal membangun 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 memberikan Anda lebih banyak fleksibilitas menyesuaikan tester Anda masuk pengalaman, sehingga dapat lebih cocok dengan tampilan aplikasi Anda dan nuansa.

Contoh berikut memeriksa apakah penguji telah masuk ke akun penguji Firebase App Distribution, sehingga Anda dapat memilih untuk menampilkan UI masuk hanya untuk penguji yang belum masuk. Setelah penguji masuk, Anda dapat memanggil checkForUpdate untuk memeriksa apakah penguji memiliki akses ke membangun 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 App dokumentasi referensi Distribusi untuk Swift dan Objective-C .

Langkah 4: Membangun dan uji implementasi Anda

Akhirnya, membangun aplikasi dan menguji penerapan Anda dengan mendistribusikan membangun untuk penguji menggunakan konsol Firebase.

Kunjungi App Distribusi Pemecahan Masalah panduan untuk membantu dengan masalah umum, seperti:

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