Przejdź do treści

Poradnik naprawy odrzuconej aplikacji 2026

Aplikacja TWA odrzucona w Google Play? Przejdź na WebView

Jeśli aplikacja Trusted Web Activity nie przechodzi testu zamkniętego z komunikatem "testers were not engaged", najpewniejszym rozwiązaniem jest przebudowa do standardowej aplikacji WebView i opublikowanie tej kompilacji. Dowiedz się, dlaczego opakowania TWA i PWA bywają odrzucane oraz jak przejść na WebView bez resetowania licznika 14 dni.

TWA Częściej odrzucana
WebView Pewniejsze rozwiązanie
14 dni Licznik nie resetuje się
99,9% Skuteczność PTL
Testers were not engaged
Odrzucona Wrapper TWA / PWA Działa w środowisku Chrome
Powłoka Twojej aplikacji Chrome Custom Tab Treść internetowa

Słaby odczyt zaangażowania → odrzucenie

Zatwierdzona Standardowy WebView Działa w procesie Twojej aplikacji
Powłoka Twojej aplikacji WebView (in-process) Treść internetowa

Aktywność jest rejestrowana → zatwierdzenie

Szybka odpowiedź

Jeśli aplikacja TWA nadal nie przechodzi testu zamkniętego (closed testing) z komunikatem "testers were not engaged", z naszego doświadczenia wynika, że najpewniejszym rozwiązaniem jest przebudowa do standardowej aplikacji WebView, w Android Studio, Capacitor lub Cordova, i opublikowanie właśnie tej kompilacji jako wersji produkcyjnej. Zachowaj ten sam package name i prześlij kompilację jako aktualizację, aby licznik 14 dni nie został zresetowany. WebView rozwiązuje problem z sygnałami zaangażowania, ale nie zwalnia z weryfikacji thin wrapper. Aplikacja musi oferować rzeczywistą wartość. Jeśli przeszkodą jest znalezienie 12 testerów aktywnych nieprzerwanie przez 14 dni, w tym pomaga PrimeTestLab: od $19.99, plus 5% opłaty serwisowej, a test zwykle rusza w 4-6 godzin.

To jedno z najbardziej frustrujących odrzuceń dla niezależnego dewelopera. Testerzy naprawdę korzystają z aplikacji, wymagane 12 osób uczestniczy w teście, mija 14 dni, a Google odpowiada: "your testers were not engaged enough." W przypadku aplikacji zbudowanej jako Trusted Web Activity (TWA) lub opakowanie PWA ten schemat jest realny. Wśród 7 400+ aplikacji objętych naszą pomocą kompilacje opakowujące treść internetową otrzymują ten komunikat znacznie częściej niż standardowe kompilacje natywne lub WebView. Ten poradnik wyjaśnia przyczynę, pokazuje istotną różnicę architektury i opisuje przejście na WebView bez utraty dni już zaliczonych w teście.

Dlaczego aplikacje TWA bywają odrzucane w teście zamkniętym?

Trusted Web Activity wyświetla witrynę przez Chrome Custom Tabs, zamiast renderować ekrany wewnątrz Twojej aplikacji. To szybki sposób na zmianę witryny lub PWA w instalowalną aplikację i w wielu opublikowanych aplikacjach działa prawidłowo. Problem pojawia się wtedy, gdy osobiste konto dewelopera musi spełnić obowiązkowe wymaganie 14-dniowego testu zamkniętego przed uzyskaniem dostępu do wersji produkcyjnej.

Z naszego doświadczenia z 7 400+ aplikacji wynika, że kompilacje TWA i opakowania PWA znacznie częściej otrzymują odrzucenie "testers were not engaged" niż standardowe aplikacje natywne, nawet gdy testerzy rzeczywiście korzystają z nich codziennie. Ten schemat jest na tyle wyraźny, że zalecamy odejście od TWA, jeśli aplikacja musi jeszcze przejść 14-dniowy test zamknięty.

Ustalenie 01

Słabe sygnały zaangażowania

Aktywność odczytywana podczas weryfikacji Google wydaje się słabsza, gdy treść działa w środowisku Chrome zamiast w procesie Twojej aplikacji. Rzeczywiste korzystanie z aplikacji może wyglądać jak niska aktywność.

Ustalenie 02

Odrzucenie "testers not engaged"

To najczęstszy komunikat obserwowany przy kompilacjach TWA. Testerzy dołączają do testu, instalują aplikację i używają jej codziennie, a mimo to weryfikacja dostępu do wersji produkcyjnej uznaje zaangażowanie za niewystarczające.

Ustalenie 03

Mało aktywnych użytkowników w Play Console

Niektórzy deweloperzy zgłaszają też zaskakująco niską liczbę aktywnych użytkowników kompilacji TWA w Panelu, co pasuje do sposobu działania treści w środowisku Chrome.

Ustalenie 04

Ponowne odrzucenie po kolejnym przesłaniu

Ponieważ źródłem problemu jest architektura, ponowne przesłanie tej samej kompilacji TWA zwykle kończy się identycznie. Drobne poprawki rzadko pomagają, natomiast przebudowa usuwa przyczynę.

Ważne zastrzeżenie

Ważne zastrzeżenie: Google nie ujawnia dokładnie, które sygnały ocenia na etapie weryfikacji dostępu do wersji produkcyjnej. Opisany mechanizm jest więc naszą obserwacją, a nie oficjalną zasadą. Zachowaj ostrożność wobec wpisów na forach, które rzekomo znają dokładną telemetrię. Możemy natomiast rzetelnie opisać powtarzający się wynik: kompilacje TWA są odrzucane za zaangażowanie, a porównywalne kompilacje WebView uzyskują zatwierdzenie.

