이 가이드에서는 일반적인 문제와 문제 해결 방법을 설명합니다. Play Console 딥 링크 페이지 또는 Android 스튜디오 앱 링크 어시스턴트의 문제 해결 도구를 사용할 수도 있습니다. 자세한 내용은 앱 링크 개발자 도구를 참고하세요.
앱 링크가 앱 대신 브라우저에서 열림
- 문제: 앱을 열어야 하는 링크를 클릭했지만 웹 브라우저에서 열리거나 선택 대화상자가 표시됩니다.
- 해결 방법:
assetlinks.json확인: 파일이 유효한 JSON이고https://<your-domain>/.well-known/assetlinks.json에서 액세스할 수 있으며 리디렉션 없이 HTTPS를 통해 제공되는지 확인합니다. 온라인 유효성 검사기를 사용합니다.- SHA-256 디지털 지문 확인:
assetlinks.json의sha256_cert_fingerprints가 앱 출시의 서명 키 디지털 지문과 정확히 일치하는지 다시 한번 확인합니다 (Play 앱 서명을 사용하는 경우 Play Console의 디지털 지문을 사용). 서명은 대문자여야 합니다. autoVerify확인:<intent-filter>AndroidManifest.xml에android:autoVerify="true"가 포함되어 있는지 확인합니다.- 서버 측 리디렉션 확인:
http에서https로 또는 www가 아닌 도메인에서www로 리디렉션하면 인증이 실패할 수 있습니다. - 강제 재인증: 앱 링크 테스트 가이드에서 ADB 명령어를 실행하여 최신 인증 결과를 가져옵니다.
Android 15 이상에서 동적 규칙이 업데이트되지 않음
- 문제:
assetlinks.json파일에서 규칙을 업데이트했지만 앱에서 새 링크를 처리하지 않습니다. - 해결 방법:
- 강제 재인증: 변경사항을 테스트하는 가장 확실한 방법은
adb shell pm verify-app-links --re-verify. <your-package-name>를 사용하여 강제로 다시 가져오는 것입니다. - 오타 확인: 규칙의 패턴 일치자에서 구문 오류가 있는지 주의 깊게 검토합니다.
- 매니페스트 필터 규칙 확인: 앱 매니페스트의 인텐트 필터 규칙을 검토하여 링크 경로가 필터링되지 않도록 합니다. 링크가 필터링되는 경우 앱 매니페스트의 인텐트 필터를 덜 제한적으로 만듭니다.
- 강제 재인증: 변경사항을 테스트하는 가장 확실한 방법은
일반적인 구현 오류 수정
Android App Links를 확인할 수 없는 경우 다음과 같은 일반적인
오류를 확인하세요. 이 섹션에서는 example.com을 자리표시자 도메인 이름으로 사용합니다.
이러한 검사를 실행할 때는 example.com을 서버의 실제
도메인 이름으로 대체하세요.
- 잘못된 인텐트 필터 설정
- 앱이 소유하지 않은 URL을
<intent-filter>요소에 포함하는지 확인합니다. - 잘못된 서버 구성
서버의 JSON 구성을 확인하고 SHA 값이 올바른지 확인합니다.
또한
example.com.(마침표 포함)이 콘텐츠를example.com과 동일하게 제공하는지 확인합니다.- 서버 측 리디렉션
다음과 같은 리디렉션을 설정하면 시스템에서 앱의 Android App Links를 전혀 확인하지 않습니다.
http://example.com에서https://example.com으로example.com에서www.example.com으로
이 동작은 앱의 보안을 보호합니다.
- 서버 안정성
클라이언트 앱이 서버에 연결할 수 있는지 확인합니다.
- 확인할 수 없는 링크
테스트 목적으로 확인 불가능한 링크를 의도적으로 추가할 수 있습니다. Android 11 이하에서는 이러한 링크로 인해 시스템에서 앱의 모든 Android App Links를 확인하지 않는다는 점에 유의하세요.
- assetlinks.json의 잘못된 서명
서명이 올바르고 앱 서명에 사용된 서명과 일치하는지 확인합니다. 일반적인 실수는 다음과 같습니다.
- 디버그 인증서로 앱에 서명하고 출시
서명만
assetlinks.json에 있는 경우 assetlinks.json에 소문자 서명이 있는 경우 서명은 대문자여야 합니다.- Play 앱 서명을 사용하는 경우 Google에서 각 출시 버전에 서명하는 데 사용하는 서명 을 사용해야 합니다. 웹사이트 연결 선언에 관한 안내에 따라 전체 JSON 스니펫을 포함한 이러한 세부정보를 확인할 수 있습니다.
- 디버그 인증서로 앱에 서명하고 출시
서명만