문 목록 구문

문 목록은 잘 알려진 위치에 있는 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
  • "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 또는 Java keytool를 사용하여 이를 계산할 수 있습니다. <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>

추가 정보

사양 문서에서 문장 목록 형식과 기본 개념에 관한 자세한 설명을 확인할 수 있습니다.