Czym naprawdę jest TWA i jak powstaje

Przed naprawą przyczyny odrzucenia warto dokładnie zrozumieć opublikowaną architekturę. Trusted Web Activity to aplikacja na Androida, która w istocie jest Twoją witryną działającą na pełnym ekranie w prawdziwym silniku przeglądarki. Nie ma paska adresu ani interfejsu sugerującego, że użytkownik ogląda stronę internetową. Wygląda i zachowuje się jak aplikacja natywna, lecz pod spodem działa Twoja witryna.

TWA zwykle powstaje za pomocą Google Bubblewrap CLI albo PWABuilder. Oba narzędzia korzystają z biblioteki Google androidbrowserhelper. Podajesz adres URL, narzędzie generuje projekt Android, a następnie podpisujesz go i przesyłasz AAB do Google Play.

Dlaczego deweloperzy wybierają TWA

Jedna baza kodu

Masz już witrynę, najlepiej PWA. TWA przenosi ją do Play Store bez przepisywania aplikacji w Kotlin, Flutter ani React Native.

Natychmiastowe aktualizacje

Aplikacja ładuje działającą witrynę, więc zmiany publikujesz przez wdrożenie strony. Nie potrzeba aktualizacji aplikacji ani oczekiwania na weryfikację.

Tanio i szybko

Wygenerowanie TWA zajmuje minuty, nie tygodnie. Dla istniejącej PWA to droga na Androida wymagająca najmniej pracy.

Kompromis, który prowadzi do odrzucenia

To, co sprawia, że TWA jest tania, zwiększa ryzyko podczas testu zamkniętego:

  • Wymaga internetu. Jest oknem na Twoją witrynę, więc słabe połączenie oznacza słabe działanie aplikacji, chyba że PWA zapewnia solidną obsługę offline.
  • Ryzyko odrzucenia w Play Store. Zasady dotyczące minimalnej funkcjonalności i przepakowanych treści obejmują aplikacje będące tylko witryną w opakowaniu. TWA bez rzeczywistych funkcji natywnych może zostać odrzucona lub usunięta, zwłaszcza przy nowym zgłoszeniu. Dodaj funkcje natywne, takie jak push notifications, tryb offline, aparat lub share targets, aby aplikacja oferowała samodzielną wartość.
  • Problem z sygnałami zaangażowania opisany wyżej. To dlatego konta osobiste objęte 14-dniowym testem zamkniętym nadal otrzymują komunikat "testers not engaged".

Nieporozumienie: TWA NIE jest WebView

W tej kwestii wiele artykułów wprowadza zamieszanie, a precyzja ma znaczenie dla sposobu naprawy. TWA w ogóle nie korzysta z komponentu Android WebView.

Mit

"TWA to tylko opakowanie WebView"

Android WebView to uproszczona, osadzana przeglądarka kontrolowana przez aplikację. Jest starsza, ma mniej funkcji i słabszą izolację zabezpieczeń. TWA z niej nie korzysta.

Fakty

TWA korzysta z silnika Custom Tabs

Przekazuje adres URL do pełnej zainstalowanej przeglądarki użytkownika, zwykle Chrome, i prosi o wyświetlenie strony na pełnym ekranie bez interfejsu. To prawdziwy silnik przeglądarki, nie komponent osadzony.

Ponieważ TWA korzysta z silnika Custom Tabs, otrzymujesz ten sam silnik renderowania, JavaScript i piaskownicę zabezpieczeń co Chrome, a także wspólne pliki cookie i pamięć. Użytkownik zalogowany w witrynie pozostaje zalogowany, przeglądarka aktualizuje się automatycznie, a aplikacja obsługuje pełną platformę internetową. To duża zaleta zwykłej opublikowanej aplikacji, lecz ekrany działają wtedy poza procesem aplikacji, wewnątrz Chrome. Stąd bierze się zarówno osłabienie sygnałów zaangażowania, jak i niska liczba aktywnych użytkowników.

Uruchamianie krok po kroku

1
Użytkownik dotyka ikony aplikacji

Android uruchamia LauncherActivity TWA z androidbrowserhelper.

2
Ta activity prosi Chrome o otwarcie adresu URL

Strona otwiera się w pełnoekranowym Custom Tab bez interfejsu przeglądarki. Nie ma paska adresu, kart ani elementów sterujących przeglądarki.

3
Przed ukryciem paska Chrome przeprowadza weryfikację zaufania

To właśnie oznacza "Trusted" w Trusted Web Activity. Jeśli aplikacja nie potrafi wykazać powiązania z witryną, pasek adresu pozostaje widoczny i znika wrażenie aplikacji natywnej.

Weryfikacja zaufania: Digital Asset Links

Chrome usuwa pasek adresu tylko wtedy, gdy aplikacja potwierdzi powiązanie z witryną za pomocą Digital Asset Links. Aplikacja deklaruje reprezentowaną witrynę, a witryna musi udostępniać plik /.well-known/assetlinks.json zawierający package aplikacji i odcisk certyfikatu podpisującego SHA-256.

https://yoursite.com/.well-known/assetlinks.json JSON
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourapp.name",
    "sha256_cert_fingerprints": [
      "AB:CD:EF:...:99"  // your signing cert SHA-256
    ]
  }
}]
Jak przebiega weryfikacja

Aplikacja deklaruje witrynę

Manifest wskazuje domenę https reprezentowaną przez aplikację.

