본문으로 건너뛰기

TWA 서명 문제 해결

Play 앱 서명 이후 assetlinks.json SHA-256: TWA 주소창 해결하기

Trusted Web Activity가 Android Studio에서 설치하면 전체 화면으로 열리는데, Google Play에서 설치한 앱에는 주소창이 보입니다. 먼저 인증서를 확인하세요. Google Play는 앱을 앱 서명 키로 서명해 배포할 수 있지만, 웹사이트의 assetlinks.json에는 내 컴퓨터에서 서명할 때 사용한 인증서만 들어 있을 수 있습니다. 올바른 SHA-256을 추가하고, Google이 요구하는 방식으로 파일을 제공한 다음, 테스터가 실제로 설치하는 빌드로 테스트하세요.

SHA-256앱 서명 키 인증서
파일 1개/.well-known/assetlinks.json
HTTP 200직접 응답, 리디렉션 없음
정해진 대기 시간 없음캐시는 계층마다 다름

빠른 답변

직접 설치한 빌드에서는 TWA가 전체 화면인데 Google Play에서 설치하면 주소창이 보인다면, 먼저 웹사이트에 Play의 서명 인증서가 등록되어 있는지 확인하세요. Play Console에서 Protected with Play 아래의 Play 앱 서명(Play app signing)을 열고 앱 서명 키 인증서의 SHA-256을 복사합니다. 이 값을 https://your-domain/.well-known/assetlinks.json의 sha256_cert_fingerprints 배열에 추가하고, 이 파일을 HTTPS로 리디렉션 없이 HTTP 200으로 직접 응답하며 application/json 형식으로 제공한 다음, Play 테스트 트랙에서 설치한 빌드로 다시 테스트하세요. 지문이 이미 일치한다면 인증된 출처를 벗어나는 이동, 리디렉션, 사용 중인 브라우저를 확인하세요.

이 순서로 해결하세요

그런 다음 직접 설치한 빌드가 아니라 Google Play에서 설치한 버전으로 테스트하세요.

이 가이드는 한 가지 문제 해결, 즉 웹사이트와 Google Play가 배포하는 빌드 사이의 연결만 다룹니다. TWA를 빌드하는 방법이나 Play의 앱 검토는 다루지 않으며, 이 내용은 아래에 링크된 별도 가이드에서 설명합니다. 여기에 인용한 모든 Google 페이지는 2026년 10월 16일에 확인했으며, 출처는 글 마지막에 정리되어 있습니다.

Play 설치본에만 주소창이 보이는 이유

Chrome은 설치된 앱에 서명한 인증서를 웹사이트가 게시한 지문과 비교하여 TWA를 확인합니다. 이 확인에 실패하면, Chrome의 TWA 빠른 시작 가이드에 따르면 브라우저는 사이트를 Custom Tab(맞춤 탭)으로 표시하는 방식으로 대체됩니다. 이렇게 대체되어 보이는 것이 바로 주소창입니다.

Play 앱 서명을 사용하면 보통 인증서가 두 개입니다. 업로드하는 번들은 업로드 키로 직접 서명하고, Google은 배포하는 APK를 앱 서명 키로 서명합니다. Chrome의 웹 개발자를 위한 Android 개념 페이지에 따르면, Play 스토어에서 다운로드한 앱에 해당하는 지문은 앱 서명 키 지문입니다. 따라서 로컬 인증서만 등록된 파일은 내 책상 위 기기에서는 통과하지만 Play에서 설치한 모든 휴대폰에서는 실패합니다.

두 키가 항상 다른 것은 아닙니다. Android의 앱 서명 문서에는 같은 키가 앱 서명 키와 업로드 키 역할을 모두 하는 구성도 설명되어 있습니다. 따라서 어떤 키를 쓰고 있는지 짐작하지 말고 실제 인증서를 비교하는 것이 해결 방법입니다.

