Aby przygotować aplikację do publikacji, musisz skonfigurować, skompilować i przetestować jej wersję do publikacji. Konfiguracja obejmuje podstawowe czyszczenie kodu i jego modyfikowanie, co pomaga zoptymalizować aplikację. Proces kompilacji jest podobny do procesu kompilacji wersji debugowania i można go przeprowadzić za pomocą narzędzi JDK i Android SDK.
Testy służą jako ostateczna weryfikacja, która pomaga upewnić się, że aplikacja działa zgodnie z oczekiwaniami w rzeczywistych warunkach. Firebase oferuje duży zestaw fizycznych i wirtualnych urządzeń testowych w ramach Laboratorium Firebase, których możesz używać do poprawy jakości aplikacji.
Gdy skończysz przygotowywać aplikację do publikacji, będziesz mieć podpisany plik APK, który możesz rozpowszechniać bezpośrednio wśród użytkowników lub za pośrednictwem platformy z aplikacjami, takiej jak Google Play.
Ten dokument zawiera podsumowanie głównych zadań, które musisz wykonać, aby przygotować aplikację do publikacji. Zadania opisane na tej stronie dotyczą wszystkich aplikacji na Androida, niezależnie od tego, w jaki sposób są one udostępniane użytkownikom. Jeśli publikujesz aplikację w Google Play, przeczytaj artykuł Publikowanie bez obaw.
Uwaga: przed wykonaniem czynności opisanych na tej stronie upewnij się, że Twoja aplikacja spełnia wszystkie kryteria wydania dotyczące funkcjonalności, wydajności i stabilności.

Rysunek 1. Przygotowanie do publikacji jest wymaganym zadaniem programistycznym i pierwszym krokiem w procesie publikowania.
Zadania przygotowujące do publikacji
Aby udostępnić aplikację użytkownikom, musisz utworzyć pakiet gotowy do publikacji, który użytkownicy będą mogli zainstalować i uruchomić na urządzeniach z Androidem. Pakiet gotowy do publikacji zawiera te same komponenty co plik APK do debugowania – skompilowany kod źródłowy, zasoby, plik manifestu itp. – i jest tworzony przy użyciu tych samych narzędzi do kompilacji. Jednak w przeciwieństwie do pliku APK do debugowania plik APK gotowy do publikacji jest podpisany Twoim własnym certyfikatem i zoptymalizowany za pomocą narzędzia zipalign
.