Witryna udostępnia assetlinks.json

Plik zawiera package name i odcisk SHA-256.

Chrome porównuje obie strony

Odcisk musi pasować do certyfikatu podpisującego aplikację.

Zgodność Aplikacja działa na pełnym ekranie jak natywna. Pasek adresu jest ukryty.
Brak / 404 / nieprawidłowy odcisk Aplikacja nadal się otwiera, ale Chrome pokazuje pasek adresu. To najczęstszy błąd TWA.
Najczęstszy błąd TWA

Jeśli testerzy widzą pasek adresu przeglądarki u góry aplikacji, pliku assetlinks.json brakuje, zwraca błąd 404 albo zawiera nieprawidłowy odcisk SHA-256. Napraw plik i upewnij się, że odcisk pasuje do klucza rzeczywiście używanego przez Google Play w Play App Signing. Przywróci to tylko widok pełnoekranowy. Nie naprawi odrzucenia z powodu sygnałów zaangażowania, które wymaga przebudowy do WebView.

Droga sygnałów zaangażowania: TWA a WebView

Najprościej zrozumieć odrzucenie, śledząc miejsce, do którego trafia aktywność testera. W TWA ekrany działają o jedną warstwę dalej od aplikacji, w Chrome Custom Tabs. W aplikacji WebView te same ekrany działają w procesie Twojej aplikacji i są bezpośrednio przypisywane do Twojego package. Ta różnica wpływa na siłę rejestrowanej aktywności.

Gdzie przypisywana jest aktywność testera

TWA
Tester dotyka aplikacji Twój package Chrome Custom Tab Treść internetowa
Słaby
WebView
Tester dotyka aplikacji Twój package WebView (in-process) Treść internetowa
Silny
Najważniejszy wniosek

WebView ładuje adres URL witryny wewnątrz Twojej aplikacji, więc aktywność jest przypisywana do package zgodnie z oczekiwaniami weryfikacji Google. W TWA pośredni Custom Tab stanowi dodatkowy etap, który prawdopodobnie osłabia sygnał. Niskie wartości w Twojej analityce internetowej, Google Analytics lub Firebase w warstwie webowej, nie muszą oznaczać, że Google nie widzi żadnego użycia. Praktyczny wniosek dla testu zamkniętego pozostaje jednak taki sam: przebudowa do WebView jest pewniejszym rozwiązaniem.

Jak rozpoznać TWA z zewnątrz i od środka

Nie masz pewności, czy opublikowana aplikacja, także przygotowana przez wykonawcę, rzeczywiście jest TWA? Najpierw sprawdź ją wzrokowo, a potem potwierdź wynik w APK lub na podłączonym urządzeniu.

Szybkie oznaki widoczne dla użytkownika

  • Zachowuje się dokładnie jak witryna, ponieważ nią jest.
  • Przy błędnej konfiguracji u góry widać pasek adresu przeglądarki. To jednoznaczna oznaka opisanego wyżej błędu assetlinks.
  • Treść aktualizuje się bez aktualizacji aplikacji w Play Store.

Jednoznaczne oznaki techniczne w APK lub urządzeniu

Znacznik Znaczenie
Un DelegationService que declara la acción TRUSTED_WEB_ACTIVITY_SERVICE Najpewniejszy ślad. Tylko TWA zawiera taką deklarację.
LauncherActivity (a menudo ManageDataLauncherActivity) de com.google.androidbrowserhelper Launcher Bubblewrap.
Zweryfikowana domena https w konfiguracji linków aplikacji (assetlinks.json funcionando) Witryna opakowana przez TWA.
Brak libflutter.so i index.android.bundle, mało kodu natywnego To opakowanie treści internetowej, a nie kompilacja Flutter, React Native ani natywna.

Potwierdź za pomocą adb

Na podłączonym urządzeniu lub emulatorze wystarczą dwa polecenia:

terminal bash
# Is it a TWA? Look for the delegation service:
adb shell dumpsys package <package.name> | grep -i DelegationService

# Which site does it wrap, and is the trust check passing?
adb shell pm get-app-links <package.name>
#   -> "verified"  = Digital Asset Links pass (fullscreen)
#   -> "1024"      = verification failed (address bar shows)
Jak odczytać wynik

Cómo leer el resultado: si ves un DelegationService y un LauncherActivity de androidbrowserhelper, casi seguro estás mirando un TWA. Si en cambio ves un MainActivity propio, librerías nativas .so y ningún servicio de delegación, es una app nativa de verdad (o Flutter / React Native), y el problema de señales de engagement de esta guía no aplica.

TWA a WebView w teście zamkniętym: porównanie

Obie architektury opakowują treść internetową. Dla przejścia 14-dniowego testu zamkniętego liczy się miejsce działania treści i sposób przypisywania aktywności. Poniższe kryteria wpływają na możliwość uzyskania dostępu do wersji produkcyjnej w jednym cyklu.

Najważniejsze kryterium
TWA / wrapper PWA
WebView estándar
Miejsce renderowania ekranów
Chrome Custom Tabs
W procesie Twojej aplikacji
Siła sygnału zaangażowania
Słaba
Silna
Ryzyko "testers not engaged"
Wysokie według naszych danych
Niskie
Aktywni użytkownicy w Play Console
Często zaniża dane
Raportuje wiarygodnie
Sterowanie natywne, Wstecz i offline
Ograniczone
Pełna kontrola
Działanie analityki w aplikacji
Niestabilne lub zaniżone
Standardowe
Weryfikacja thin wrapper
Nadal obowiązuje
Nadal obowiązuje
Pewność w 14-dniowym teście
Niestabilna
Pewna
Wyższe ryzyko odrzucenia