테스트 중인 빌드에 서명한 인증서
빌드 출처 서명 키 assetlinks.json에 필요한 항목
Play 테스트 트랙 또는 프로덕션에서 설치 서명 키Play의 앱 서명 키 assetlinks.json에 필요한 항목앱 서명 키 인증서의 SHA-256. Play 설치본 문제를 해결하는 것은 바로 이 값입니다.
직접 빌드한 출시용 APK를 수동 설치 서명 키내 업로드 키 또는 출시 키 assetlinks.json에 필요한 항목해당 키의 SHA-256. 이런 빌드도 확인되기를 원할 때만 필요합니다
Android Studio 디버그 실행 서명 키로컬 디버그 키 assetlinks.json에 필요한 항목디버그 SHA-256. 디버그 빌드도 확인되기를 원할 때만 필요합니다. 애플리케이션 ID가 다르면 별도의 구문이 필요합니다.
내부 앱 공유 링크 서명 키별도의 내부 앱 공유 키 assetlinks.json에 필요한 항목Google은 이러한 업로드를 내부 앱 공유 키로 다시 서명하므로, 해결 여부는 테스트 트랙에서 확인하세요
서명 키 업그레이드 이후 출시된 빌드 서명 키Play가 현재 해당 빌드에 사용하는 인증서 assetlinks.json에 필요한 항목아직 지원하는 빌드의 인증서 전부. 새 인증서가 보인다는 이유만으로 이전 인증서를 삭제하지 마세요.

비공개 테스터에게도 보입니다

비공개 테스트의 테스터는 Play에서 서명한 빌드를 설치하므로, 주소창이 처음 발견되는 곳이 이 단계인 경우가 많습니다. 이는 비공개 테스트의 결함이 아닙니다. 변수는 설치된 APK의 인증서입니다. 사이드로드한 APK로만 테스트한다면 이 문제를 완전히 놓칠 수 있습니다.

Play Console에서 앱 서명 SHA-256 찾기

현재 Google 문서에는 같은 위치에 대해 두 가지 메뉴 이름이 나와 있습니다. 두 경로 모두 앱의 왼쪽 메뉴에 있는 Protected with Play에서 시작합니다.

같은 인증서로 가는 문서상의 두 경로(2026년 10월 16일 확인)
Google 페이지 경로 복사할 위치
Play Console 고객센터: Play 앱 서명 사용 경로Protected with Play > Play Store distribution > Go to Play app signing 복사할 위치앱 서명 키(App signing key) 섹션
Android App Links 문서 경로Protected with Play > Play Store protection > Manage Play app signing 복사할 위치App signing key certificate > SHA-256 certificate fingerprint

일부 Google 페이지를 포함한 오래된 가이드에는 아직 Release > Setup > App signing 또는 Setup > App integrity로 나와 있습니다. 이런 메뉴 이름만 보인다면, 같은 페이지를 예전 이름으로 찾고 있는 것입니다.

1

Play Console에서 앱 열기

TWA가 사용하는 패키지 이름의 앱을 선택하세요. 앱마다 고유한 앱 서명 키가 있습니다.

2

Play 앱 서명으로 이동

위 표의 경로 중 어느 것을 사용해도 됩니다. 두 경로 모두 앱 서명 키와 업로드 키가 표시된 페이지로 이어집니다.

3

앱 서명 키 SHA-256 복사

업로드 키 섹션이나 SHA-1 줄이 아니라, 앱 서명 키 섹션의 SHA-256 인증서 지문을 복사하세요. 이 값은 콜론으로 구분된 16진수 문자 32쌍입니다. 전체를 그대로 붙여넣으세요. 블로그 글에 있는 축약된 예시로는 확인되지 않습니다.

4

해당되는 앱 서명 인증서를 모두 유지

Google의 현재 고객센터 페이지는 양자 대비(quantum-ready) 하이브리드 서명을 설명하는데, 이 경우 세 가지 키의 지문을 복사합니다. 최신 기기에서 사용하는 새 클래식 키와 포스트 양자 키, 그리고 이전 기기에서 사용하는 클래식 키입니다. 페이지에 앱 서명 인증서가 두 개 이상 표시된다면, 지원하는 기기가 받을 수 있는 인증서를 모두 등록하세요. 이는 해당 구성을 사용하는 앱에만 적용되며, 대부분의 앱에는 앱 서명 인증서가 하나만 표시됩니다.

