Jak działają aktualizacje aplikacji

Z tego przewodnika dowiesz się, jak platforma Android i Google Play obsługują aktualizacje aplikacji, oraz poznasz różne opcje dla deweloperów, którzy publikują aplikacje w wielu sklepach z aplikacjami.

Jak Android obsługuje aktualizacje aplikacji

Każda aplikacja na Androida ma unikalny identyfikator aplikacji, który wygląda jak nazwa pakietu Java lub Kotlin, np. com.example.myapp. Ten identyfikator jednoznacznie identyfikuje każdą aplikację na urządzeniu. Na urządzeniach z Androidem może być zainstalowana tylko 1 aplikacja z danym identyfikatorem.

Aby aktualizacja została zaakceptowana przez platformę Android, muszą być spełnione te warunki:

  • Identyfikator aplikacji aktualizacji musi być taki sam jak w przypadku zainstalowanej aplikacji.
  • Certyfikat podpisywania aktualizacji musi być taki sam jak certyfikat podpisywania zainstalowanej aplikacji lub musi zawierać prawidłowy dowód rotacji.
  • Kod wersji aktualizacji musi być wyższy lub równy kodowi wersji zainstalowanej aplikacji.
  • W niektórych przypadkach użytkownik może musieć zaakceptować aktualizację.

Pamiętaj, że nie ma wbudowanego zabezpieczenia przed aktualizowaniem aplikacji przez różnych instalatorów, gdy aktualizacje mają ten sam certyfikat podpisywania i ten sam lub wyższy kod wersji.

Aby zainstalować aplikację, która nie spełnia powyższych warunków, użytkownik musi najpierw odinstalować obecnie zainstalowaną wersję, co spowoduje usunięcie wszystkich danych aplikacji z urządzenia.

Jak Google Play aktualizuje aplikacje

Podejście Google Play do aktualizowania aplikacji opiera się na tych zasadach:

  • Informuj użytkowników o nowościach. Zalecamy aktualizowanie aplikacji, aby chronić użytkowników przed problemami z bezpieczeństwem i korzystać z najnowszych ulepszeń funkcji.
  • Szanuj wybór użytkownika. Google Play aktualizuje aplikacje powiązane z kontami użytkowników na podstawie wybranych przez nich ustawień aktualizacji, np. zezwalając na korzystanie z danych mierzonych lub zabraniając tego.
  • Szanowanie wyboru dewelopera. Podczas określania aktualizacji aplikacji Google Play korzysta z opcji konfiguracji deweloperów.
  • Unikaj marnowania zasobów. Oszczędzaj baterię, optymalizując czas pobierania aktualizacji, i minimalizuj zużycie danych, stosując techniki takie jak kompresja i patchowanie.

Google Play aktualizuje aplikację zainstalowaną na urządzeniu, jeśli spełnia ona te warunki:

  • Aplikacja jest opublikowana w Google Play z tym samym identyfikatorem aplikacji.
  • Certyfikat podpisywania opublikowanej aplikacji jest zgodny z certyfikatem podpisywania obecnie zainstalowanej wersji lub zawiera prawidłowy dowód rotacji.
  • Aplikacja jest częścią biblioteki użytkownika lub została wstępnie załadowana przez producenta OEM.
  • Aplikacja jest dostępna dla tego użytkownika i tego urządzenia zgodnie z opcjami kierowania zdefiniowanymi przez dewelopera.
  • Zainstalowana aplikacja jest nieaktualna w porównaniu z wersją dostępną w Google Play.

Jeśli te warunki zostaną spełnione, Google Play będzie mogło zaktualizować aplikację. W podsekcjach poniżej znajdziesz szczegółowe informacje o niektórych z tych warunków.

Pamiętaj, że Google Play pobiera zawartość aplikacji lub przeprowadza konserwację plików binarnych aplikacji w imieniu deweloperów w innych sytuacjach bez zmiany kodu wersji Androida, np. podczas dokańczania częściowych pobrań lub pobierania na żądanie plików podzielonych.

Opublikowano w Google Play