TWA / wrapper PWA

Najlepsze dla zatwierdzonych aplikacji, które nie muszą przechodzić testu zamkniętego.

Szybka konfiguracja z istniejącej PWA
Pełny ekran bez paska adresu
Aktywność działa o warstwę dalej, w Chrome
Wyższa częstość odrzucenia "testers not engaged"
Może zaniżać liczbę aktywnych użytkowników w Play Console
Zalecane do testu zamkniętego

WebView estándar

Najlepsze dla aplikacji, które muszą przejść 14-dniowy test zamknięty z udziałem 12 testerów.

Ekrany działają w procesie Twojej aplikacji
Aktywność jest przypisywana bezpośrednio do package
Pełna kontrola natywna: Wstecz, offline i błędy
Standardowe działanie analityki
Nadal wymaga rzeczywistej wartości podczas weryfikacji thin wrapper
Interaktywny moduł

Kontrola zgodności frameworka

WebView działa inaczej niż Chrome na komputerze. Wybierz swój stos, aby zobaczyć ustawienie, które najczęściej psuje aplikację po uruchomieniu.

Wybierz framework powyżej, aby zobaczyć konkretne ustawienia optymalizacji WebView.

Włącz DOM Storage

SPA / routing po stronie klienta

Aplikacje single-page korzystają z localStorage i sessionStorage do routingu po stronie klienta oraz stanu uwierzytelnienia. Bez settings.domStorageEnabled = true routing psuje się po uruchomieniu. Testerzy widzą pusty ekran albo zablokowany loader, co może zostać odczytane jako "not engaged".

Zachowaj też javaScriptEnabled = true i obsługuj nawigację wewnątrz aplikacji przez WebViewClient, aby deep links nie przechodziły do Chrome.

Zadeklaruj uprawnienia natywne do osadzania i przesyłania

Kreator no-code

WebView obsługuje osadzone iframe inaczej niż Chrome na komputerze, a kreatory no-code często na nich polegają. Zadeklaruj natywne uprawnienia do przesyłania plików w AndroidManifest.xml i podłącz WebChromeClient.onShowFileChooser. Bez tego formularze i wysyłanie multimediów mogą przestać działać bez komunikatu.

Dodaj <uses-permission android:name="android.permission.INTERNET"/>, a jeśli aplikacja przyjmuje multimedia, także uprawnienia aparatu i pamięci. Następnie poproś o nie w runtime.

Dodaj pamięć offline i rzeczywistą wartość natywną

Statyczna witryna / CMS

Zwykła statyczna witryna załadowana w WebView to podręcznikowy "thin wrapper". Ustaw cacheMode = LOAD_DEFAULT, aby zapewnić użyteczny tryb awaryjny offline, dodaj ekran błędu i ponowienia z identyfikacją marki oraz co najmniej jedną funkcję natywną, na przykład push notifications, share target lub skróty na ekranie głównym.

Dzięki temu eksport z CMS lub statyczna witryna przestaje być stroną w ramce i staje się aplikacją, która może przejść weryfikację minimalnej funkcjonalności.

Rozwiązanie: zbuduj standardową aplikację WebView

Zamiast poprawiać TWA lub próbować wymuszać lepsze sygnały, przebuduj aplikację wokół komponentu WebView i opublikuj tę kompilację. Dostępne są trzy popularne drogi. Każda ładuje witrynę wewnątrz Twojej aplikacji:

1
Natywny WebView w Android Studio

Najbardziej bezpośrednia droga. Umieść WebView w main activity, wskaż adres URL oraz włącz JavaScript i DOM storage. Otrzymujesz pełną kontrolę bez dodatkowego frameworka.

2
Capacitor

Jeśli aplikacja jest już projektem webowym lub PWA, Capacitor umieszcza ją w natywnej powłoce WebView i udostępnia natywne wtyczki, takie jak aparat, push i storage. To proste przejście z PWA bez problemu sygnałów TWA.

3
Cordova

Starsza, ale nadal użyteczna opcja. Zasada pozostaje ta sama: treść internetowa działa wewnątrz WebView aplikacji, a nie w Chrome Custom Tabs.

Minimalna konfiguracja WebView gotowa do skopiowania

Podstawa jest niewielka: WebView ładuje adres URL z włączonym JavaScript i storage, utrzymuje nawigację wewnątrz aplikacji zamiast przechodzić do Chrome oraz obsługuje przycisk Wstecz w sposób oczekiwany podczas weryfikacji Google. Wybierz język i skopiuj bazę:

val webView = findViewById<WebView>(R.id.webview)
webView.settings.apply {
    javaScriptEnabled = true          // most sites need this
    domStorageEnabled = true          // localStorage / sessionStorage
    cacheMode = WebSettings.LOAD_DEFAULT
}

// Keep links INSIDE the app (this is the key difference vs a TWA)
webView.webViewClient = WebViewClient()
webView.loadUrl("https://yourwebsite.com")

// The exact back-button handler Google looks for
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
    override fun handleOnBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack()
        } else {
            finish()
        }
    }
})
WebView webView = findViewById(R.id.webview);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);      // most sites need this
settings.setDomStorageEnabled(true);      // localStorage / sessionStorage
settings.setCacheMode(WebSettings.LOAD_DEFAULT);

// Keep links INSIDE the app (this is the key difference vs a TWA)
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://yourwebsite.com");

