Android 개발

Android 앱 링크 검증 · 배포 전 연결 선언 확인

assetlinks.json을 붙여 넣고 필요한 경우 패키지 이름과 서명 인증서 SHA-256을 입력한 뒤 수동 검사하세요.

Android 앱 링크 검증

assetlinks.json 입력

로컬 검사 결과

assetlinks.json을 붙여 넣거나 예제를 여세요.

배포 확인 목록

아래 항목은 로컬 검사로 직접 확인하지 않았습니다.

  • 각 호스트의 HTTPS /.well-known/assetlinks.json에서 리디렉션 없이 application/json을 제공합니다.
  • Play Console의 앱 서명 인증서 SHA-256과 비교하고 필요한 인증서만 등록합니다.
  • 매니페스트 Web intent filter의 autoVerify 및 호스트·경로 범위를 확인합니다.
  • 설치된 기기에서 adb shell pm get-app-links를 실행하고 서버 수정 후 다시 검증합니다.

JSON, 패키지와 인증서 지문은 이 탭에서만 검사하며 도메인에 요청하지 않습니다.

옵션

assetlinks.json을 붙여 넣거나 예제를 여세요.

링크가 앱 대신 브라우저에서 열릴 때 JSON 구문이 맞는지만 보아서는 원인을 찾기 어렵습니다. Android 앱 링크 검증은 handle_all_urls 관계와 패키지 이름, 인증서 지문이 한 선언에 함께 있는지 확인합니다.

배포 전 assetlinks.json 확인과 앱 링크 문제 해결에 사용할 수 있습니다. SHA-256 디지털 지문이 달라도 알려 주지만, 실제 HTTPS 응답과 기기의 검증 상태는 별도로 확인해야 합니다.

Android 앱 링크 검증을 먼저 하는 이유

로컬 선언 검사와 실제 기기 검증을 분리합니다.

하나의 선언 안에서만 일치

Android 앱 링크 검증은 서로 다른 선언의 패키지와 지문을 합치지 않습니다. 같은 android_app 대상에 handle_all_urls와 기대한 패키지, SHA-256이 모두 있을 때만 일치로 표시합니다.

하나의 앱 선언에서 관계, 패키지, 인증서 지문이 연결되고 분리된 선언은 연결되지 않은 모습.

배포 조건은 미확인으로 표시

이 Android 앱 링크 검증은 도메인에 요청하지 않습니다. HTTPS, 정해진 경로, JSON 응답 유형, 리디렉션, 매니페스트와 실제 기기 확인을 별도 목록으로 남깁니다.

로컬 JSON 검사 결과 옆에 웹 서버와 Android 기기 확인 목록이 놓인 모습.

인증서 선택과 다시 검사할 시점

01

설치된 앱의 서명 확인

Play에서 배포한 앱은 Play Console의 앱 서명 키 인증서 SHA-256을 사용하세요. 업로드 키나 디버그 키는 다를 수 있습니다. 예상 지문 입력은 콜론 없는 64자리 16진수도 허용합니다.

02

마지막 수정 뒤 실행

검사는 수동으로 실행하며 Ctrl/Cmd+Enter도 사용할 수 있습니다. JSON, 패키지, 지문을 바꾸면 이전 보고서는 즉시 오래된 결과가 되고 복사와 다운로드가 막힙니다.

03

세 종류의 결론 분리

DAL 구조가 올바른지, 선언이 일치하는지, 기기가 실제 검증했는지는 별개입니다. include는 원격으로 펼치지 않으며 화면에서 50개씩 보이는 목록도 내보낼 때는 전부 포함합니다.

구조·관계·서명을 한 번에 점검

선언 경로 표시

assetlinks.json 확인에서 최상위 배열과 relation, android_app 및 web 대상을 검사하고 문제가 있는 배열 번호와 필드를 표시합니다. include는 합법적인 참조로 인정하지만 가져오지는 않습니다.

SHA-256 지문 비교

예상 값은 대소문자와 콜론 유무를 정규화해 비교합니다. 파일 안의 지문 형식은 대문자 콜론 구분을 따로 안내하며 SHA-1을 앱 서명 인증서로 취급하지 않습니다.

App Links 관계 확인

handle_all_urls와 패키지, 지문을 같은 선언에서 비교합니다. 다른 Digital Asset Links 관계는 표시하지만 앱 링크 권한이 있다고 판단하지 않습니다.

전체 결과 내려받기

현재 검사 보고서를 JSON으로 복사하거나 저장합니다. 긴 목록은 50개씩 보여 주며 저장되는 보고서에는 모든 항목을 넣습니다.

로컬 결과로 단정할 수 없는 것

서버 응답 미검사
도메인을 가져오지 않으므로 HTTPS의 /.well-known/assetlinks.json, application/json, 리디렉션 여부는 실제 서버에서 따로 확인해야 합니다.
파일 해시로 서명 확인 불가
필요한 값은 앱 서명 인증서의 SHA-256입니다. JSON이나 APK 파일의 해시와 SHA-1은 대신 쓸 수 없습니다. 예상 지문을 비우면 특정 인증서 일치를 확인하지 않습니다.
include와 동적 규칙 미해석
include의 대상은 네트워크로 열지 않습니다. relation_extensions의 Android 15 동적 경로 규칙과 매니페스트 범위도 이 화면에서 시뮬레이션하지 않습니다.
기기 상태는 별도
매니페스트 autoVerify, 설치된 서명, 캐시와 호스트별 검증은 JSON에 들어 있지 않습니다. adb로 설치된 기기의 상태를 확인하세요.

Android 앱 링크 검증 자주 묻는 질문

앱 링크가 앱 대신 브라우저에서 열리는 이유는 무엇인가요?

JSON이 올바르더라도 공개 URL, 리디렉션, 실제 앱 서명, 매니페스트 범위 또는 기기 상태가 원인일 수 있습니다. 앱 링크 브라우저 열림 문제는 Android 앱 링크 검증으로 로컬 선언을 먼저 좁힌 뒤 서버와 기기를 확인하세요.

이전 Android 버전의 기기에서는 어떻게 되나요?

Android 15 이후의 dynamic_app_link_components는 오래된 버전에서 무시됩니다. 이전 기기를 지원하려면 필요한 경로를 매니페스트에도 선언하고 해당 버전에서 시험하세요.

매니페스트 경로 규칙과 동적 규칙을 함께 쓸 수 있나요?

함께 사용할 수 있지만 동적 규칙이 매니페스트에 선언된 최대 범위를 넓힐 수는 없습니다. 이 도구는 확장 필드의 존재만 표시하며 실제 URL 경로의 결과는 계산하지 않습니다.

assetlinks.json에 넣을 SHA-256 인증서 지문은 어디서 얻나요?

Play App Signing을 쓰면 Play Console의 앱 서명 키 인증서에서 SHA-256을 읽습니다. 로컬 빌드에서는 해당 키 저장소를 keytool로 확인하세요. JSON 파일 자체의 해시가 아닙니다.

파일을 수정했는데 새 링크가 열리지 않는 이유는 무엇인가요?

기기가 이전 응답을 캐시하거나 매니페스트 범위 밖의 경로를 처리하지 못할 수 있습니다. 공개 파일을 확인하고 adb shell pm verify-app-links --re-verify로 다시 검증한 뒤 상태를 보세요.

선언 결과가 예상과 다른가요?

지금 Android 앱 링크 검증 시작

배포 예정 JSON을 Android 앱 링크 검증에 넣고 앱 서명 인증서를 비교한 다음 서버와 기기 확인 목록을 따라가세요.

입력은 현재 브라우저 탭 안에서만 처리됩니다.