Google Play używa identyfikatora aplikacji do jednoznacznego identyfikowania aplikacji opublikowanych w Google Play. Ten warunek jest spełniony, jeśli identyfikator aplikacji zainstalowanej na urządzeniu jest zgodny z identyfikatorem aplikacji opublikowanej w Google Play.

Część biblioteki użytkownika

Ten warunek jest spełniony, jeśli spełniony jest jeden z tych warunków:

  • Na urządzeniu jest aktywne konto Google, na którym wcześniej uzyskano aplikację, klikając przycisk instalacji lub zakupu w Google Play.
  • Producent OEM preinstalował aplikację w ramach obrazu systemu.

Użytkownicy mogą też ręcznie usuwać aplikacje ze swoich bibliotek.

Nieaktualny

Google Play sprawdza, czy aplikacja zainstalowana na urządzeniu jest nieaktualna, na podstawie kodu wersji. Jeśli wersja dostępna do pobrania w Google Play ma wyższy kod wersji niż zainstalowana wersja, Google Play uznaje zainstalowaną aplikację za nieaktualną.

Aplikacje w wielu sklepach z aplikacjami

Jeśli publikujesz aplikację w kilku sklepach, możesz kontrolować aktualizacje w różnych sklepach na kilka sposobów. W kolejnych sekcjach omówimy te opcje oraz ich potencjalne zalety i wady.

Zapobieganie aktualizacjom w różnych sklepach

Możesz uniemożliwić poszczególnym sklepom z aplikacjami przeprowadzanie aktualizacji aplikacji w wielu sklepach. Możesz to zrobić, jeśli zawartość aplikacji różni się w poszczególnych sklepach. Można to osiągnąć, publikując aplikację z 2 różnymi identyfikatorami lub z tym samym identyfikatorem i 2 różnymi kluczami podpisywania.

Możesz chcieć zminimalizować ponowne wykorzystanie klucza podpisywania, aby zmniejszyć ryzyko związane z jego przejęciem, i dlatego używać innego klucza podpisywania aplikacji w każdym sklepie z aplikacjami. Zapobiegłoby to aktualizacjom w różnych sklepach.

Niezależnie od wybranego podejścia Android traktuje aplikacje bez pasującego identyfikatora aplikacji i klucza podpisywania jako niezgodne. Użytkownik, który chce przejść z jednego sklepu do drugiego, musi usunąć zainstalowaną aplikację (co spowoduje usunięcie wszystkich danych z nią powiązanych) i zainstalować ją ponownie z innego sklepu.

Zezwalaj na aktualizacje w różnych sklepach

Możesz zezwolić każdemu sklepowi z aplikacjami na przeprowadzanie aktualizacji aplikacji w innych sklepach. Możesz to zrobić, jeśli rozpowszechniasz aplikację z tą samą zawartością we wszystkich sklepach z aplikacjami i chcesz, aby użytkownicy mieli zawsze aktualną wersję. Jeśli we wszystkich sklepach z aplikacjami, w których publikujesz aplikację, używasz tego samego identyfikatora aplikacji i tych samych kluczy podpisywania, każdy sklep z aplikacjami może aktualizować instalacje Twojej aplikacji niezależnie od tego, skąd użytkownik pobrał ją na początku.

Może to jednak prowadzić do nieprzewidywalnych zachowań użytkowników w zależności od tego, jak poszczególne sklepy z aplikacjami zdecydują się wdrożyć aktualizacje aplikacji w różnych sklepach. Na przykład użytkownik może wyłączyć aktualizacje z jednego sklepu, nie zdając sobie sprawy, że inny sklep może nadal je udostępniać.

Jeśli wcześniej zezwalałeś(-aś) na aktualizacje z różnych sklepów, ale chcesz zacząć preferować konkretne źródło aktualizacji, gdy jest ono dostępne na urządzeniu, możesz opublikować aplikację z wyższym kodem wersji w preferowanym sklepie z aplikacjami i nadal publikować ją z niższymi kodami wersji w innych sklepach. Gdy na urządzeniu zostanie zainstalowana nowsza wersja kodu z preferowanego źródła, inne sklepy z aplikacjami nie będą mogły przeprowadzić aktualizacji na tym urządzeniu.