// The exact back-button handler Google looks for
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
    @Override
    public void handleOnBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            finish();
        }
    }
});
# Wrap an existing web/PWA project in a native WebView shell
npm install @capacitor/core @capacitor/cli
npx cap init "YourApp" "com.yourapp.name"

# Point Capacitor at your live site (capacitor.config.ts)
#   server: { url: "https://yourwebsite.com", cleartext: false }

npm install @capacitor/android
npx cap add android
npx cap sync

# Capacitor handles back-button + DOM storage natively.
# Open in Android Studio to build a signed AAB:
npx cap open android

Trzy elementy potrzebne do przejścia weryfikacji

Prosty WebView wywołujący wyłącznie loadUrl() nadal jest thin wrapper. Poniższe trzy elementy zmieniają go w pełnoprawną aplikację i chronią testerów przed pustymi ekranami:

1
Obsłuż przycisk Wstecz systemu Android

Podłącz OnBackPressedCallback pokazany w gotowym fragmencie powyżej, aby przycisk Wstecz najpierw przechodził przez historię stron i zamykał aplikację dopiero po jej wyczerpaniu. Bez tej obsługi jedno dotknięcie zamyka całą aplikację, co wygląda jak błąd i natychmiast wskazuje na thin wrapper.

2
Obsłuż stany offline i błędy

Zaimplementuj onReceivedError w WebViewClient, aby zamiast pustej strony pokazywać dopracowany ekran braku połączenia z przyciskiem ponowienia. Pusty ekran po utracie internetu szybko zdradza thin wrapper i zwiększa ryzyko negatywnej weryfikacji.

3
Dodaj rzeczywistą wartość natywną

Dodaj push notifications z FCM, pamięć offline, share target, przesyłanie plików przez WebChromeClient.onShowFileChooser albo integrację z urządzeniem. Aplikacja musi oferować wyraźnie więcej niż sam ładowany adres URL. Tego wymagają zasady minimalnej funkcjonalności.

Masz już PWA? Użyj Capacitor

Jeśli nie chcesz pisać kodu Android ręcznie, Capacitor umieszcza istniejący projekt webowy w natywnej powłoce WebView i od razu zapewnia obsługę przycisku Wstecz, natywny splash oraz system wtyczek, między innymi push, aparat i filesystem. To najprostsza droga z PWA do WebView, która całkowicie omija zachowanie Custom Tabs w TWA. Zyskujesz przypisywanie aktywności w procesie WebView oraz łatwe funkcje natywne.

Najważniejsza zasada

Opublikuj testowaną aplikację. Zbuduj aplikację WebView, przeprowadź ją przez test zamknięty i opublikuj tę samą kompilację jako wersję produkcyjną. Nie testuj jednej architektury z zamiarem późniejszej zamiany na inną aplikację. Przesłanie kompilacji tylko w celu przejścia weryfikacji, a następnie zastąpienie jej w wersji produkcyjnej narusza zasady Google dotyczące działań wprowadzających w błąd i może doprowadzić do zawieszenia aplikacji lub konta. Stałe przejście na WebView usuwa to ryzyko, ponieważ publikujesz dokładnie to, co podlega testom.

Jak przejść na WebView bez resetowania licznika 14 dni

Jeśli test już trwa, nie musisz zaczynać od nowa. Aktualizacja aplikacji nie resetuje licznika 14 dni, o ile pozostajesz na tej samej ścieżce testów i zachowujesz ten sam package name. Bezpieczna migracja wygląda tak:

1
Zbuduj aplikację WebView z tym samym package name

Zachowaj dokładnie ten sam applicationId co w obecnej TWA. Inny package name tworzy nową kartę aplikacji i wymusza nowy cykl 14 dni.

Wskazówka: ustaw versionCode co najmniej o 1 wyżej niż w kompilacji TWA. W przeciwnym razie Play Console odrzuci przesłany plik jako zduplikowaną wersję.
2
Nadaj jej zachowanie pełnoprawnej aplikacji

Zapewnij niezawodne ładowanie, prawidłową obsługę przycisku Wstecz, dopracowane stany offline i błędów oraz brak pustych ekranów. Ma to również znaczenie podczas weryfikacji thin wrapper opisanej w następnej sekcji.

3
Prześlij jako aktualizację na obecną ścieżkę testów zamkniętych

Otwórz ścieżkę testów zamkniętych, utwórz nową wersję i prześlij AAB WebView. Nie twórz nowej ścieżki ani nowej aplikacji.

4
Pozwól testerom zaktualizować aplikację i kontynuować

Testerzy uczestniczący w teście po prostu aktualizują aplikację do wersji WebView i kontynuują. Licznik nadal działa, o ile co najmniej 12 testerów pozostaje aktywnych.

Licznik nadal działa

Przesłanie aktualizacji na ścieżkę testów zamkniętych nie resetuje licznika 14 dni. Licznik działa dalej, a Google traktuje aktywne poprawianie aplikacji podczas testu jako normalną część procesu. Dzięki temu można przejść z TWA na WebView w trakcie cyklu bez utraty już zaliczonych dni.

Czy aplikacja WebView nadal jest uznawana za thin wrapper?

To pułapka dla deweloperów, którzy uznają WebView za automatyczne rozwiązanie. Przejście z TWA na WebView usuwa problem sygnałów zaangażowania, ale nie zwalnia z zasad Google dotyczących spamu i minimalnej funkcjonalności. WebView wyświetlający tylko stronę główną w ramce nadal może zostać odrzucony jako thin wrapper, czyli cienkie opakowanie witryny bez rzeczywistej wartości natywnej, podobnie jak prosta TWA.