직접 보유한 키의 지문 확인하기

업로드 키나 디버그 키의 경우 Java의 keytool이 같은 형식으로 출력합니다. 키 저장소 파일과 별칭을 내 것으로 바꾼 다음, SHA256: 으로 표시된 줄을 복사하세요.

터미널
keytool -list -v -keystore my-upload-key.jks -alias upload

여러 앱을 관리한다면 Google Play Developer API로도 Play가 생성한 APK의 인증서 해시를 가져올 수 있습니다(생성된 APK 목록의 certificateSha256Hash 필드). 한 번 수정하는 경우라면 Play Console에서 복사하는 편이 더 간단합니다.

올바른 assetlinks.json 작성 및 제공

이 파일은 구문(statement)으로 이루어진 JSON 배열입니다. TWA의 경우 relation은 delegate_permission/common.handle_all_urls이고, target은 Android 앱입니다. 즉 네임스페이스 android_app, 정확한 애플리케이션 ID, SHA-256 지문 배열로 구성됩니다. 최소 구성 파일은 다음과 같습니다.

assetlinks.json
[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.twa",
      "sha256_cert_fingerprints": [
        "PLAY_APP_SIGNING_KEY_SHA256",
        "UPLOAD_KEY_SHA256"
      ]
    }
  }
]

com.example.twa를 내 애플리케이션 ID로, 각 자리표시자를 콜론으로 구분된 전체 SHA-256으로 바꾸세요. Play 설치본만 확인되면 된다면 두 번째 항목은 삭제하세요. 엄격한 JSON만 허용됩니다. 주석, 후행 쉼표, SHA-1 값은 넣지 마세요.

Google이 요구하는 파일 제공 방식

  • 정확한 위치. .well-known의 점까지 포함한 https://your-domain/.well-known/assetlinks.json입니다. example.com과 www.example.com은 서로 다른 출처이므로, 앱이 여는 출처마다 파일을 게시하세요. /app/.well-known/ 같은 하위 디렉터리에 있는 사본은 인정되지 않습니다.
  • HTTP 200 직접 응답. Google의 Digital Asset Links 문서에는 다음과 같이 나와 있습니다. “HTTP 200 이외의 서버 응답은 모두 오류로 처리되며, 빈 구문 목록이 됩니다.”
  • 리디렉션 없음. 301 및 302 응답은 따라가지 않습니다. http에서 https로 넘어가는 경우와 기본 도메인에서 www로 넘어가는 경우도 포함됩니다.
  • 유효한 인증서 체인을 갖춘 HTTPS와 Content-Type: application/json 헤더가 필요합니다. 200으로 응답하는 로그인 페이지나 HTML 오류 페이지는 유효한 파일이 아닙니다.

아무 터미널에서나 실제 응답을 확인하세요. 첫 번째 상태 줄이 200이어야 하고, 콘텐츠 유형은 JSON이어야 하며, 그 앞에 3xx가 없어야 합니다.

터미널
curl -sI https://example.com/.well-known/assetlinks.json

지문이 여러 개이거나 앱이 여러 개인 경우

Android의 웹사이트 연결 가이드는 지문 배열에 대해 이렇게 설명합니다. “이 필드는 여러 지문을 지원하므로, 디버그 빌드와 프로덕션 빌드처럼 앱의 여러 버전을 지원하는 데 사용할 수 있습니다.” 업로드 지문이나 디버그 지문은 해당 웹사이트가 실제로 신뢰하기를 원하는 빌드에 대해서만 추가하세요. 별도의 디버그 패키지처럼 애플리케이션 ID가 다른 빌드는 배열 안에 별도의 구문이 필요합니다.

Bubblewrap 또는 PWABuilder로 TWA를 만든 경우

