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.
Link aplikacji otwiera się w przeglądarce zamiast w 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 adresemhttps://<your-domain>/.well-known/assetlinks.jsoni jest udostępniany przez HTTPS bez przekierowań. Użyj walidatora online. - Sprawdź odcisk SHA-256: upewnij się, że wartość
sha256_cert_fingerprintswassetlinks.jsondokł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 plikuAndroidManifest.xmlzawiera atrybutandroid:autoVerify="true". - Sprawdź przekierowania po stronie serwera: przekierowania z
httpnahttpslub z domeny bez „www” nawwwmogą 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.
- Sprawdź plik
Reguły dynamiczne na urządzeniach z Androidem w wersji 15 lub nowszej nie są aktualizowane
- Problem: reguły w pliku
assetlinks.jsonzostał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.
- Wymuś ponowną weryfikację: najbardziej niezawodnym sposobem testowania zmian jest wymuszenie ponownego pobrania za pomocą polecenia
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ść coexample.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.comdohttps://example.com - Od
example.comdowww.example.com
Takie działanie chroni bezpieczeństwo aplikacji.
- Od
- 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ą.
- Podpisywanie aplikacji certyfikatem debugowania i posiadanie tylko podpisu wersji w usłudze
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.