Potraktuj to jako dwie osobne bramki. Usługa testowa lub przebudowa do WebView może pomóc przejść jedną z nich, ale nie zastąpi drugiej.

Bramka 1

Wymaganie testu zamkniętego

Jeśli masz nowo utworzone osobiste konto dewelopera, musisz przeprowadzić testy zamknięte aplikacji z udziałem co najmniej 12 testerów, którzy nieprzerwanie uczestniczyli w programie testowania co najmniej przez ostatnie 14 dni. WebView pomaga wiarygodnie rejestrować zaangażowanie, a PrimeTestLab zapewnia testerów.

Liczba + czas
Bramka 2

Minimalna funkcjonalność (thin wrapper)

Ocena zasad i jakości: czy aplikacja oferuje rzeczywistą wartość, czy jest tylko witryną w ramce? Tę bramkę przechodzi wyłącznie pełnoprawna aplikacja. Nie zastąpi jej żadna usługa ani sama zmiana architektury.

Zasady + jakość

Celem nie jest więc sam WebView zamiast TWA, lecz aplikacja WebView z wystarczającą rzeczywistą wartością i natywnym zachowaniem. W praktyce oznacza to:

A
Prawidłowo obsłuż przycisk Wstecz

Przycisk Wstecz powinien przechodzić przez historię stron, a następnie bezpiecznie zamykać aplikację. Tester nie może trafić na pusty ekran ani nagłe zamknięcie.

B
Obsłuż stany offline i błędy

Pokaż dopracowany ekran braku połączenia i możliwość ponowienia. Biały ekran po utracie internetu szybko zdradza thin wrapper.

C
Dodaj rzeczywistą wartość natywną

Dodaj push notifications, funkcje ekranu głównego, integrację z urządzeniem lub pamięć offline. Aplikacja musi oferować wyraźnie więcej niż sam ładowany adres URL.

Zasada bez podmiany aplikacji

Nie testuj pełnoprawnej aplikacji z zamiarem późniejszego zastąpienia jej zasadniczo inną lub uboższą wersją produkcyjną. To działanie wprowadzające w błąd, za które Google zawiesza konta.

Wybierz architekturę WebView, zbuduj pełnoprawną aplikację, przetestuj tę kompilację i opublikuj dokładnie ją. Zachowaj ją w testach i wersji produkcyjnej.

Potrzebujesz dokładniejszej listy przyczyn odrzucenia jakościowego? Nasz poradnik o przyczynach odrzucenia testu zamkniętego opisuje najczęstsze problemy z zasadami i weryfikacją, niezależne od zaangażowania.

Nie wiesz, czy aplikacja jest TWA? Sprawdzimy to przy zamówieniu

Nie musisz uruchamiać poleceń adb ani zaglądać do APK. PrimeTestLab może potwierdzić, czy Twoja aplikacja jest TWA. Po zamówieniu usługi testowej nasz zespół sprawdza kompilację, rozpoznaje TWA lub opakowanie PWA i w razie potrzeby wskazuje konkretne poprawki przed zmarnowaniem 14-dniowego cyklu na architekturę obarczoną problemem zaangażowania.

200+ Sprawdzonych aplikacji TWA

Tylko w ostatnich miesiącach sprawdziliśmy i skonsultowaliśmy ponad 200 aplikacji TWA. Po zastosowaniu naszych rekomendacji i poprawek aplikacje te mogły niezawodnie kontynuować cykl testowy. Po wykryciu TWA otrzymujesz jasny, praktyczny plan przebudowy, a nie ogólną poradę, aby spróbować ponownie.

Co dzieje się po zamówieniu

1
Składasz zamówienie i udostępniasz aplikację

Po udostępnieniu ścieżki testów zamkniętych lub kompilacji aplikacja automatycznie trafia do kolejki weryfikacji. Nie potrzeba osobnego zgłoszenia.

2
Od razu sprawdzamy kompilację pod kątem znaczników TWA

Zespół szuka typowych śladów TWA: DelegationService, launchera androidbrowserhelper, zachowania Custom Tabs i braku kodu natywnego. To te same znaczniki opisane w sekcji o rozpoznawaniu powyżej).

3
Jeśli to TWA, wskazujemy dokładny sposób naprawy

Otrzymujesz konkretną rekomendację, zwykle przebudowę do WebView opisaną w tym poradniku. Możesz poprawić architekturę przed wykorzystaniem 14-dniowego cyklu na kompilację narażoną na negatywną ocenę zaangażowania.

4
Po dopracowaniu aplikacji testerzy realizują pełny cykl 14 dni

Prawidłowa architektura i ponad 12 zweryfikowanych testerów aktywnych przez 14 dni z rzędu obejmują obie bramki. W ten sposób utrzymujemy skuteczność 99,9%.

Dlaczego oszczędza to tygodnie

Wielu deweloperów odkrywa problem TWA dopiero po nieudanym 14-dniowym cyklu, co oznacza konieczność rozpoczęcia od nowa. Wykrywamy go w dniu zerowym, dzięki czemu wystarczy raz poprawić architekturę, raz przeprowadzić test i raz opublikować aplikację. To różnica między postępem w dwa tygodnie a miesiącem kolejnych odrzuceń.

Jak pomaga PrimeTestLab, czyli druga połowa problemu

Architektura to połowa problemu. Drugą, która zatrzymuje wielu samodzielnych deweloperów, jest znalezienie 12 testerów, którzy rzeczywiście dołączą do testu i pozostaną aktywni nieprzerwanie przez 14 dni. W tym pomaga PrimeTestLab.