기존 Bubblewrap 프로젝트에서는 Play의 지문을 추가하고 파일을 다시 생성하세요.

터미널
bubblewrap fingerprint add "PLAY_APP_SIGNING_KEY_SHA256" --name="Play app signing"
bubblewrap fingerprint list
bubblewrap fingerprint generateAssetLinks

파일을 생성했다고 배포된 것은 아닙니다. 새 assetlinks.json을 웹사이트에 업로드하고 curl로 확인하세요. bubblewrap validate는 PWA를 품질 기준에 따라 검사할 뿐 서명 연결은 확인하지 않으므로, 여기서 통과해도 지문에 대해서는 아무것도 증명하지 않습니다. PWABuilder의 현재 안내도 서명에 대해 같은 점을 짚으며(“.aab 파일을 업로드하면 Google Play가 앱을 다시 서명합니다”), 생성된 파일에 Play의 지문을 추가하라고 안내합니다. 지문 수정은 앱 바이너리가 아니라 웹사이트를 변경하는 작업입니다.

연결을 확인한 다음 Play 설치본 테스트하기

관련된 계층은 네 가지입니다. 웹사이트의 파일, Google의 Digital Asset Links API, Android 자체의 링크 인증, 그리고 TWA를 실행하는 브라우저입니다. 한 계층을 통과했다고 다음 계층까지 증명되지는 않으므로, 순서대로 확인하고 마지막에는 기기에서 확인하세요.

1

웹사이트 파일

위의 curl 확인을 실행하세요. 다른 곳을 살펴보기 전에 리디렉션, 잘못된 콘텐츠 유형, 200이 아닌 상태 코드부터 고치세요.

2

Google의 Statement List Generator and Tester

Google의 Statement List Generator and Tester에 도메인, 패키지 이름, SHA-256을 입력하면 구문이 있는지 테스트해 줍니다. 가장 빠르게 눈으로 확인할 수 있는 방법입니다.

3

API를 통한 정확한 확인

assetlinks.check 메서드는 한 가지 정확한 질문, 즉 이 인증서를 사용하는 이 패키지가 이 웹사이트에 연결되어 있는지에 답합니다. 출처, 패키지, 지문, 키를 바꾸고 값을 URL 인코딩한 다음 "linked": true가 있는지 확인하세요.

요청 URL
https://digitalassetlinks.googleapis.com/v1/assetlinks:check?source.web.site=https%3A%2F%2Fexample.com&relation=delegate_permission%2Fcommon.handle_all_urls&target.android_app.package_name=com.example.twa&target.android_app.certificate.sha256_fingerprint=URL_ENCODED_SHA256&key=YOUR_API_KEY

source는 파일의 URL이 아니라 출처입니다. statements.list 메서드는 웹사이트가 게시한 내용을 나열할 뿐이므로, 목록이 비어 있지 않다고 해서 내 패키지와 인증서가 그 안에 있다는 것이 증명되지는 않습니다. Google 가이드에서는 API 키를 요구합니다. 인증 오류나 할당량 오류는 API 액세스 문제이지 연결 실패가 아닙니다.

웹사이트가 게시한 내용을 모두 보려면 목록 요청을 사용하세요. 이 요청에는 출처와 relation만 필요합니다. 반환된 target을 읽고 내 패키지와 인증서가 정확히 있는지 확인하세요.

요청 URL
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https%3A%2F%2Fexample.com&relation=delegate_permission%2Fcommon.handle_all_urls
4

테스터가 설치하는 앱

사이드로드한 APK나 내부 앱 공유 링크가 아니라 Play 테스트 트랙에서 설치한 다음 앱을 여세요. 그래도 주소창이 보인다면 adb로 Chrome의 인증 로그를 확인하세요. Chrome 문서에 따르면 Statement failure matching fingerprint.가 보이는 경우 앱의 서명이 assetlinks.json과 일치하지 않는 것입니다.

터미널
adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links

