Wymagany docelowy poziom API w Google Play: na co celuje Twój pakiet?
Google Play egzekwuje twardy próg dla targetSdkVersion, a ten rośnie co roku. Poniżej progu Play Console blokuje wgranie wprost — to nie ocena recenzenta, to bramka. Ta strona podaje aktualny próg, harmonogram roczny oraz sposób na odczytanie, na co naprawdę celuje Twój .aab albo .apk, zanim dowiesz się tego w bolesny sposób.
Ostatnia weryfikacja: 24 lipca 2026.
Aktualny próg i harmonogram roczny
Reguła Google jest mechaniczna: aplikacja musi celować w poziom API nie starszy niż rok od ostatniego dużego wydania Androida. Duża wersja wychodzi każdej jesieni, więc mniej więcej 31 sierpnia każdego roku wymagany próg rośnie o jeden. Dotyczy to nowych aplikacji i każdej aktualizacji istniejącej aplikacji — nie wgrasz kompilacji celującej poniżej progu.
Istniejące aplikacje, których nie aktualizujesz, dostają dłuższy rozbieg, ale w końcu muszą spełnić wymóg, by pozostać dostępne na nowszych urządzeniach. Oto harmonogram w obecnym kształcie:
| Od | Nowe aplikacje i aktualizacje muszą celować w | Istniejące aplikacje muszą celować w |
|---|---|---|
| 31 sie 2024 | API 34 (Android 14) | API 34, by pozostać wykrywalnymi |
| 31 sie 2025 | API 35 (Android 15) | — |
| 31 sie 2026 | API 36 (Android 16) | API 35 (Android 15) lub wyżej |
targetSdkVersion a minSdkVersion i compileSdkVersion
Deweloperzy regularnie mylą te trzy wartości, a Play egzekwuje tylko jedną z nich. Ustawia się je niezależnie w build.gradle:
| Właściwość | Co określa | Reguła Play? |
|---|---|---|
targetSdkVersion | Poziom API, dla którego aplikacja deklaruje, że została zbudowana i przetestowana. Włącza zmiany zachowania tej wersji. To właśnie tę wartość Play kontroluje. | Tak — twardy próg. |
minSdkVersion | Najstarsza wersja Androida, na której aplikacja się zainstaluje. Niżej = więcej starych urządzeń i więcej starszych ścieżek kodu. | Nie. |
compileSdkVersion | Poziom API, wobec którego kompilowany jest kod: które API widzi kompilator. Zwykle równy docelowemu albo wyższy. | Nie, ale musi być ≥ docelowego, by skompilować. |
Możesz (i często tak robisz) trzymać niski minSdkVersion dla zasięgu, a jednocześnie celować w najnowszy poziom API, by zadowolić Play — te dwie rzeczy są niezależne. Podniesienie targetSdkVersion oznacza, że musisz obsłużyć zmiany zachowania nowej wersji; nie odbiera obsługi starych urządzeń (za to odpowiada minSdkVersion).
Dokładny komunikat błędu Play Console
Gdy .aab celuje poniżej progu, Play Console blokuje wydanie komunikatem w tej postaci:
Your app currently targets API level 34 and must target at least API level 35 to ensure it is built on the latest APIs optimized for security and performance. To upload an app bundle it must target API level 35 or higher.
To błąd blokujący wydanie, nie ostrzeżenie — pakiet nie zostanie wgrany. Dwie liczby w komunikacie to Twój obecny cel i wymagany próg; poprawka polega na podniesieniu targetSdkVersion do wymaganego poziomu w build.gradle i ponownej kompilacji.
Jak odczytać targetSdkVersion z .aab / .apk bez Android Studio
Nie potrzebujesz pełnej kompilacji w Android Studio, by sprawdzić, na co celuje pakiet. Wartość jest w manifeście — ale manifest w zbudowanym artefakcie jest zakodowany binarnie (AXML w APK, protobuf w AAB), więc `unzip` + `cat` nic nie da. Użyj narzędzi wiersza poleceń z SDK.
Dla pliku .apk
# aapt (albo aapt2) dekoduje binarny manifest aapt dump badging app.apk | grep -o "targetSdkVersion:'[0-9]*'" # -> targetSdkVersion:'35' # albo apkanalyzer (dostarczany z cmdline-tools Android SDK) apkanalyzer manifest target-sdk app.apk # -> 35
Dla pliku .aab (App Bundle)
# bundletool czyta manifest protobuf przez XPath java -jar bundletool.jar dump manifest --bundle=app.aab \ --xpath=/manifest/uses-sdk/@android:targetSdkVersion # -> 35
aapt, aapt2 i apkanalyzer znajdują się w build-tools / cmdline-tools Android SDK; bundletool to samodzielny plik jar od Google. Żadne z nich nie kompiluje ani nie uruchamia aplikacji — tylko dekodują manifest, więc sprawdzenie zajmuje sekundę na dowolnej maszynie z JDK.
Ścieżka jednorazowego przedłużenia
Jeśli naprawdę nie zdążysz na 31 sierpnia, Google oferuje jednorazowe przedłużenie, o które wnioskujesz w Play Console — przesuwa Twój termin na 1 listopada tego samego roku. Jest pomyślane dla realnych blokad technicznych, nie dla zwykłych opóźnień:
- Wnioskujesz o nie osobno dla każdej aplikacji w Play Console przed upływem terminu — pojawia się dedykowana ścieżka, gdy aplikacja zostanie oznaczona jako niezgodna.
- Daje około dwóch dodatkowych miesięcy (do 1 listopada), a nie kolejny rok.
- Służy utrzymaniu dostępności istniejącej aplikacji; w międzyczasie nie pozwala publikować aktualizacji celujących poniżej progu.
- Jest przeznaczone dla uzasadnionych przypadków (zależność jeszcze niezgodna, duża migracja). Google może odrzucić wnioski, które wyglądają na unik.
Przedłużenie to odroczenie, nie rozwiązanie — jedyną trwałą odpowiedzią jest podniesienie targetSdkVersion i obsłużenie zmian zachowania nowej wersji.
Najczęstsze pytania
Jakiego docelowego poziomu API wymaga teraz Google Play?
W oknie 2025-2026 nowe aplikacje i aktualizacje muszą celować w co najmniej poziom API 35 (Android 15). Od 31 sierpnia 2026 próg dla nowych aplikacji i aktualizacji rośnie do API 36 (Android 16), a istniejące aplikacje muszą celować w co najmniej API 35, by pozostać dostępne na nowszych urządzeniach.
Czy podniesienie targetSdkVersion odcina stare telefony?
Nie. Obsługę starych urządzeń określa minSdkVersion, które jest niezależne. Możesz trzymać niski minSdkVersion i mimo to podnieść targetSdkVersion, by spełnić wymóg Play. Podniesienie celu oznacza jednak konieczność obsłużenia zmian zachowania nowej wersji Androida.
Play Console mówi, że mój cel jest za niski, a Android Studio pokazuje właściwą liczbę. Dlaczego?
Sprawdź wartość w faktycznie zbudowanym artefakcie, nie tylko w źródłach. Wariant produktu, nadpisanie manifestu albo stara kompilacja mogą wysłać niższy targetSdkVersion, niż sugeruje build.gradle. Odczytaj go bezpośrednio z .aab/.apk za pomocą bundletool albo aapt, by zobaczyć, co naprawdę wgrałeś.
Czy mogę dostać więcej czasu po 31 sierpnia?
Tak — Play Console oferuje jednorazowe przedłużenie do 1 listopada tego samego roku dla aplikacji, które nie zdążą na termin. Jest dla uzasadnionych blokad technicznych i utrzymuje jedynie dostępność istniejącej aplikacji; nie pozwala publikować aktualizacji poniżej progu.
Czy wymóg docelowego poziomu API to to samo co odrzucenie w weryfikacji?
Nie. To automatyczna bramka przy wgrywaniu w Play Console, działająca przed jakąkolwiek weryfikacją. Żaden recenzent nie bierze w tym udziału — pakiet po prostu się nie wgra, dopóki targetSdkVersion nie osiągnie progu.
Zobacz też: Dlaczego Google Play odrzuca aplikacje · Lista kontrolna wysyłki aplikacji na Androida
Źródła
Sprawdź swoją kompilację przed przesłaniem
Przepuść plik .ipa lub .apk przez App Review Checker i wychwyć te problemy w kilka sekund.
Sprawdź aplikację