Zapewniamy zweryfikowanych testerów na prawdziwych urządzeniach z Androidem. Uczestniczą w teście zamkniętym przez cały wymagany okres, aby rezygnacja jednej osoby nie przerwała 14-dniowej ciągłości. Ty udostępniasz link do testów, a my obsługujemy zaproszenia, weryfikację uczestnictwa, codzienne monitorowanie zaangażowania i utrzymanie testerów przez 14 dni. Obsłużyliśmy już 7 400+ aplikacji ze skutecznością 99,9% przy pierwszej próbie.

Od $19.99 12 testerów
4-6 horas Start testu
7 400+ aplikacji 99,9% skuteczności
Mówiąc wprost

Usługa testowa spełnia wymaganie dotyczące testerów. Nie wybiera architektury aplikacji i nie przechodzi za Ciebie weryfikacji thin wrapper. Skuteczne połączenie to pełnoprawna kompilacja WebView oraz 12 prawdziwych testerów przez pełne 14 dni, dzięki czemu żadna z tych dwóch kwestii nie staje się przyczyną odrzucenia.

Aktualne plany

Starter 12 testerów $19.99
  • Spełnia minimum Google
  • Prawdziwe urządzenia z Androidem
  • Pełne 14 dni testu
Zobacz plan
Najlepsza wartość Enterprise 25 testerów $27.99
  • Największy margines bezpieczeństwa
  • Większa różnorodność urządzeń
  • Większa szansa powodzenia przy pierwszej próbie
Zobacz plan
Professional 20 testerów $29.99
  • Wliczony bufor bezpieczeństwa
  • Większa różnorodność urządzeń
  • Większa pewność procesu
Zobacz plan

Plus 5% opłaty serwisowej · Bezpłatny ponowny test lub pełny zwrot pieniędzy

Często zadawane pytania

Dlaczego moja aplikacja TWA jest stale odrzucana w teście zamkniętym?

Z naszego doświadczenia obejmującego 7 400+ aplikacji wynika, że kompilacje TWA i opakowania PWA znacznie częściej otrzymują odrzucenie "testers were not engaged" niż standardowe aplikacje natywne, nawet przy codziennej aktywności testerów. Prawdopodobnie sygnały zaangażowania odczytywane podczas weryfikacji dostępu do wersji produkcyjnej są słabsze, gdy treść internetowa działa w Chrome Custom Tabs zamiast w procesie aplikacji. Google nie ujawnia dokładnych sygnałów, dlatego jest to nasza obserwacja, a nie oficjalna zasada.

Czy lepiej przejść z TWA na WebView, czy naprawiać TWA?

Z naszego doświadczenia wynika, że przebudowa do standardowej aplikacji WebView jest znacznie pewniejsza niż próby wymuszenia lepszych sygnałów zaangażowania z TWA. WebView ładuje witrynę wewnątrz Twojej aplikacji, więc aktywność jest przypisywana do Twojego package zgodnie z oczekiwaniami weryfikacji. Po przejściu na WebView pozostań przy tej architekturze i opublikuj przetestowaną kompilację, zamiast wracać do TWA w wersji produkcyjnej.

Czy aplikacja WebView automatycznie przechodzi test zamknięty?

Nie. Przejście na WebView usuwa problem z sygnałami zaangażowania obserwowany w kompilacjach TWA, ale nie zwalnia z zasad Google dotyczących spamu i minimalnej funkcjonalności. WebView, który tylko wyświetla witrynę w ramce, nadal może zostać odrzucony jako thin wrapper. Zbuduj pełnoprawną aplikację z rzeczywistą funkcją natywną, prawidłową obsługą przycisku Wstecz oraz dopracowanymi stanami offline i błędów.

Czy aktualizacja aplikacji podczas testu zamkniętego resetuje licznik 14 dni?

Nie. Przesłanie aktualizacji na ścieżkę testów zamkniętych nie resetuje licznika 14 dni. Możesz zastąpić kompilację TWA kompilacją WebView w trakcie cyklu bez rozpoczynania od nowa, o ile zachowasz ten sam package name. Google uznaje aktywne poprawianie aplikacji podczas testów za normalną praktykę.

Dlaczego TWA pokazuje mało aktywnych użytkowników w Play Console?

Niektórzy deweloperzy zgłaszają niską liczbę aktywnych użytkowników kompilacji TWA. Google nie opisuje dokładnej przyczyny, ale prawdopodobnie wiąże się ona z działaniem treści internetowej w Chrome Custom Tabs zamiast wewnątrz aplikacji. Kompilacja WebView zwykle raportuje aktywność pewniej, ponieważ ekrany działają w procesie Twojej aplikacji.

Czy można bezpiecznie testować TWA, a opublikować aplikację WebView?

Bezpieczna zasada to testowanie i publikowanie tej samej kompilacji. Najpierw przebuduj aplikację jako WebView, przeprowadź tę kompilację przez test zamknięty i opublikuj dokładnie ją jako wersję produkcyjną. Przesłanie jednej aplikacji tylko po to, aby przejść weryfikację, a następnie zastąpienie jej zasadniczo inną może doprowadzić do zawieszenia z powodu naruszenia zasad Google dotyczących działań wprowadzających w błąd.

Czy opakowanie TWA lub PWA może zostać zatwierdzone w Google Play?