Android Studio의 App Links Assistant(Tools > App Links Assistant)는 Android App Links 연결과 매니페스트를 확인합니다. 이런 용도로는 유용하지만, TWA가 전체 화면으로 열리는지는 알려주지 않습니다. 그것은 기기 테스트로만 알 수 있습니다.

고급: Android 자체의 인증 상태

Android 12 이상에서는 Android의 인증 가이드에 App Links용으로 다음 명령어가 문서화되어 있습니다. 패키지를 바꾸고 처음 두 명령어를 실행한 다음, 몇 분 기다린 후 상태를 확인하세요.

터미널
adb shell pm set-app-links --package YOUR_PACKAGE 0 all
adb shell pm verify-app-links --re-verify YOUR_PACKAGE
adb shell pm get-app-links YOUR_PACKAGE

verified는 Android의 도메인 인증 상태를 나타낼 뿐, TWA가 브라우저 UI 없이 열리는지를 뜻하지 않습니다. 1024 이상의 코드는 인증 도구별 오류이며, SHA-256이 잘못되었다는 진단이 아닙니다. TWA 자체에 대해서는 위의 Chrome 로그를 사용하세요.

지문은 일치하는데 주소창이 남는 경우

주소창이 보인다고 해서 SHA-256이 잘못되었다는 증거는 아닙니다. 위의 확인 결과가 linked: true인데도 주소창이 남아 있다면 다음 원인을 차례로 살펴보세요.

인증된 TWA에 주소창이 보이는 기타 원인
나타나는 현상 가능성 있는 원인 조치 방법
링크, 로그인 또는 리디렉션 이후에 주소창이 나타남 가능성 있는 원인인증된 출처를 벗어남 조치 방법Chrome의 다중 출처 가이드에 따르면 “사용자가 검증된 출처를 벗어나면 Custom Tab UI가 표시됩니다.” 직접 관리하는 모든 출처를 앱에 선언하고 각 출처에 assetlinks.json을 게시하세요. ID 제공업체처럼 다른 회사 도메인에 있는 로그인 페이지는 내 연결 범위 밖에 있습니다. 그 파일은 직접 게시할 수 없으므로, 그곳에서 브라우저 UI가 보이는 것은 예상된 동작입니다.
첫 화면부터 주소창이 있고, 도메인이 리디렉션됨 가능성 있는 원인시작 URL과 선언된 출처의 호스트가 다름 조치 방법실행 URL, 선언된 출처, 파일이 있는 호스트를 예를 들어 모두 www로 통일하세요. 지문이 일치했던 한 Bubblewrap 사례가 바로 이 방법으로 해결되었다는 보고가 있습니다.
Chrome에서는 전체 화면, 다른 기본 브라우저에서는 주소창 가능성 있는 원인브라우저 제공자 선택 조치 방법Chrome 빠른 시작 가이드에 따르면, 기본 브라우저가 TWA를 지원하면 기본 브라우저를 사용하고, 그렇지 않으면 TWA를 지원하는 다른 설치된 브라우저를, 그마저 없으면 Custom Tab을 사용합니다. 어떤 브라우저가 선택되었는지 보려면 adb logcat -v brief | grep -e TWAProviderPicker를 실행하세요.
네트워크가 불안정하거나 없는 상태에서 새로 설치 가능성 있는 원인인증이 실행되지 못함 조치 방법네트워크에 다시 연결하고 앱을 다시 여세요. 이는 커뮤니티에서 보고된 패턴이며, 문서화된 동작은 아닙니다.
Android는 verified로 보고하지만 TWA에 브라우저 UI가 보임 가능성 있는 원인Android의 확인과 브라우저의 확인은 별개 조치 방법위의 logcat 명령어로 브라우저의 출처 인증 메시지를 확인하세요. 이 메시지가 설명하는 것은 Android 상태가 아니라 TWA 결과입니다.
앱이 브라우저에서 실행된다는 짧은 메시지가 뜬 후 전체 화면으로 전환됨 가능성 있는 원인지속적인 주소창이 아니라 브라우저 알림일 수 있음 조치 방법연결 실패로 판단하기 전에 정확한 문구와 표시되는 시간을 기록하세요. 이 증상은 커뮤니티에서 보고된 것이며 Google이 문서화하지 않았습니다.

