Powiadamiaj testerów o nowych kompilacjach

Opcjonalne pakiety SDK Firebase App Distribution dla systemów iOS i Android umożliwiają wyświetlanie testerom alertów w aplikacji, gdy nowe kompilacje aplikacji będą dostępne do zainstalowania. 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 iOS .

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

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

  2. W sekcji Firebase App Testers API kliknij 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. Zakoduj swój identyfikator aplikacji Google ( wymagany tylko w wersji 9 i 10 systemu iOS ):

    Zakoduj swój identyfikator aplikacji Google

    Dodaj schemat adresu URL appdistribution-<encoded-google-app-id> , dołączając fragment kodu do Info.plist file (instrukcje dotyczące dodawania schematu adresu URL w Xcode można znaleźć w dokumentacji firmy Apple ):

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

    Następnie zakoduj swój identyfikator aplikacji Google, zastępując dwukropki (:) myślnikami (-). Pamiętaj, że identyfikator Twojej aplikacji Google znajduje się w pliku GoogleService-Info.plist . Na przykład, jeśli identyfikator Twojej aplikacji Google to:

    7:77777777777:ios:123456789

    Twój zakodowany identyfikator aplikacji Google to:

    7-77777777777-ios-123456789
  4. Zaimportuj moduł Firebase do struktury App lub UIApplicationDelegate :

    Szybki

    import FirebaseCore
    

    Cel C

    @import FirebaseCore;
    
  5. Skonfiguruj współużytkowane wystąpienie FirebaseApp , zwykle w inicjatorze App lub w metodzie application(_:didFinishLaunchingWithOptions:) delegata aplikacji:

    Szybki

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

    Cel C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. Na koniec ponownie skompiluj swoją aplikację.

Krok 3 : Skonfiguruj alerty w aplikacji

Pakiet App Distribution SDK zapewnia dwa sposoby konfigurowania alertów o kompilacji w aplikacji dla testerów: podstawową konfigurację alertów, która zawiera wstępnie zbudowaną aktualizację aplikacji i okna dialogowe logowania, które są wyświetlane testerom, oraz zaawansowaną konfigurację alertów, która umożliwia możesz dostosować swój własny interfejs użytkownika. Zalecamy, aby najpierw użyć podstawowej konfiguracji alertów, jeśli dopiero zaczynasz korzystać z zestawu SDK dystrybucji aplikacji.

Konfiguracja podstawowa

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

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

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

    Włączenie alertów to jednorazowy proces na urządzeniu testowym, który utrzymuje się przez wszystkie aktualizacje aplikacji. Alerty pozostają włączone na urządzeniu testowym do momentu odinstalowania aplikacji lub wywołania metody signOutTester . Zobacz dokumentację referencyjną metody ( Swift lub Objective-C ), aby uzyskać więcej informacji.

  3. Sprawdza dostępność nowych kompilacji do zainstalowania przez testera.

Możesz wywołać checkForUpdate() w dowolnym momencie swojej aplikacji. Na przykład możesz zachęcić testerów do zainstalowania nowych dostępnych kompilacji podczas uruchamiania, 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 lub 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 lub 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 środowiska logowania testera, dzięki czemu można lepiej dopasować wygląd i sposób działania 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 dla testerów, którzy się jeszcze nie zalogowali. Po zalogowaniu się testera możesz wywołaj 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 lub 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 lub 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 utwórz aplikację i przetestuj implementację, udostępniając kompilację testerom za pomocą konsoli Firebase.

Odwiedź przewodnik 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 jest proszony o zalogowanie się do Google więcej niż jeden raz