Rysunek 2. Aby przygotować aplikację do publikacji, musisz wykonać 5 głównych zadań.
Jeśli tworzysz aplikację w Androidzie Studio, podpisywanie i optymalizacja zwykle przebiegają bezproblemowo. Możesz na przykład użyć Android Studio z plikami kompilacji Gradle, aby skompilować, podpisać i zoptymalizować aplikację za jednym razem. Możesz też skonfigurować pliki kompilacji Gradle, aby robiły to samo podczas kompilowania z poziomu wiersza poleceń. Więcej informacji o korzystaniu z plików kompilacji Gradle znajdziesz w artykule Konfigurowanie kompilacji.
Aby przygotować aplikację do publikacji, zwykle wykonujesz 5 głównych zadań, jak pokazano na rysunku 2. Każde główne zadanie może obejmować jedno lub więcej mniejszych zadań, w zależności od sposobu publikowania aplikacji. Jeśli na przykład publikujesz aplikację w Google Play, podczas konfigurowania jej do publikacji możesz dodać do manifestu specjalne reguły filtrowania. Podobnie, aby spełnić wytyczne dotyczące publikowania w Google Play, podczas zbierania materiałów do publikacji możesz przygotować zrzuty ekranu i utworzyć tekst promocyjny.
Zadania wymienione na rysunku 2 wykonuje się zwykle po dokładnym debugowaniu i testowaniu aplikacji. Pakiet Android SDK zawiera kilka narzędzi, które pomagają testować i debugować aplikacje na Androida. Więcej informacji znajdziesz w artykułach Debugowanie aplikacji i Testowanie aplikacji.
Zbieranie materiałów i zasobów
Aby przygotować aplikację do publikacji, musisz zebrać kilka materiałów pomocniczych. Obejmuje to co najmniej klucze kryptograficzne do podpisywania aplikacji i ikonę aplikacji. Możesz też dołączyć umowę licencyjną użytkownika końcowego.
Klucze kryptograficzne
Aby pliki APK można było zainstalować lub zaktualizować na urządzeniu z Androidem, muszą one być podpisane cyfrowym certyfikatem. W przypadku Sklepu Google Play wszystkie aplikacje utworzone po sierpniu 2021 roku muszą korzystać z podpisywania aplikacji w Google Play. Przesłanie pakietu AAB do Konsoli Play nadal wymaga podpisania go certyfikatem dewelopera. Starsze aplikacje nadal mogą podpisywać się samodzielnie, ale niezależnie od tego, czy korzystasz z podpisywania aplikacji przez Google Play, czy podpisujesz aplikację samodzielnie, musisz ją podpisać, zanim będziesz mieć możliwość przesłania jej do Google Play.
Więcej informacji o wymaganiach dotyczących certyfikatów znajdziesz w sekcji Podpisywanie aplikacji.
Ważne: aplikacja musi być podpisana kluczem kryptograficznym, którego okres ważności kończy się po 22 października 2033 r.
Może być też konieczne uzyskanie innych kluczy wersji, jeśli Twoja aplikacja uzyskuje dostęp do usługi lub korzysta z biblioteki innej firmy, która wymaga użycia klucza opartego na kluczu prywatnym.
Ikona aplikacji
Ikona aplikacji pomaga użytkownikom zidentyfikować ją na ekranie głównym urządzenia i w oknie programu uruchamiającego. Pojawia się też w sekcjach Zarządzaj aplikacjami, Moje pobrane pliki i innych. Ponadto usługi publikowania, takie jak Google Play, wyświetlają Twoją ikonę użytkownikom. Upewnij się, że masz ikonę aplikacji i że spełnia ona zalecane wytyczne dotyczące ikon.
Uwaga: jeśli udostępniasz aplikację w Google Play, musisz utworzyć wersję ikony w wysokiej rozdzielczości. Więcej informacji znajdziesz w artykule Dodawanie zasobów do podglądu w celu zaprezentowania swojej aplikacji.
Umowa licencyjna użytkownika
Rozważ przygotowanie umowy licencyjnej użytkownika końcowego (EULA) dla swojej aplikacji. Może ona pomóc w ochronie Twojej osoby, organizacji i własności intelektualnej. Zalecamy, aby była ona dołączona do aplikacji.
Różne materiały
Może też być konieczne przygotowanie materiałów promocyjnych i marketingowych, aby rozreklamować aplikację. Jeśli na przykład udostępniasz aplikację w Google Play, musisz przygotować tekst promocyjny i zrzuty ekranu aplikacji. Więcej informacji znajdziesz w artykule Dodawanie zasobów podglądu, aby zaprezentować aplikację.
Konfigurowanie aplikacji do publikacji
Po zebraniu wszystkich materiałów pomocniczych możesz rozpocząć konfigurowanie aplikacji przed jej opublikowaniem. W tej sekcji znajdziesz podsumowanie zmian w konfiguracji, które zalecamy wprowadzić w kodzie źródłowym, plikach zasobów i pliku manifestu aplikacji przed jej opublikowaniem.
Większość zmian konfiguracji wymienionych w tej sekcji jest opcjonalna, ale są one uważane za dobre praktyki kodowania i zachęcamy do ich wdrożenia. W niektórych przypadkach te zmiany konfiguracji mogły już zostać wprowadzone w ramach procesu tworzenia aplikacji.
Wybierz odpowiedni identyfikator aplikacji
Wybierz identyfikator aplikacji, który będzie odpowiedni przez cały okres jej użytkowania. Po udostępnieniu aplikacji użytkownikom nie można zmienić jej identyfikatora. Aby ją ustawić, użyj właściwości applicationId
w pliku build.gradle
lub build.gradle.kts
na poziomie modułu. Więcej informacji znajdziesz w artykule Ustawianie identyfikatora aplikacji.
Wyłączanie debugowania
Aby skonfigurować, czy plik APK ma być debugowalny, użyj flagidebuggable
w przypadku skryptu Groovy lub flagi isDebuggable
w przypadku skryptu Kotlin:
Kotlin
android { ... buildTypes { release { isDebuggable = false ... } debug { isDebuggable = true ... } } ... }
Groovy
android { ... buildTypes { release { debuggable false ... } debug { debuggable true ... } } ... }
Włączanie i konfigurowanie kompresowania aplikacji
Wiele z tych optymalizacji można zautomatyzować, włączając zmniejszanie rozmiaru w przypadku wersji do opublikowania. Możesz na przykład dodać reguły ProGuard, aby usunąć instrukcje logowania. Kompresor zidentyfikuje i usunie nieużywany kod i zasoby. Narzędzie do zmniejszania może też zastępować nazwy klas i zmiennych krótszymi nazwami, aby jeszcze bardziej zmniejszyć rozmiar pliku DEX.
Wyłącz rejestrowanie
Przed utworzeniem aplikacji do publikacji wyłącz rejestrowanie. Możesz wyłączyć rejestrowanie, usuwając wywołania metod Log
w plikach źródłowych. Usuń też wszystkie pliki dziennika lub statyczne pliki testowe utworzone w projekcie.
Usuń też wszystkie wywołania śledzące Debug
, które zostały dodane do kodu, np. wywołania metod startMethodTracing()
i stopMethodTracing()
.
Ważne: jeśli używasz WebView
do wyświetlania płatnych treści lub interfejsów JavaScript, wyłącz debugowanie aplikacji, ponieważ umożliwia ono użytkownikom wstrzykiwanie skryptów i wyodrębnianie treści za pomocą Narzędzi deweloperskich w Chrome. Aby wyłączyć debugowanie, użyj metody
WebView.setWebContentsDebuggingEnabled()
.
Usuwanie niepotrzebnych katalogów projektów
Wyczyść projekt i upewnij się, że jest zgodny ze strukturą katalogów opisaną w omówieniu projektów. Pozostawienie w projekcie nieużywanych lub osieroconych plików może uniemożliwić skompilowanie aplikacji i spowodować jej nieprzewidywalne działanie. Wykonaj co najmniej te czynności związane z czyszczeniem:
- Sprawdź zawartość katalogów
cpp/
,lib/
isrc/
. Katalogcpp/
powinien zawierać tylko pliki źródłowe powiązane z Android NDK, takie jak pliki źródłowe C lub C++, pliki nagłówkowe lub pliki makefile. Kataloglib/
powinien zawierać tylko pliki bibliotek innych firm lub prywatne pliki bibliotek, w tym wstępnie skompilowane biblioteki współdzielone i statyczne. Katalogsrc/
powinien zawierać tylko pliki źródłowe aplikacji (pliki Java, Kotlin i AIDL). Katalogsrc/
nie powinien zawierać żadnych plików JAR. - Sprawdź, czy w projekcie nie ma prywatnych lub zastrzeżonych plików danych, których aplikacja nie używa, i usuń je. Na przykład w katalogu
res/
projektu poszukaj starych plików rysowalnych, plików układu i plików wartości, których już nie używasz, i je usuń. - Sprawdź katalog
lib/
pod kątem bibliotek testowych i usuń je, jeśli nie są już używane przez Twoją aplikację. - Sprawdź zawartość katalogu
assets/
i katalogures/raw/
pod kątem plików zasobów pierwotnych i plików statycznych, które musisz zaktualizować lub usunąć przed opublikowaniem.
Sprawdzanie i aktualizowanie ustawień pliku manifestu i kompilacji Gradle
Sprawdź, czy te elementy plików manifestu i kompilacji są poprawnie skonfigurowane:
- Element
<uses-permission>
Określ tylko te uprawnienia, które są istotne i niezbędne dla Twojej aplikacji.
- Atrybuty
android:icon
iandroid:label
Musisz podać wartości tych atrybutów, które znajdują się w elemencie
<application>
. - Usługi
versionCode
iversionName
Zalecamy określenie wartości tych właściwości, które znajdują się w pliku
build.gradle
lubbuild.gradle.kts
na poziomie modułu aplikacji. Więcej informacji znajdziesz w artykule Obsługa wersji aplikacji.
Jeśli publikujesz aplikację w Google Play, możesz ustawić kilka dodatkowych elementów pliku kompilacji. Na przykład atrybuty minSdk
i targetSdk
, które znajdują się w pliku build.gradle
lub build.gradle.kts
na poziomie modułu aplikacji. Więcej informacji o tych i innych ustawieniach Google Play znajdziesz w artykule Filtry w Google Play.
Problemy ze zgodnością adresów
Android udostępnia kilka narzędzi i technik, które pomagają zapewnić zgodność aplikacji z szeroką gamą urządzeń. Aby udostępnić aplikację jak największej liczbie użytkowników, rozważ wykonanie tych czynności:
- Dodaj obsługę wielu konfiguracji ekranu.
- Pamiętaj, aby stosować sprawdzone metody obsługi wielu ekranów. Dzięki obsłudze wielu konfiguracji ekranu możesz utworzyć aplikację, która będzie działać prawidłowo i wyglądać dobrze na wszystkich rozmiarach ekranu obsługiwanych przez Androida.
- Zoptymalizuj aplikację pod kątem większych wyświetlaczy.
- Możesz zoptymalizować aplikację, aby dobrze działała na urządzeniach z dużym wyświetlaczem, takich jak tablety i urządzenia składane. Na przykład układy listy i szczegółów mogą zwiększyć wygodę korzystania z większych ekranów.
- Rozważ użycie bibliotek Jetpack.
- Jetpack to zestaw bibliotek, które pomagają programistom stosować sprawdzone metody, ograniczać ilość kodu standardowego i pisać kod, który działa spójnie na różnych wersjach i urządzeniach z Androidem.
Aktualizowanie adresów URL serwerów i usług
Jeśli Twoja aplikacja uzyskuje dostęp do serwerów lub usług zdalnych, upewnij się, że używasz produkcyjnego adresu URL lub ścieżki serwera lub usługi, a nie testowego adresu URL lub ścieżki.
Implementowanie licencjonowania w Google Play
Jeśli udostępniasz płatną aplikację w Google Play, rozważ dodanie obsługi licencjonowania przez Google Play. Licencjonowanie umożliwia kontrolowanie dostępu do aplikacji na podstawie tego, czy bieżący użytkownik ją kupił. Korzystanie z licencjonowania przez Google Play jest opcjonalne, nawet jeśli publikujesz aplikację w Google Play.
Więcej informacji o usłudze licencjonowania w Google Play i o tym, jak jej używać w aplikacji, znajdziesz w artykule Licencjonowanie aplikacji.
Tworzenie aplikacji do publikacji
Po skonfigurowaniu aplikacji możesz utworzyć z niej gotowy do publikacji plik APK, który będzie podpisany i zoptymalizowany. Zestaw JDK zawiera narzędzia do podpisywania pliku APK (Keytool i Jarsigner), a zestaw Android SDK zawiera narzędzia do kompilowania i optymalizowania pliku APK. Jeśli używasz Androida Studio lub systemu kompilacji Gradle z wiersza poleceń, możesz zautomatyzować cały proces kompilacji. Więcej informacji o konfigurowaniu kompilacji Gradle znajdziesz w artykule Konfigurowanie wariantów kompilacji.
Jeśli używasz systemu ciągłej integracji, możesz skonfigurować zadanie, aby zautomatyzować proces wydawania. Nie ogranicza się to do tworzenia pliku APK lub pakietu aplikacji na Androida. Możesz też skonfigurować go tak, aby automatycznie przesyłał artefakty kompilacji do Konsoli Play.
Kompilowanie w Android Studio
Możesz użyć systemu kompilacji Gradle zintegrowanego z Androidem Studio, aby utworzyć gotowy do wydania plik APK, który jest podpisany kluczem prywatnym i zoptymalizowany. Aby dowiedzieć się, jak skonfigurować i uruchamiać kompilacje w Android Studio, przeczytaj artykuł Kompilowanie i uruchamianie aplikacji.
Proces kompilacji zakłada, że masz certyfikat i klucz prywatny odpowiednie do podpisania aplikacji. Jeśli nie masz odpowiedniego certyfikatu i klucza prywatnego, Android Studio może Ci pomóc w ich wygenerowaniu. Więcej informacji o procesie podpisywania znajdziesz w artykule Podpisywanie aplikacji.
Przygotowywanie serwerów i zasobów zewnętrznych
Jeśli Twoja aplikacja korzysta z serwera zdalnego, upewnij się, że jest on bezpieczny i skonfigurowany do użytku produkcyjnego. Jest to szczególnie ważne, jeśli w aplikacji implementujesz rozliczenia w aplikacji i weryfikujesz podpis na serwerze zdalnym.
Jeśli aplikacja pobiera treści z serwera zdalnego lub usługi działającej w czasie rzeczywistym (np. z kanału treści), upewnij się, że udostępniane treści są aktualne i gotowe do publikacji.
Testowanie aplikacji przed opublikowaniem
Testowanie wersji aplikacji przeznaczonej do publikacji pomaga upewnić się, że działa ona prawidłowo w realistycznych warunkach urządzenia i sieci. Najlepiej przetestować aplikację na co najmniej 1 urządzeniu wielkości telefonu i 1 urządzeniu wielkości tabletu, aby sprawdzić, czy elementy interfejsu użytkownika mają odpowiedni rozmiar oraz czy wydajność aplikacji i zużycie baterii są zadowalające. Laboratorium Firebase może być też przydatne do testowania na różnych urządzeniach i wersjach systemu Android.
Na początek zapoznaj się z artykułem Podstawowa jakość aplikacji. Gdy skończysz testowanie i będziesz mieć pewność, że wersja aplikacji działa prawidłowo, możesz udostępnić ją użytkownikom. Więcej informacji znajdziesz w artykule Udostępnianie aplikacji użytkownikom.