수정한 파일이 적용되기까지 걸리는 시간

Google은 TWA에 대해 단일한 대기 시간을 공개하지 않습니다. 여러 캐시가 관여하고 각각 고유한 규칙이 있기 때문입니다.

  • 내 서버나 CDN이 아직 이전 파일을 제공하고 있을 수 있습니다. 캐시를 삭제하고 curl로 실제 응답을 확인하세요.
  • Digital Asset Links API는 각 응답이 유효한 기간을 maxAge 필드에 표시합니다.
  • Android App Links는 별도의 타이밍을 따릅니다. Android의 인증 가이드에 따르면 Android 15 이상에서는 변경 사항이 모든 기기에 반영되기까지 최대 7일이 걸릴 수 있으며, Android 14 이하에서는 일반적으로 앱을 설치하거나 업데이트할 때 파일을 가져옵니다.
  • 브라우저가 자체 상태를 보관하고 있을 수 있습니다. 한 개발자는 Chrome 데이터를 삭제한 후 해결되었다고 보고했습니다.

따라서 캐시를 삭제하고, 실제 파일을 확인한 다음, Google Play에서 다시 설치하세요. 테스트 기기에서는 새로 설치하거나 브라우저 데이터를 삭제하면 캐시된 상태가 원인인지 배제할 수 있습니다. 이는 진단 단계일 뿐, 모든 사용자에게 요청할 일은 아닙니다. 정해진 시간을 기준으로 계획을 세우지 마세요.

거부, 검토 및 비공개 테스트

assetlinks.json이 없거나 잘못되었다는 것 자체가 거부 사유로 문서화되어 있지는 않습니다. 문서에 설명된 것은 브라우저 UI가 있는 Custom Tab으로 대체되는 동작입니다. 검토는 별개의 문제입니다. Google Play의 기능 정책에는 “비정상 종료, 강제 종료, 멈춤 등 정상적으로 작동하지 않는 앱은 허용되지 않습니다”라고 되어 있으며, 이는 연결 상태와 관계없이 적용됩니다. 올바른 지문은 주소창 문제를 해결할 뿐 검토 결과를 결정하지는 않습니다. 거부 통지를 받았다면 이메일에 명시된 정책부터 시작하세요.

일부 오래된 글에는 품질 검사를 통과하지 못한 TWA를 Chrome이 비정상 종료시킨다고 나와 있습니다. Chromium은 2023년 5월 4일에 해당 QualityEnforcer 코드를 제거했으므로, 이 조언은 현재 브라우저의 동작이 아니라 과거의 이야기로 여기세요.

거부 통지를 받았다면 통지에 적힌 사유를 기준으로 대응하세요. Broken Functionality 거부 글에서 가장 흔한 기능 관련 통지를 단계별로 설명합니다. 주소창 하나 때문에 TWA를 WebView로 다시 만들지 마세요. AI 빌더로 만든 앱이라면 바이브 코딩 앱을 Google Play에 게시하기에서 프로젝트부터 Play 출시까지 전체 과정을 다룹니다.

새 개인 계정으로 TWA 테스트하기

2023년 11월 13일 이후에 만든 개인 개발자 계정은 지금도 프로덕션 액세스를 신청하기 전에 최근 14일 이상 지속적으로 테스트에 참여하겠다고 선택한 12명 이상의 테스터와 함께 비공개 테스트를 진행해야 합니다. 이 테스터들은 Play에서 서명한 빌드를 설치하며, 바로 그곳에서 이 버그가 나타납니다. PrimeTestLab은 실제 테스터 12명 이상을 $19.99부터 제공하며(서비스 수수료 5% 추가), 테스트를 모두 마친 후에도 Google이 프로덕션 액세스를 승인하지 않으면 무료 재테스트 또는 전액 환불 중에서 선택할 수 있습니다. 테스터 12명 서비스의 진행 방식 보기.