Tak. Aplikacje opakowujące treść internetową mogą zostać zatwierdzone, jeśli spełniają zasady minimalnej funkcjonalności i wymaganie testu zamkniętego. W przypadku kont osobistych, które muszą ukończyć 14-dniowy test zamknięty z udziałem 12 testerów, kompilacje WebView przechodzą weryfikację zaangażowania pewniej niż TWA. Dlatego w tej sytuacji zalecamy WebView.

Czy TWA korzysta z komponentu WebView systemu Android?

Nie. To najczęstsze nieporozumienie. TWA nie korzysta z Android WebView. Używa silnika Custom Tabs i przekazuje adres URL do pełnej przeglądarki zainstalowanej przez użytkownika, zwykle Chrome, aby wyświetlić stronę na pełnym ekranie bez interfejsu przeglądarki. Otrzymuje ten sam silnik renderowania, silnik JavaScript i piaskownicę zabezpieczeń co Chrome, a także wspólne pliki cookie i pamięć. Android WebView jest natomiast osadzanym modułem przeglądarki kontrolowanym przez aplikację i działającym w jej procesie. Właśnie dlatego przebudowa do WebView poprawia przypisywanie zaangażowania.

Dlaczego TWA pokazuje u góry pasek adresu przeglądarki?

Oznacza to nieudaną weryfikację zaufania Digital Asset Links. Chrome ukrywa pasek adresu tylko wtedy, gdy witryna udostępnia prawidłowy plik /.well-known/assetlinks.json z package aplikacji i odciskiem SHA-256 certyfikatu podpisującego. Jeśli pliku brakuje, zwraca błąd 404 albo odcisk nie pasuje do klucza używanego przez Google Play w Play App Signing, aplikacja nadal się otwiera, ale Chrome pokazuje pasek adresu. Naprawa assetlinks.json przywraca pełny ekran, lecz nie usuwa przyczyny odrzucenia testu zamkniętego z powodu zaangażowania. Do tego potrzebna jest przebudowa do WebView.

Jak sprawdzić, czy aplikacja jest TWA?

Sprawdź kompilację. Najpewniejszym znacznikiem jest DelegationService deklarujący akcję TRUSTED_WEB_ACTIVITY_SERVICE, ponieważ deklarują ją wyłącznie TWA. Zwykle występuje również LauncherActivity z com.google.androidbrowserhelper i nie ma natywnych bibliotek Flutter ani React Native. Na podłączonym urządzeniu uruchom adb shell dumpsys package <package> | grep -i DelegationService, aby znaleźć usługę, oraz adb shell pm get-app-links <package>, aby sprawdzić, czy weryfikacja Digital Asset Links przechodzi ("verified"), czy kończy się niepowodzeniem ("1024").

Czy PrimeTestLab może sprawdzić, czy moja aplikacja jest TWA?

Tak. Po zamówieniu usługi testowej nasz zespół sprawdza kompilację, potwierdza, czy jest to TWA lub opakowanie PWA, i w razie potrzeby wysyła konkretną rekomendację przed zmarnowaniem 14-dniowego cyklu. W ostatnich miesiącach sprawdziliśmy ponad 200 aplikacji TWA. Po zastosowaniu naszych rekomendacji i poprawek aplikacje te mogły niezawodnie kontynuować cykl testowy. Nie musisz samodzielnie uruchamiać adb ani sprawdzać APK.

Jak szybko PrimeTestLab może zapewnić testerów do testu zamkniętego?

Gdy ścieżka testów zamkniętych jest aktywna i dostępna, testerzy PrimeTestLab zwykle zaczynają dołączać do testu w ciągu 4-6 godzin. Cena zaczyna się od $19.99 za 12 testerów, plus 5% opłaty serwisowej. Skuteczność wynosi 99,9% w 7 400+ aplikacji.

Podsumowanie

Najważniejsze

Jeśli kompilacja TWA nie przechodzi testu zamkniętego Google Play z powodu zaangażowania, najprostszym rozwiązaniem jest przebudowa do standardowej aplikacji WebView i opublikowanie tej kompilacji jako wersji produkcyjnej bez późniejszego powrotu do TWA. Zachowaj ten sam package name, aby aktualizacja nie zresetowała licznika 14 dni. Zbuduj aplikację wystarczająco funkcjonalną, by przejść weryfikację minimalnej funkcjonalności, a PrimeTestLab może zapewnić 12 testerów przez 14 dni. WebView usuwa problem zaangażowania, pełnoprawna aplikacja przechodzi bramkę thin wrapper, a PrimeTestLab zapewnia testerów. Zobacz plany cenowe →

Kefayatullah Khadem, specjalista ds. publikowania aplikacji w Google Play

Autor

Kefayatullah Khadem

Inżynier oprogramowania i specjalista ds. publikowania aplikacji w Google Play

Tworzy poradniki PrimeTestLab o testach zamkniętych na podstawie rzeczywistych przypadków i oficjalnej dokumentacji Play Console.

7 400+Przetestowanych aplikacji
99,9%Skuteczność
120+Krajów

Skuteczność 99,9%

Aplikacja jest już w WebView? Zabezpiecz 14-dniowy test.

Prawdziwi testerzy. Prawdziwe urządzenia. Pełne 14 dni. Bez resetowania licznika.

Od $19.99, plus 5% opłaty serwisowej

Bezpłatny ponowny test lub pełny zwrot pieniędzy.

Test rusza w 4-6 godzin · 120+ krajów · Gwarancja zwrotu pieniędzy

Dołącz do ponad 7 400 deweloperów, którzy opublikowali aplikacje z PrimeTestLab

Zdobądź 12 testerów · $19.99, plus 5% opłaty serwisowej WhatsApp