Aby przygotować aplikację do opublikowania, musisz skonfigurować, skompilować i przetestować jej wersję do publikacji. Zadania konfiguracyjne obejmują podstawowe zadania czyszczenia kodu i modyfikowania kodu, które pomagają zoptymalizować aplikację. Proces kompilacji jest podobny do procesu debugowania, który można wykonać za pomocą narzędzi pakietu SDK JDK i pakietu Android SDK.
Zadania testowe to ostateczne sprawdzenie, czy aplikacja działa zgodnie z oczekiwaniami w rzeczywistych warunkach. Laboratorium Firebase udostępnia duży zestaw fizycznych i wirtualnych urządzeń testowych, za pomocą których możesz ulepszać jakość swojej aplikacji.
Gdy skończysz przygotowywać aplikację do opublikowania, masz podpisany plik APK, który możesz rozpowszechnić bezpośrednio wśród użytkowników lub rozpowszechnić na platformie handlowej z aplikacjami, takiej jak Google Play.
Ten dokument zawiera podsumowanie głównych zadań, które musisz wykonać, aby przygotować aplikację do opublikowania. Zadania opisane na tej stronie dotyczą wszystkich aplikacji na Androida niezależnie od sposobu ich udostępniania czy rozpowszechniania wśród użytkowników. Jeśli publikujesz aplikację w Google Play, przeczytaj artykuł Niezawodne publikowanie.
Uwaga: zanim wykonasz czynności opisane na tej stronie, upewnij się, że aplikacja spełnia wszystkie kryteria wersji dotyczące funkcjonalności, wydajności i stabilności.
![Pokazuje, jak proces przygotowania jest wpisany w proces produkcyjny](https://developer.android.com/static/images/publishing/publishing_overview_prep.png?authuser=7&hl=pl)
Rysunek 1. Przygotowanie do publikacji to wymagane zadanie programistyczne i jest pierwszym etapem procesu publikowania.
Zadania, które należy przygotować do udostępnienia wersji
Aby udostępnić aplikację użytkownikom, musisz utworzyć pakiet gotowy do użycia, który użytkownicy mogą zainstalować i uruchomić na swoich urządzeniach z Androidem. Pakiet gotowy do publikacji zawiera te same komponenty co plik APK debugowania – skompilowany kod źródłowy, zasoby, plik manifestu itd. – i został utworzony przy użyciu tych samych narzędzi do kompilacji. Jednak w przeciwieństwie do pliku APK na potrzeby debugowania ten plik jest podpisany Twoim certyfikatem i zoptymalizowany przy użyciu narzędzia zipalign
.
![Pokazuje 5 zadań, które wykonujesz, aby przygotować aplikację do opublikowania](https://developer.android.com/static/images/publishing/publishing_preparing.png?authuser=7&hl=pl)
Rysunek 2. Przygotowanie aplikacji do publikacji odbywa się 5 głównych zadań.
Jeśli tworzysz aplikację w Android Studio, zadania podpisywania i optymalizacji zwykle są bezproblemowe. Możesz na przykład użyć Androida Studio z plikami kompilacji Gradle, aby jednocześnie kompilować, podpisywać i optymalizować aplikację. Pliki kompilacji Gradle możesz też skonfigurować w taki sam sposób podczas tworzenia z poziomu wiersza poleceń. Więcej informacji o używaniu plików kompilacji Gradle znajdziesz w artykule o konfigurowaniu kompilacji.
W celu przygotowania aplikacji do opublikowania należy zwykle wykonać 5 głównych zadań, jak pokazano na ilustracji 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 aplikacji do udostępnienia możesz dodać do pliku manifestu specjalne reguły filtrowania. Podobnie, aby spełnić wytyczne dotyczące publikowania w Google Play, konieczne może być przygotowanie zrzutów ekranu i utworzenie tekstu promocyjnego podczas gromadzenia materiałów do publikacji.
Czynności wymienione na rys. 2 wykonuje się zazwyczaj po dokładnym zdebugowaniu i przetestowaniu aplikacji. Pakiet SDK na Androida zawiera kilka narzędzi ułatwiających testowanie i debugowanie aplikacji na Androida. Więcej informacji znajdziesz w artykułach Debugowanie aplikacji i Testowanie aplikacji.
Gromadź materiały i zasoby
Aby przygotować aplikację do opublikowania, musisz przygotować kilka dodatkowych elementów. Obejmuje to przynajmniej klucze kryptograficzne do podpisywania aplikacji i ikonę aplikacji. Możesz też dołączyć umowę licencyjną z użytkownikiem.
Klucze kryptograficzne
Aby pliki APK zostały zainstalowane na urządzeniu lub zaktualizowane, muszą być podpisane cyfrowym certyfikatem. W przypadku Sklepu Google Play wszystkie aplikacje utworzone po sierpniu 2021 roku muszą używać podpisywania aplikacji przez Google Play. Jednak przesłanie pakietu aplikacji na Androida do Konsoli Play nadal wymaga podpisania go certyfikatem dewelopera. Starsze aplikacje nadal mogą się podpisywać samodzielnie, ale bez względu na to, czy korzystasz z podpisywania aplikacji przez Google Play, czy podpisujesz swoją aplikację samodzielnie, przed jej przesłaniem musisz ją podpisać.
Więcej informacji o wymaganiach związanych z certyfikatem znajdziesz w artykule 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.
Inne klucze wersji mogą być też wymagane, jeśli aplikacja uzyskuje dostęp do usługi lub korzysta z biblioteki innej firmy, która wymaga użycia klucza opartego na Twoim kluczu prywatnym.
Ikona aplikacji
Ikona aplikacji pomaga użytkownikom zidentyfikować ją na ekranie głównym urządzenia i w oknie Launchera. Można ją też znaleźć w sekcjach Zarządzaj aplikacjami, Pobrane elementy i w innych miejscach. Oprócz tego Twoja ikona jest wyświetlana użytkownikom w usługach wydawniczych, takich jak Google Play. Sprawdź, czy masz ikonę aplikacji i czy jest ona zgodna z zalecanymi wskazówkami dotyczącymi ikon.
Uwaga: jeśli publikujesz aplikację w Google Play, musisz utworzyć ikonę ikony w wysokiej rozdzielczości. Więcej informacji znajdziesz w artykule Dodawanie zasobów podglądu w celu zaprezentowania aplikacji.
Umowa licencyjna użytkownika
Rozważ przygotowanie licencji użytkownika na aplikację. Licencja użytkownika może pomóc chronić osobę, organizację oraz własność intelektualną. Zalecamy dodanie jej razem z aplikacją.
Różne materiały
Konieczne może być też przygotowanie materiałów promocyjnych i marketingowych. Jeśli np. publikujesz aplikację w Google Play, musisz przygotować tekst promocyjny i przygotować zrzuty ekranu aplikacji. Więcej informacji znajdziesz w artykule Dodawanie zasobów do podglądu w celu zaprezentowania swojej aplikacji.
Konfigurowanie wersji aplikacji
Po zebraniu wszystkich materiałów pomocniczych możesz rozpocząć konfigurowanie aplikacji do opublikowania. Ta sekcja zawiera podsumowanie zmian w konfiguracji, które zalecamy przed opublikowaniem aplikacji wprowadzić w kodzie źródłowym, plikach zasobów i pliku manifestu aplikacji.
Chociaż większość zmian konfiguracji wymienionych w tej sekcji jest opcjonalna, uważa się je za dobre praktyki związane z kodowaniem i zachęcamy do ich wdrożenia. W niektórych przypadkach mogły już zostać wprowadzone w ramach procesu programowania.
Wybierz odpowiedni identyfikator aplikacji
Wybierz identyfikator aplikacji, który jest odpowiedni przez cały okres istnienia aplikacji. Nie możesz go już zmienić po udostępnieniu aplikacji użytkownikom. Aby go skonfigurować, 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 o ustawianiu identyfikatora aplikacji.
Wyłączanie debugowania
Aby określić, czy plik APK można debugować, użyj flagidebuggable
(dla Groovy) lub isDebuggable
(skryptu Kotlin):
Kotlin
android { ... buildTypes { release { isDebuggable = false ... } debug { isDebuggable = true ... } } ... }
Odlotowy
android { ... buildTypes { release { debuggable false ... } debug { debuggable true ... } } ... }
Włącz i skonfiguruj zmniejszanie aplikacji
Wiele z tych optymalizacji można zautomatyzować, włączając zmniejszanie kompilacji wersji. Można na przykład dodać reguły ProGuard, aby usunąć instrukcje logu. Shrinker będzie identyfikować i usuwać nieużywany kod oraz zasoby. Shrinker może też zastąpić nazwy klas i zmiennych krótszymi nazwami, aby jeszcze bardziej zmniejszyć rozmiar DEX.
Wyłącz rejestrowanie
Zanim skompilujesz aplikację do opublikowania, wyłącz logowanie. Możesz wyłączyć logowanie, usuwając wywołania metod Log
w plikach źródłowych. Usuń też wszystkie pliki dziennika i statyczne pliki testowe utworzone w projekcie.
Usuń też wszystkie dodane do kodu wywołania śledzące Debug
, np. wywołania metody startMethodTracing()
i stopMethodTracing()
.
Ważne: wyłącz debugowanie aplikacji, jeśli używasz WebView
do wyświetlania płatnych treści lub używasz interfejsów JavaScript, ponieważ debugowanie umożliwia 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()
.
Oczyść katalogi projektów
Uporządkuj projekt i upewnij się, że jest on zgodny ze strukturą katalogów opisaną w omówieniu projektów. Pozostawienie w projekcie zbędnych lub osieroconych plików może uniemożliwić kompilowanie aplikacji i powodować jej nieprzewidywalne działanie. Wykonaj przynajmniej te czynności związane z czyszczeniem danych:
- Sprawdź zawartość katalogów
cpp/
,lib/
isrc/
. Katalogcpp/
powinien zawierać tylko pliki źródłowe powiązane z pakietem NDK dla Androida, takie jak pliki źródłowe C lub C++, pliki nagłówkowe lub pliki tworzenia. Kataloglib/
powinien zawierać tylko pliki bibliotek innych firm lub pliki bibliotek prywatnych, w tym gotowe biblioteki udostępnione 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 znajdują się prywatne lub zastrzeżone pliki danych, których nie używa Twoja aplikacja, i usuń je. Wyszukaj w projekcie
res/
na przykład stare pliki rysowalne, pliki układu i pliki wartości, których już nie używasz, i usuń je. - Sprawdź w katalogu
lib/
biblioteki testowe i usuń je, jeśli nie są już używane przez aplikację. - Przejrzyj zawartość katalogu
assets/
orazres/raw/
pod kątem nieprzetworzonych plików zasobów i plików statycznych, które musisz zaktualizować lub usunąć przed ich premierą.
Sprawdź i zaktualizuj ustawienia pliku manifestu i Gradle
Sprawdź, czy te elementy manifestu i plików kompilacji są prawidłowo ustawione:
<uses-permission>
elementOkreśl tylko te uprawnienia, które są istotne i wymagane w przypadku Twojej aplikacji.
- Atrybuty
android:icon
iandroid:label
Musisz podać wartości tych atrybutów, które znajdują się w elemencie
<application>
. versionCode
iversionName
usługZalecamy określenie wartości dla 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 Wersja 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.
Rozwiązywanie problemów ze zgodnością
Android zapewnia dostęp do różnych narzędzi i metod, dzięki którym Twoja aplikacja będzie zgodna z rozmaitymi urządzeniami. Aby udostępnić aplikację jak największej liczbie użytkowników, rozważ wykonanie tych czynności:
- Dodano obsługę konfiguracji wielu ekranów.
- Upewnij się, że stosujesz sprawdzone metody obsługi wielu urządzeń. Dzięki obsłudze wielu konfiguracji ekranu możesz stworzyć aplikację, która działa prawidłowo i wygląda dobrze na każdym ekranie w każdym rozmiarze obsługiwanym przez Androida.
- Zoptymalizuj aplikację pod kątem większych ekranów.
- Możesz zoptymalizować aplikację, aby dobrze współpracowała z urządzeniami z dużymi ekranami, takimi jak tablety czy urządzenia składane. Na przykład układy ze szczegółami listy mogą być łatwiejsze w obsłudze na większych ekranach.
- Rozważ użycie bibliotek Jetpack.
- Jetpack to pakiet bibliotek, które ułatwiają deweloperom stosowanie sprawdzonych metod, ograniczanie powtarzających się kodów oraz pisanie kodu, który działa spójnie na różnych urządzeniach i w różnych wersjach Androida.
Zaktualizuj adresy URL serwerów i usług
Jeśli aplikacja uzyskuje dostęp do zdalnych serwerów lub usług, upewnij się, że używasz produkcyjnego adresu URL lub ścieżki serwera bądź usługi, a nie testowego adresu URL lub ścieżki.
Wdrażanie licencjonowania w Google Play
Jeśli publikujesz płatną aplikację w Google Play, zastanów się nad dodaniem obsługi licencjonowania w Google Play. Licencjonowanie pozwala kontrolować dostęp do aplikacji na podstawie tego, czy kupił ją obecny użytkownik. Korzystanie z licencjonowania w Google Play jest opcjonalne, nawet jeśli udostępniasz aplikację w Google Play.
Więcej informacji o usłudze licencjonowania w Google Play i korzystaniu z niej w aplikacji znajdziesz w artykule Licencjonowanie aplikacji.
Tworzenie aplikacji do opublikowania
Po zakończeniu konfigurowania aplikacji możesz wbudować ją w plik APK, który jest gotowy do publikacji i jest podpisany oraz zoptymalizowany. JDK zawiera narzędzia do podpisywania pliku APK (Keytool i Jarsigner), natomiast pakiet SDK na Androida zawiera narzędzia do skompilowania i optymalizacji pliku APK. Jeśli używasz Androida Studio lub systemu kompilacji Gradle z poziomu wiersza poleceń, możesz zautomatyzować cały proces kompilacji. Więcej informacji o konfigurowaniu kompilacji Gradle znajdziesz w artykule o konfigurowaniu wariantów kompilacji.
Jeśli korzystasz z systemu ciągłej integracji, możesz skonfigurować zadanie w celu zautomatyzowania procesu publikacji. Nie ogranicza się to do tworzenia pakietu APK lub pakietu AAB wersji. Możesz też skonfigurować automatyczne przesyłanie artefaktów kompilacji do Konsoli Play.
Utwórz w Android Studio
Do utworzenia pliku APK gotowego do publikacji, który będzie podpisany Twoim kluczem prywatnym i zoptymalizowanym, możesz użyć systemu kompilacji Gradle zintegrowanego z Androidem Studio. Informacje o tym, jak konfigurować i uruchamiać kompilacje w Android Studio, znajdziesz w artykule Tworzenie i uruchamianie aplikacji.
W procesie kompilacji zakłada się, że masz certyfikat i klucz prywatny odpowiednie do podpisania aplikacji. Jeśli nie masz odpowiedniego certyfikatu i klucza prywatnego, Android Studio może pomóc Ci w jego wygenerowaniu. Więcej informacji o procesie podpisywania znajdziesz w artykule Podpisywanie aplikacji.
Przygotuj zewnętrzne serwery i zasoby
Jeśli aplikacja korzysta z serwera zdalnego, upewnij się, że jest on bezpieczny i skonfigurowany do użytku w środowisku produkcyjnym. Jest to szczególnie ważne, jeśli w swojej aplikacji wdrażasz rozliczenia w aplikacji i weryfikację podpisu wykonujesz na serwerze zdalnym.
Jeśli aplikacja pobiera treści z serwera zdalnego lub usługi w czasie rzeczywistym (np. z pliku danych), upewnij się, że przesyłane treści są aktualne i gotowe do wdrożenia.
Testowanie wersji aplikacji
Testowanie wersji produkcyjnej aplikacji pomaga się upewnić, że działa ona prawidłowo w realistycznych warunkach na urządzeniu i sieci. Najlepiej przetestować aplikację na co najmniej jednym urządzeniu mobilnym i na tablecie, aby sprawdzić, czy elementy interfejsu mają odpowiedni rozmiar, a wydajność aplikacji i wydajność baterii są akceptowalne. Laboratorium Firebase może też służyć do wykonywania testów na różnych urządzeniach i w różnych wersjach systemu operacyjnego Android.
Jako punkt wyjścia do testowania zapoznaj się z informacjami o podstawowej jakości aplikacji. Gdy zakończysz testy i uznasz, że wersja do publikacji działa prawidłowo, możesz udostępnić aplikację użytkownikom. Więcej informacji znajdziesz w artykule Udostępnianie aplikacji użytkownikom.