자주 묻는 질문

Play 앱 서명을 사용할 때 assetlinks.json에는 어떤 SHA-256을 넣어야 하나요?

Play Console의 Play 앱 서명 페이지에 표시되는 앱 서명 키 인증서의 SHA-256입니다. 이 인증서가 사용자들이 Google Play에서 설치하는 빌드에 서명합니다. 직접 설치하는 빌드도 확인되기를 원할 때만 업로드 지문이나 디버그 지문을 함께 추가하세요.

TWA가 Android Studio에서는 정상인데 Google Play에서 설치하면 왜 주소창이 보이나요?

직접 설치하는 빌드는 디버그 키나 업로드 키로 서명되지만, Google Play는 앱 서명 키로 서명한 앱을 배포합니다. 웹사이트에 로컬 인증서만 등록되어 있으면 Play 설치본의 인증이 실패하고, Chrome은 주소창이 있는 Custom Tab으로 대체합니다.

현재 Play Console에서 앱 서명 키는 어디에 있나요?

Protected with Play 아래에 있습니다. 현재 Google은 두 가지 경로를 안내합니다. Play Store distribution에서 Go to Play app signing으로 가는 경로와, Play Store protection에서 Manage Play app signing으로 가는 경로입니다. 앱 서명 키 인증서 섹션에서 SHA-256 인증서 지문을 복사하세요.

assetlinks.json에 SHA-256 지문을 여러 개 넣을 수 있나요?

예. sha256_cert_fingerprints 필드는 배열이며, 예를 들어 디버그 빌드와 Play에서 서명한 빌드처럼 같은 패키지에 대해 여러 지문을 지원합니다. 애플리케이션 ID가 다르면 별도의 구문이 필요합니다.

assetlinks.json을 수정한 후 주소창이 사라지기까지 얼마나 걸리나요?

Google은 TWA에 대해 단일한 대기 시간을 공개하지 않습니다. CDN 캐시를 삭제하고, 실제 파일이 리디렉션 없이 HTTP 200과 JSON으로 응답하는지 확인한 다음, Google Play에서 앱을 다시 설치하세요. 테스트 기기에서는 브라우저 데이터를 삭제하면 캐시된 상태가 원인인지 배제할 수 있습니다. Android App Links 인증은 별도의 타이밍을 따르며, Android 15 이상에서는 최대 7일이 걸릴 수 있습니다.

assetlinks.json이 잘못되면 Google Play에서 TWA가 거부되나요?

현재 문서에 설명된 것은 자동 거부가 아니라 브라우저 UI가 있는 Custom Tab으로 대체되는 동작입니다. Play 검토는 앱이 제대로 작동하고 실질적인 사용 경험을 제공하는지를 판단하므로, 올바른 파일은 주소창 문제를 해결하지만 그것만으로 검토 결과가 결정되지는 않습니다.

비공개 테스터에게도 주소창이 보이나요?

예, 웹사이트에 앱 서명 인증서가 없다면 보입니다. 비공개 테스터는 Play에서 서명한 빌드를 설치하기 때문입니다. 사이드로드한 APK가 아니라 이 설치본으로 수정 사항을 테스트하고, 내부 앱 공유 링크는 다른 키로 서명된다는 점을 기억하세요.

Digital Asset Links 확인은 통과했습니다. 왜 아직 주소창이 보이나요?

무엇이 통과했는지 확인하세요. 구문 목록에는 다른 패키지나 인증서에 대한 연결이 들어 있을 수 있으며, 정확한 확인도 내가 입력한 값만 테스트합니다. 설치된 빌드가 그 ID를 사용하는지 확인하고, 앱이 실제로 도착하는 출처를 따라가 보고, 브라우저의 인증 로그를 확인하세요. Android의 App Links 상태는 별개의 신호입니다.

www 리디렉션이나 로그인 페이지 때문에 주소창이 다시 나타날 수 있나요?

