Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Informa i tester sulle nuove build

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Gli SDK iOS e Android opzionali Firebase App Distribution ti consentono di visualizzare avvisi in-app ai tuoi tester quando sono disponibili per l'installazione nuove build della tua app. Questa guida spiega come utilizzare gli SDK per iOS e Android di distribuzione app per creare e personalizzare nuovi avvisi di build per i tuoi tester.

Prima di iniziare

Se non lo hai già fatto, aggiungi Firebase al tuo progetto iOS .

Passaggio 1 : abilita l'API del tester di distribuzione delle app

  1. Seleziona il tuo progetto in Google Cloud Console .

  2. In API Firebase App Testers , fai clic su Abilita .

Passaggio 2 : aggiungi la distribuzione dell'app alla tua app

  1. Apri il Podfile che hai creato per il progetto (o esegui pod init per crearne uno), quindi aggiungi la seguente riga all'interno della sezione di destinazione:

    pod 'FirebaseAppDistribution'
  2. Nella directory del tuo podfile, esegui pod install , quindi apri il file .xcworkspace creato.

  3. Codifica il tuo ID app Google ( richiesto solo per le versioni iOS 9 e 10 ):

    Codifica il tuo ID app Google

    Aggiungi lo schema URL appdistribution-<encoded-google-app-id> includendo lo snippet nel Info.plist file (consulta la documentazione di Apple per istruzioni su come aggiungere lo schema URL in 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>
    

    Quindi, codifica l'ID dell'app Google sostituendo i due punti (:) con i trattini (-). Tieni presente che l'ID dell'app Google si trova nel file GoogleService-Info.plist . Ad esempio, se l'ID dell'app Google è:

    7:77777777777:ios:123456789

    Il tuo ID app Google codificato è:

    7-77777777777-ios-123456789
  4. Importa il modulo Firebase nella tua struttura App o UIApplicationDelegate :

    Veloce

    import FirebaseCore
    

    Obiettivo-C

    @import FirebaseCore;
    
  5. Configura un'istanza condivisa FirebaseApp , in genere nell'inizializzatore App o nel metodo dell'applicazione del delegato application(_:didFinishLaunchingWithOptions:) :

    Veloce

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

    Obiettivo-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. Infine, ricompila la tua app.

Passaggio 3 : configura gli avvisi in-app

L'SDK di distribuzione app offre due modi per impostare gli avvisi di build in-app per i tester: una configurazione di avviso di base, fornita con l'aggiornamento dell'app predefinito e finestre di dialogo di accesso da mostrare ai tester, e una configurazione di avviso avanzata, che consente personalizzare la propria interfaccia utente. Ti consigliamo di utilizzare prima la configurazione di avviso di base se non conosci l'SDK di distribuzione app.

Configurazione di base

Usa checkForUpdate per visualizzare una finestra di dialogo di abilitazione predefinita per i tester che non hanno ancora abilitato gli avvisi, quindi controlla se è disponibile una nuova build. Quando viene chiamato, il metodo esegue la seguente sequenza:

  1. Verifica se un tester ha abilitato gli avvisi chiedendogli di accedere a App Distribution con il proprio account Google.

  2. Se il tester non ha ancora abilitato gli avvisi, visualizza una finestra di dialogo predefinita.

    L'abilitazione degli avvisi è un processo una tantum sul dispositivo di test e persiste negli aggiornamenti dell'app. Gli avvisi rimangono abilitati nel dispositivo di test fino a quando l'app non viene disinstallata o fino a quando non viene chiamato il metodo signOutTester . Consulta la documentazione di riferimento del metodo ( Swift o Objective-C ) per ulteriori informazioni.

  3. Verifica la presenza di nuove build disponibili per l'installazione del tester.

Puoi invocare checkForUpdate() in qualsiasi punto della tua app. Ad esempio, puoi richiedere ai tester di installare le nuove build disponibili all'avvio includendo checkForUpdate() in onAppear(perform:) della vista radice della tua app.

L'esempio seguente verifica se il tester ha abilitato o meno gli avvisi e ha accesso a una nuova build e, in tal caso, visualizza una finestra di dialogo quando la build è disponibile per l'installazione:

Veloce

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, tvOS o watchOS.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  if error != nil {
      // Handle error
      return
  }

  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)
})

Obiettivo-C

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, tvOS o watchOS.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    // Handle error
    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];
  }
}];

Configurazione avanzata

I metodi signInTester() e isTesterSignedIn ti offrono una maggiore flessibilità nella personalizzazione dell'esperienza di accesso del tester, in modo che possa adattarsi meglio all'aspetto della tua app.

L'esempio seguente verifica se il tester ha già effettuato l'accesso al proprio account tester di distribuzione app Firebase, quindi puoi scegliere di visualizzare l'interfaccia utente di accesso solo per i tester che non hanno ancora effettuato l'accesso. Dopo che il tester ha effettuato l'accesso, puoi quindi chiama checkForUpdate() per verificare se il tester ha accesso a una nuova build.

Veloce

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, tvOS o watchOS.
// 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
  })
}

Obiettivo-C

Nota: questo prodotto non è disponibile su target macOS, Mac Catalyst, tvOS o watchOS.
// 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
  }];
}

Per informazioni su metodi aggiuntivi, incluso signOutTester() , consulta la documentazione di riferimento sulla distribuzione dell'app per Swift e Objective-C .

Passaggio 4 : crea e testa la tua implementazione

Infine, crea la tua app e testa la tua implementazione distribuendo la build ai tester utilizzando la console Firebase.

Visita la guida alla risoluzione dei problemi di distribuzione delle app per assistenza con problemi comuni, ad esempio:

  • Il tester non riceve avvisi in-app
  • Al tester viene richiesto di accedere a Google più di una volta