Rozwiązywanie problemów z linkami do aplikacji

W tym przewodniku opisujemy typowe problemy i sposoby ich rozwiązywania. Możesz też użyć narzędzi do rozwiązywania problemów na stronie Precyzyjne linki w Konsoli Play lub w Asystencie linków do aplikacji w Android Studio. Więcej informacji znajdziesz w artykule Narzędzia dla programistów linków do aplikacji.

  • Problem: klikasz link, który powinien otworzyć Twoją aplikację, ale otwiera się on w przeglądarce internetowej lub wyświetla okno wyboru aplikacji.
  • Rozwiązanie:
    • Sprawdź plik assetlinks.json: upewnij się, że plik jest prawidłowym plikiem JSON, jest dostępny pod adresem https://<your-domain>/.well-known/assetlinks.json i jest udostępniany przez HTTPS bez przekierowań. Użyj walidatora online.
    • Sprawdź odcisk SHA-256: upewnij się, że wartość sha256_cert_fingerprints w assetlinks.json dokładnie odpowiada odciskowi klucza podpisywania wersji aplikacji (jeśli korzystasz z podpisywania aplikacji przez Google Play, użyj odcisku z Konsoli Play). Podpis powinien być pisany wielkimi literami.
    • Sprawdź autoVerify: upewnij się, że element <intent-filter> w pliku AndroidManifest.xml zawiera atrybut android:autoVerify="true".
    • Sprawdź przekierowania po stronie serwera: przekierowania z http na https lub z domeny bez „www” na www mogą spowodować niepowodzenie weryfikacji.
    • Wymuś ponowną weryfikację: uruchom polecenia narzędzia ADB w przewodniku Testowanie linków aplikacji, aby uzyskać nowy wynik weryfikacji.
    • Diagnozowanie rozpoznawania linków (Android 17+): uruchom adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>" aby sprawdzić, które aplikacje kandydujące, filtry intencji w pliku manifestu i reguły dynamicznych linków do aplikacji pasują do adresu URL. Więcej informacji znajdziesz w artykule Diagnostyka rozwiązywania linków za pomocą flagi debug-link.

Reguły dynamiczne na urządzeniach z Androidem w wersji 15 lub nowszej nie są aktualizowane

  • Problem: reguły w pliku assetlinks.json zostały zaktualizowane, ale aplikacja nie obsługuje nowych linków.
  • Rozwiązanie:
    • Wymuś ponowną weryfikację: najbardziej niezawodnym sposobem testowania zmian jest wymuszenie ponownego pobrania za pomocą polecenia adb shell pm verify-app-links --re-verify <your-package-name>.
    • Sprawdź, czy nie ma literówek: dokładnie przejrzyj w regułach dopasowania wzorca, czy nie ma błędów składniowych.
    • Sprawdź reguły filtrowania w pliku manifestu: przejrzyj reguły filtra intencji w pliku manifestu aplikacji, aby upewnić się, że ścieżka linku nie jest odfiltrowywana. Jeśli link jest odfiltrowywany, zmniejsz restrykcyjność filtra intencji w manifeście aplikacji.
    • Diagnozowanie reguł dopasowywania (Android 17 i nowsze wersje): uruchom adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>" aby sprawdzić, które reguły zostały ocenione, i określić, czy reguła wykluczania (allow = 1) uniemożliwiła otwarcie aplikacji. Zapoznaj się z sekcją Diagnozowanie rozpoznawania linków za pomocą flagi debug-link.

Poprawianie typowych błędów implementacji

Jeśli nie możesz potwierdzić linków do aplikacji na Androida, sprawdź, czy nie występują te typowe błędy. W tej sekcji jako zastępcza nazwa domeny używana jest nazwa example.com. Podczas przeprowadzania tych testów zastąp example.com rzeczywistą nazwą domeny serwera.

Nieprawidłowo skonfigurowany filtr intencji
Sprawdź, czy w elemencie <intent-filter> znajduje się adres URL, który nie należy do Twojej aplikacji.
Nieprawidłowa konfiguracja serwera

Sprawdź konfigurację JSON serwera i upewnij się, że wartość SHA jest prawidłowa.

Sprawdź też, czy example.com. (z kropką na końcu) wyświetla tę samą treść co example.com.

Przekierowania po stronie serwera

System nie weryfikuje żadnych linków do aplikacji na Androida w przypadku aplikacji, w której skonfigurujesz przekierowanie, np. takie:

  • Od http://example.com do https://example.com
  • Od example.com do www.example.com

Takie działanie chroni bezpieczeństwo aplikacji.

Odporność serwera

Sprawdź, czy aplikacje klienckie mogą łączyć się z serwerem.

Linków, których nie można zweryfikować

Do celów testowych możesz celowo dodać linki, których nie można zweryfikować. Pamiętaj, że na Androidzie 11 i starszych te linki powodują, że system nie weryfikuje wszystkich linków aplikacji na Androida w Twojej aplikacji.

Nieprawidłowy podpis w pliku assetlinks.json

Sprawdź, czy podpis jest prawidłowy i zgodny z podpisem używanym do podpisywania aplikacji. Częste błędy to:

  • Podpisywanie aplikacji certyfikatem debugowania i posiadanie tylko podpisu wersji w usłudze assetlinks.json.
  • podpisanie dokumentu małymi literami w assetlinks.json, Podpis powinien być zapisany wielkimi literami.
  • Jeśli korzystasz z podpisywania aplikacji przez Google Play, upewnij się, że używasz podpisu, którego Google używa do podpisywania wszystkich wersji Twojej aplikacji. Możesz sprawdzić te szczegóły, w tym pełny fragment kodu JSON, postępując zgodnie z instrukcjami dotyczącymi deklarowania powiązań z witryną.

Zapisywanie raportu o błędzie

W przypadku złożonych problemów, które trudno odtworzyć, utwórz raport o błędzie i go przeanalizuj. Może to dostarczyć cennych informacji o procesie weryfikacji i błędach na poziomie systemu.