예. TWA 인증은 출처 단위로 적용되며, 검증된 출처를 벗어나면 브라우저 UI가 표시됩니다. 리디렉션 후 앱이 어디에 도착하는지 확인하고, 직접 관리하는 모든 출처를 앱과 각 출처의 assetlinks.json 양쪽에 구성하세요. 다른 회사 도메인에 있는 로그인 페이지는 내 파일의 적용 범위가 아니며, 그 연결은 직접 게시할 수 없습니다.

bubblewrap validate가 Play 서명 지문을 확인하나요?

아니요. Bubblewrap 문서에 따르면 validate는 PWA를 품질 기준에 따라 검사하는 기능이므로, 통과했다고 해서 Play에서 설치한 앱이 인증서 목록과 일치하는지는 알 수 없습니다. fingerprint 명령어로 assetlinks.json을 준비해 게시하고, 정확한 도메인, 패키지, 인증서를 확인한 다음, Play 설치본을 테스트하세요.

주소창을 없애려면 TWA를 WebView로 바꿔야 하나요?

첫 단계로는 아닙니다. 설치된 앱의 서명 ID, 웹사이트가 파일을 제공하는 방식, 앱이 여는 출처를 바로잡은 다음 다시 테스트하세요. 실제 문제가 지원되지 않는 브라우저 동작, 인증, 또는 특정 정책 통지라면, 다른 래퍼가 앱에 맞는지 결정하기 전에 그 문제를 따로 조사하세요.

핵심 정리

핵심 정리

Play에서 설치한 TWA에 주소창이 보인다면 한 가지 비교부터 시작합니다. 설치된 빌드에 서명한 인증서와 웹사이트 assetlinks.json의 지문을 비교하는 것입니다. Play 앱 서명에서 앱 서명 키 SHA-256을 복사하고, 정확한 출처에 엄격한 JSON을 HTTP 200 직접 응답으로 게시하고, 정확한 패키지와 인증서를 확인한 다음, 테스터가 설치할 빌드로 테스트하세요. 지문이 이미 일치한다면 무엇이든 다시 빌드하기 전에 출처, 리디렉션, 브라우저, 캐시를 살펴보세요.

Play Console 메뉴 이름은 이 페이지에서 가장 빨리 바뀌는 정보입니다. 위의 경로가 내 Console과 더 이상 일치하지 않는다면, Protected with Play 아래에서 Play 앱 서명(Play app signing)을 찾거나 Console에서 app signing을 검색하세요.

Kefayatullah Khadem - Software Engineer & Google Play Publishing Specialist

작성자

Kefayatullah Khadem

Software Engineer & Google Play Publishing Specialist

Kefayatullah Khadem은 확장 가능한 애플리케이션을 8년 넘게 만들어 온 소프트웨어 엔지니어입니다. 많은 인디 개발자가 Google Play 비공개 테스트 요구사항에서 막히는 모습을 본 뒤, PrimeTestLab에서 그 요구사항을 통과하도록 돕고 있습니다. 지금까지 120개 이상의 국가에서 Android 앱 12,100+개가 관리형 비공개 테스트를 마치도록 지원했고, 관리형 테스트 완료율은 99.9%입니다. 개발자의 출시를 돕지 않을 때는 Google Play 정책, 앱 거부 패턴, 비공개 테스트 과정에 관한 글을 씁니다.

12,100+ 테스트 앱
99.9% 테스트 완료율
120+ 국가
4.9/5 평점

TWA 비공개 테스트

지문 문제는 해결했습니다. 이제 14일 테스트를 진행하세요.

실제 테스터 12명 이상이 실제 Android 휴대폰에 Play에서 서명한 빌드를 설치하고, 14일 내내 테스트 참여 상태를 유지합니다.

$19.99부터 · 서비스 수수료 5% 추가

4~6시간 내 테스트 시작 · 120+개국 · 무료 재테스트 또는 전액 환불

테스터 12명 받기, $19.99부터 WhatsApp