Powiadamiaj testerów o nowych kompilacjach

Opcjonalne zestawy SDK Firebase App Distribution dla systemów iOS i Android umożliwiają wyświetlanie testerom alertów w aplikacji, gdy będą dostępne do zainstalowania nowe wersje Twojej aplikacji. W tym przewodniku wyjaśniono, jak używać zestawów SDK dystrybucji aplikacji dla systemów iOS i Android do tworzenia i dostosowywania alertów o nowych kompilacjach dla testerów.

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na iOS .

Krok 1 : Włącz interfejs API testera dystrybucji aplikacji

  1. Wybierz swój projekt w konsoli Google Cloud .

  2. W obszarze API testerów aplikacji Firebase kliknij opcję Włącz .

Krok 2 : Dodaj dystrybucję aplikacji do swojej aplikacji

  1. Otwórz plik Podfile, który utworzyłeś dla projektu (lub uruchom pod init , aby go utworzyć), a następnie dodaj następujący wiersz w sekcji docelowej:

    pod 'FirebaseAppDistribution'
  2. W katalogu swojego pliku podfile uruchom pod install , a następnie otwórz utworzony plik .xcworkspace .

  3. Zaimportuj moduł Firebase do struktury App lub UIApplicationDelegate :

    Szybki

    import FirebaseCore
    import FirebaseAppDistribution
    

    Cel C

    @import FirebaseCore;
    @import FirebaseAppDistribution;
    
  4. Skonfiguruj udostępnioną instancję FirebaseApp w aplikacji delegata application(_:didFinishLaunchingWithOptions:) metoda:

    Szybki

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

    Cel C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. Jeśli swizzling jest wyłączony, przekaż wszystkie otwarte adresy URL do zestawu SDK dystrybucji aplikacji w implementacji application(_:open:options:) :

    Szybki

    func application(_ app: UIApplication, 
                     open url: URL,
                     options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
       if AppDistribution.appDistribution().application(application, open: url, options: options) {
          return true
       }
    
       // Handle other non-Firebase URLs here.
    
       return false
    }
    

    Cel C

    - (BOOL)application:(UIApplication *)app 
                openURL:(NSURL *)url 
                options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
       if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) {
          return YES;
       }
    
       // Handle other non-Firebase URLs here.
    
       return NO;
    }
    
  6. Na koniec przekompiluj aplikację.

Krok 3 : Skonfiguruj alerty w aplikacji

Zestaw SDK do dystrybucji aplikacji udostępnia testerom dwa sposoby konfigurowania alertów kompilacji w aplikacji: podstawową konfigurację alertów, która obejmuje wstępnie utworzone okna dialogowe aktualizacji aplikacji i logowania wyświetlane testerom, oraz zaawansowaną konfigurację alertów, która umożliwia możliwość dostosowania własnego interfejsu użytkownika. Jeśli dopiero zaczynasz korzystać z zestawu SDK dystrybucji aplikacji, zalecamy najpierw użycie podstawowej konfiguracji alertów.

Podstawowa konfiguracja

Użyj checkForUpdate aby wyświetlić wstępnie skompilowane okno dialogowe dotyczące włączania alertów testerom, którzy jeszcze nie włączyli alertów, a następnie sprawdź, czy dostępna jest nowa kompilacja. Po wywołaniu metoda realizuje następującą sekwencję:

  1. Sprawdza, czy tester włączył alerty, prosząc go o zalogowanie się do aplikacji App Distribution za pomocą konta Google.

  2. Jeśli tester nie włączył jeszcze alertów, wyświetla gotowe okno dialogowe.

    Włączenie alertów jest procesem jednorazowym na urządzeniu testowym i trwa przez cały czas aktualizacji aplikacji. Alerty pozostają włączone na urządzeniu testowym do czasu odinstalowania aplikacji lub wywołania signOutTester . Aby uzyskać więcej informacji, zobacz dokumentację referencyjną metody ( Swift lub Objective-C ).

  3. Sprawdza, czy tester ma nowe kompilacje do zainstalowania.

Możesz wywołać checkForUpdate() w dowolnym momencie aplikacji. Na przykład możesz poprosić testerów o zainstalowanie nowo dostępnych kompilacji przy uruchomieniu, włączając checkForUpdate() w onAppear(perform:) widoku głównego aplikacji.

Poniższy przykład sprawdza, czy tester włączył alerty i ma dostęp do nowej kompilacji, a jeśli tak, wyświetla okno dialogowe, gdy kompilacja jest dostępna do zainstalowania:

Szybki

Uwaga: ten produkt nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS i 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)
})

Cel C

Uwaga: ten produkt nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS i 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];
  }
}];

Zaawansowana konfiguracja

Metody signInTester() i isTesterSignedIn zapewniają większą elastyczność w dostosowywaniu sposobu logowania testera, dzięki czemu może on lepiej odpowiadać wyglądowi i stylowi Twojej aplikacji.

Poniższy przykład sprawdza, czy tester zalogował się już na swoje konto testera Firebase App Distribution, więc możesz wybrać wyświetlanie interfejsu logowania tylko testerom, którzy jeszcze się nie zalogowali. Po zalogowaniu się testera możesz to zrobić wywołaj funkcję checkForUpdate() , aby sprawdzić, czy tester ma dostęp do nowej kompilacji.

Szybki

Uwaga: ten produkt nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS i 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
  })
}

Cel C

Uwaga: ten produkt nie jest dostępny w systemach docelowych macOS, Mac Catalyst, tvOS i 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
  }];
}

Aby uzyskać informacje na temat dodatkowych metod, w tym signOutTester() , zobacz dokumentację referencyjną dystrybucji aplikacji dla Swift i Objective-C .

Krok 4 : Zbuduj i przetestuj swoją implementację

Na koniec zbuduj aplikację i przetestuj implementację, rozpowszechniając kompilację wśród testerów za pomocą konsoli Firebase.

Odwiedź przewodnik dotyczący rozwiązywania problemów z dystrybucją aplikacji , aby uzyskać pomoc dotyczącą typowych problemów, takich jak:

  • Tester nie otrzymuje alertów w aplikacji
  • Tester otrzymuje prośbę o wielokrotne zalogowanie się w Google