Nie każda aplikacja musi żyć wiecznie. Produkt nie znalazł rynku, firma zmieniła model biznesowy, funkcje przeniosły się do aplikacji webowej albo koszt utrzymania przestał się bronić. Decyzja o wygaszeniu bywa w pełni racjonalna — problem zaczyna się wtedy, gdy wygaszenie sprowadza się do kliknięcia „Unpublish” w konsoli i wyłączenia serwera.
Aplikacja wycofana ze sklepu nie znika z telefonów. Użytkownicy, którzy ją mają, nadal ją uruchamiają, subskrypcje mogą się dalej odnawiać, a dane osobowe wciąż leżą w bazie i w usługach zewnętrznych. Poniżej opisujemy, jak przeprowadzić wygaszenie po kolei, żeby nie zostawić po sobie reklamacji, ryzyka prawnego ani domeny, którą przejmie ktoś obcy.
Najpierw sprawdź, czy wygaszenie to jedyna opcja
Zanim zaplanujesz zamknięcie, warto porównać je z tańszymi wariantami. Często okazuje się, że problemem nie jest sama aplikacja, tylko koszt jej obecnego utrzymania.
Wariant Kiedy ma sens Co zostaje do zrobienia Minimalne utrzymanie Aplikacja ma aktywnych użytkowników, ale nie potrzebuje nowych funkcji Aktualizacje wymagane przez sklepy, bezpieczeństwo, monitoring awarii Przekazanie lub sprzedaż Produkt ma wartość dla innej firmy albo partnera Przeniesienie aplikacji na inne konto, przekazanie kodu i danych zgodnie z RODO Połączenie z inną aplikacją lub webem Funkcje dublują się z innym produktem firmy Migracja kont, przekierowanie użytkowników, wygaszenie starej aplikacji Pełne wygaszenie Usługa przestaje istnieć albo nikt z niej nie korzysta Cały proces opisany niżejJeśli rozważasz minimalne utrzymanie, punktem odniesienia może być nasz tekst o tym, ile kosztuje utrzymanie aplikacji mobilnej. Przekazanie aplikacji innej firmie opisaliśmy w artykule o przeniesieniu aplikacji na inne konto Google Play i App Store.
Co naprawdę dzieje się po wycofaniu ze sklepu
To najważniejszy punkt całego procesu: wycofanie ze sklepu blokuje nowych użytkowników, ale nie odcina obecnych.
Google Play („Unpublish”) App Store („Remove from Sale”) Nowi użytkownicy Nie znajdą i nie pobiorą aplikacji Aplikacja znika ze sklepu we wszystkich krajach w ciągu ok. 24 godzin Obecni użytkownicy Nadal korzystają z aplikacji i dostają aktualizacje Nadal dostają aktualizacje i mogą pobrać aplikację ponownie z historii zakupów, dopóki aktywna jest wymagana umowa Przywrócenie Możliwe z poziomu Play Console Możliwe w App Store Connect Identyfikator aplikacji Nazwy pakietu nie da się użyć ponownie w innej aplikacji Bundle ID pozostaje przypisany do kontaWniosek praktyczny: przez długi czas po wycofaniu aplikacja nadal działa na telefonach i odpytuje Twój backend. Jeśli wyłączysz serwer bez ostrzeżenia, użytkownicy zobaczą błędy, puste ekrany albo crash — i zostawią jednogwiazdkowe opinie aplikacji, której już nie ma w sklepie.
Wycofanie ze sklepu to nie to samo co usunięcie aplikacji z konta. Usunięcia nie da się cofnąć, więc nie rób tego na początku procesu, a najlepiej wcale — zwłaszcza że obie platformy pozwalają trzymać wycofaną aplikację w konsoli bez kosztów poza opłatą za konto deweloperskie.
Plan wygaszenia krok po kroku
Kolejność ma znaczenie. Poniższy harmonogram zakłada ok. trzy miesiące od decyzji do wyłączenia backendu — przy aplikacjach z płatnymi subskrypcjami rocznymi trzeba go wydłużyć.
Kiedy Co zrobić T−90 dni Inwentaryzacja: konta, usługi zewnętrzne, dane osobowe, aktywne subskrypcje, domeny, umowy z dostawcami. Decyzja, co dzieje się z danymi użytkowników T−60 dni Wstrzymanie sprzedaży nowych subskrypcji i promocji. Ostatnia aktualizacja aplikacji z komunikatem o zakończeniu usługi i eksportem danych T−31 dni Powiadomienie użytkowników: w aplikacji, e-mailem, na stronie. Zakończenie odnowień subskrypcji w sklepach T−0 Wycofanie aplikacji ze sklepów. Backend działa dalej w trybie ograniczonym T+30 do T+90 dni Wyłączenie funkcji zapisu, potem backendu. Aplikacja pokazuje ekran „usługa zakończona” zamiast błędów Po wyłączeniu Usunięcie lub anonimizacja danych zgodnie z harmonogramem retencji, wypowiedzenie usług, archiwizacja kodu i dokumentacjiSubskrypcje i płatności
Tu najłatwiej o reklamacje i kłopoty z regulaminami sklepów.
App Store. Apple w dokumentacji App Store Connect zaleca, by przed zakończeniem usługi najpierw zdjąć subskrypcję ze sprzedaży („Removing from Sale”) — to zatrzymuje nowe zakupy i odnowienia. Między zdjęciem subskrypcji ze sprzedaży a wyłączeniem usługi musi minąć co najmniej 31 dni, żeby subskrypcje miesięczne zdążyły wygasnąć. Umowa Paid Apps Agreement zobowiązuje do dostarczenia treści przez cały opłacony okres; przy subskrypcjach dłuższych niż miesiąc, jeśli nie jesteś w stanie tego zapewnić, Apple każe skontaktować się z supportem. Apple zaleca też uprzedzenie subskrybentów co najmniej 31 dni wcześniej.
Google Play. Pomoc Google Play dla użytkowników mówi, że gdy aplikacja zostaje usunięta z Google Play, przyszłe odnowienia subskrypcji są anulowane. Nie warto jednak opierać planu na samym wycofaniu aplikacji. Bezpieczniej jest najpierw zatrzymać sprzedaż w konsoli, a aktywne subskrypcje anulować przez Google Play Developer API, z wyprzedzeniem i z komunikatem do użytkowników. Użytkownik zachowuje dostęp do końca opłaconego okresu, więc backend musi go obsłużyć.
Płatności poza sklepem (BLIK, karty, przelewy w aplikacjach sprzedających usługi fizyczne) obsługujesz według własnego regulaminu i umowy z operatorem płatności. Zaplanuj zwroty za niewykorzystany okres i sprawdź, czy regulamin w ogóle przewiduje zakończenie usługi.
Ostatnia wersja aplikacji
Ostatnia aktualizacja to najważniejsze wydanie w procesie wygaszania. Powinna zawierać:
- Komunikat o zakończeniu usługi z datą i informacją, co stanie się z danymi.
- Eksport danych, jeśli użytkownicy przechowują w aplikacji coś wartościowego (historię, dokumenty, zdjęcia). Prawo do przenoszenia danych z RODO nie obejmuje wszystkich przypadków, ale użytkownik, który nie zdążył pobrać swoich danych, i tak będzie miał pretensje.
- Zdalny przełącznik (remote config albo endpoint z flagą), który po wyłączeniu backendu pokaże ekran „usługa zakończona” zamiast błędów sieci. Ten sam mechanizm opisaliśmy przy wymuszaniu aktualizacji i minimalnej wspieranej wersji — jeśli aplikacja już go ma, wystarczy go użyć.
- Wyłączenie zbędnych SDK, które nie muszą już nic wysyłać: analityki, reklam, marketing automation.
Pamiętaj, że to wydanie przechodzi normalną weryfikację w sklepach i musi spełniać aktualne wymagania, w tym docelowy poziom API na Androidzie. Jeśli aplikacja była od dawna nieaktualizowana, samo przygotowanie ostatniej wersji może wymagać więcej pracy niż komunikat — o tym, dlaczego, piszemy w tekście o wycofanych SDK i API.
Dane osobowe i RODO
Zakończenie usługi nie kończy obowiązków administratora danych. Wygaszenie to dobry moment, żeby je uporządkować, i zły moment, żeby o nich zapomnieć.
- Ustal, co usuwasz, a co musisz zachować. Dane kont użytkowników zwykle tracą podstawę przetwarzania razem z usługą. Dokumenty księgowe — faktury, dane transakcji — trzeba przechowywać zgodnie z przepisami podatkowymi, zwykle przez 5 lat od końca roku, w którym upłynął termin płatności podatku.
- Nie zapominaj o kopiach zapasowych. Usunięcie rekordów z bazy produkcyjnej nie usuwa ich z backupów. Spisz, kiedy wygasną ostatnie kopie zawierające dane.
- Przejdź przez podmioty przetwarzające. Firebase, narzędzia do analityki i raportowania awarii, wysyłki e-maili i push — każdy z nich ma dane Twoich użytkowników. Usuń projekty lub dane i zachowaj potwierdzenia.
- Zaktualizuj politykę prywatności i poinformuj użytkowników, kiedy i jakie dane zostaną usunięte.
- Utrzymaj ścieżkę usuwania konta, dopóki dane istnieją. Google Play wymaga, by aplikacje z kontami użytkowników udostępniały możliwość usunięcia konta także poza aplikacją — szczegóły opisaliśmy w artykule o wymogach prywatności w Google Play i App Store.
- Udokumentuj cały proces. Zasada rozliczalności oznacza, że w razie pytań musisz pokazać, co zrobiłeś z danymi i kiedy.
Backend, domeny i konta
Wyłączanie infrastruktury też ma swoją kolejność.
- Najpierw tryb ograniczony, potem wyłączenie. Backend przez kilka tygodni obsługuje logowanie, odczyt i eksport danych, ale nie przyjmuje nowych zapisów ani płatności.
- Zostaw stały endpoint z komunikatem. Nawet po wyłączeniu właściwego API warto przez jakiś czas utrzymywać prostą odpowiedź, którą aplikacja zamieni na ekran „usługa zakończona”. Koszt jest symboliczny.
- Nie oddawaj domeny. Aplikacje na telefonach będą przez lata wysyłać żądania na zapisany w kodzie adres API, a czasem także tokeny sesji. Jeśli domena wygaśnie i kupi ją ktoś obcy, przejmie ten ruch. Opłacanie domeny przez kilka lat to najtańsze zabezpieczenie w całym procesie.
- Unieważnij klucze i sekrety. Klucze API do usług zewnętrznych, certyfikaty push, konta serwisowe — wszystko, co mogło trafić do kodu aplikacji albo do repozytorium.
- Wypowiedz usługi w kolejności zależności. Najpierw to, co generuje koszty i przetwarza dane, na końcu domena i konta deweloperskie.
- Zarchiwizuj projekt. Kod, dokumentację, klucze podpisujące i rejestr kont przechowaj w jednym miejscu. Jeśli za rok ktoś zdecyduje się wrócić do produktu, dokumentacja techniczna zdecyduje o tym, czy uda się to w kilka dni, czy w kilka miesięcy.
Konto deweloperskie Apple warto utrzymać przynajmniej do końca okresu subskrypcji: aplikacje z konta, którego członkostwo wygasło, przestają być dostępne w App Store. Konto Google Play nie wymaga corocznej opłaty, więc wystarczy zadbać, żeby dostęp do niego miała więcej niż jedna osoba.
Ile kosztuje wygaszenie aplikacji
Dla typowej aplikacji z kontami użytkowników i backendem wygaszenie to zwykle 20–60 godzin pracy: inwentaryzacja, ostatnia wersja aplikacji, tryb ograniczony backendu, porządki w danych i usługach. Przy przykładowej stawce 180 zł netto za godzinę daje to ok. 3,6–10,8 tys. zł netto. Do tego dochodzą koszty bieżące w okresie przejściowym (hosting, domena, konto Apple) oraz ewentualne zwroty dla subskrybentów.
Kwota rośnie, jeśli aplikacja od dawna nie była aktualizowana i ostatnia wersja wymaga podniesienia SDK, jeśli dane są rozproszone po wielu usługach albo jeśli nikt nie ma pełnej listy kont. Stawka i zakres są orientacyjne — rzeczywisty koszt zależy od stanu projektu.
Najczęstsze błędy
- Wyłączenie backendu w dniu wycofania aplikacji ze sklepu.
- Pozostawienie aktywnych subskrypcji, które odnawiają się za usługę, która już nie działa.
- Usunięcie aplikacji z konta zamiast wycofania jej ze sprzedaży — bez możliwości powrotu.
- Usunięcie bazy produkcyjnej bez sprawdzenia, co trzeba zachować dla księgowości.
- Wygaszenie domeny, na którą wciąż wysyłają żądania zainstalowane aplikacje.
- Brak komunikatu dla użytkowników — o zamknięciu usługi dowiadują się z błędu.
Podsumowanie
Dobre wygaszenie aplikacji mobilnej to kilka tygodni zaplanowanej pracy, a nie jedno kliknięcie. Najpierw zatrzymaj sprzedaż i uprzedź użytkowników, potem wydaj ostatnią wersję z komunikatem i eksportem danych, wycofaj aplikację ze sklepów, a backend wyłączaj stopniowo. Na koniec uporządkuj dane osobowe, unieważnij klucze, zachowaj domenę i zarchiwizuj projekt tak, żeby dało się do niego wrócić.
Jeśli nie masz pewności, czy aplikację wygaszać, czy utrzymywać w minimalnym zakresie, zamów bezpłatną analizę aplikacji — ocenimy stan aplikacji mobilnej i podpowiemy, który wariant ma sens. Przeprowadzamy też wygaszenie w ramach utrzymania aplikacji mobilnych, a gdy zespół, który ją tworzył, nie jest już dostępny, zaczynamy od przejęcia aplikacji. Szczegóły ustalimy w kontakcie.