문 목록은 잘 알려진 위치에 있는 JSON 인코딩된 파일 또는 스니펫입니다.
명령문 목록 위치
이 목록이 저장되어야 하는 위치를 알아보려면 명령문 목록 만들기를 참고하세요.
구문
명령문 목록 또는 스니펫은 JSON 객체로 하나 이상의 웹사이트 또는 앱 문의 JSON 배열입니다. 이러한 문은 순서와 관계없이 사용할 수 있습니다. 일반적인 구문은 다음과 같습니다.
[ { "relation": ["relation_string "], "target": {target_object } } , ... ]
- 관계
- 타겟에 관해 선언되는 관계를 설명하는 하나 이상의 문자열 배열. 정의된 관계 문자열 목록을 참고하세요. 예:
delegate_permission/common.handle_all_urls
- target
- 이 문장이 적용되는 타겟 애셋입니다. 사용 가능한 대상 유형:
<ph type="x-smartling-placeholder">
- </ph>
-
웹사이트 타겟 "target": { "namespace": "web", "site": "
site_root_url " }- 네임스페이스
- 웹사이트의 경우
web
여야 합니다. - 사이트
- 문의 타겟인 사이트의 URI로,
http[s]://<hostname>[:<port>]
형식입니다. 여기서 <hostname>는 정규화되어야 하며, HTTP의 경우 포트 80을 사용하거나 HTTPS의 경우 포트 443을 사용할 때는 <port>를 생략해야 합니다. 웹사이트 타겟은 루트 도메인만 될 수 있습니다. 특정 하위 디렉터리로 제한할 수 없습니다. 이 루트 아래의 모든 디렉터리가 일치하게 됩니다. 하위 도메인은 일치하는 것으로 간주해서는 안 됩니다. 즉, 명령어 파일이 www.example.com에 호스팅된 경우 www.puppies.example.com은 일치하는 것으로 간주해서는 안 됩니다. 웹사이트 타겟 매칭에 관한 규칙 및 예시는 타겟 문서를 참고하세요. 예:http://www.example.com
-
Android 앱 타겟 "target": { "namespace": "android_app", "package_name": "
fully_qualified_package_name ", "sha256_cert_fingerprints": ["cert_fingerprint "] }- 네임스페이스
- Android 앱의 경우
android_app
이어야 합니다. - package_name
- 이 문이 적용되는 앱의 정규화된 패키지 이름입니다. 예:
com.google.android.apps.maps
- sha256_cert_fingerprints
- 이 문이 적용되는 앱의 인증서의 대문자 SHA265 지문입니다. 다음과 같이
openssl
또는 Javakeytool
를 사용하여 이를 계산할 수 있습니다. <ph type="x-smartling-placeholder">- </ph>
openssl x509 -in $CERTFILE -noout -fingerprint -sha256
keytool -printcert -file $CERTFILE | grep SHA256
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
.앱에 Play 앱 서명을 사용 중인 경우
keytool
또는openssl
를 로컬에서 실행하여 생성된 인증서 지문은 일반적으로 사용자 기기의 인증서 지문과 일치하지 않습니다. Play Console 개발자 계정의 Release > Setup > App Integrity에서 앱에 Play 앱 서명을 사용 중인지 확인할 수 있습니다. Play 앱 서명을 사용 중인 경우 동일한 페이지에서 앱에 적합한 디지털 애셋 링크 JSON 스니펫도 확인할 수 있습니다.
-
문 목록 예
다음은 웹사이트와 앱에 관한 명령문이 모두 포함된 웹사이트 명령문 목록의 예입니다. http://example.digitalassetlinks.org/.well-known/assetlinks.json
수십 개 이상의 문으로 확장
경우에 따라 사용자는 여러 대상에 대해 여러 개의 다른 문을 작성하거나 여러 사용자의 문을 동일한 대상 집합에 대해 실행해야 할 수 있습니다. 예를 들어 웹사이트는 국가별 여러 최상위 도메인에서 사용할 수 있으며 동일한 모바일 앱에 대해 설명하는 것이 좋습니다
이러한 경우에는 include 문이 유용할 수 있습니다. 이 메커니즘을 사용하면 여러 다른 사용자의 포인터를 하나의 중앙 위치에 설정할 수 있으며, 이 위치는 모든 사용자의 문을 정의합니다.
예를 들어 중앙 위치가 `https://example.com/includedstatements.json`이어야 합니다. 이 파일은 위의 예제와 동일한 콘텐츠를 포함하도록 구성된 텍스트입니다.
웹사이트에서 include 파일로 포인터를 설정하려면 다음 안내를 따르세요. `https://example.com/.well-known/assetlinks.json` 을 다음으로 변경합니다.
[{ "include": "https://example.com/includedstatements.json" }]
Android 앱에서 include로 포인터를 설정하려면 다음 단계를 따르세요. 파일에서 `res/values/strings.xml` 을 다음과 같이 변경합니다.
<resources> ... <string name="asset_statements"> [{ \"include\": \"https://example.com/includedstatements.json\" }] </string> </resources>
추가 정보
사양 문서에서 문장 목록 형식과 기본 개념에 관한 자세한 설명을 확인할 수 있습니다.