با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
لیست بیانیه یک فایل یا قطعه کد شده با JSON در یک مکان شناخته شده است.
محل لیست بیانیه
برای اینکه بدانید این لیست باید در کجا ذخیره شود، به ایجاد فهرست بیانیه مراجعه کنید.
نحو
لیست بیانیه یا قطعه شامل یک آرایه JSON از یک یا چند بیانیه وب سایت یا برنامه به عنوان اشیاء JSON است. این اظهارات می توانند به هر ترتیبی باشند. در اینجا نحو کلی آمده است:
آرایه ای از یک یا چند رشته که رابطه اعلان شده در مورد هدف را توصیف می کند. لیست رشته های رابطه تعریف شده را ببینید. مثال:delegate_permission/common.handle_all_urls
هدف
دارایی هدف که این بیانیه در مورد آن اعمال می شود. انواع هدف موجود:
URI سایتی که هدف عبارت است، در قالب http[s]://< hostname >[:< port >] ، که در آن <hostname> کاملاً واجد شرایط است، و <port> باید هنگام استفاده حذف شود پورت 80 برای HTTP یا پورت 443 برای HTTPS. یک وب سایت هدف فقط می تواند یک دامنه ریشه باشد. شما نمی توانید به یک زیر شاخه خاص محدود کنید. همه دایرکتوری های زیر این ریشه مطابقت دارند. زیردامنه ها را نباید منطبق دانست: یعنی اگر فایل بیانیه در www.example.com میزبانی می شود، آنگاه www.puppies.example.com نباید مطابقت در نظر گرفته شود. برای قوانین و مثالهایی درباره تطبیق هدف وبسایت، به مستندات اهداف مراجعه کنید. مثال:http://www.example.com
نام بسته کاملاً واجد شرایط برنامه که این عبارت برای آن اعمال می شود. مثال:com.google.android.apps.maps
sha256_cert_prints
اثر انگشت بزرگ SHA265 گواهی برای برنامه ای که این عبارت برای آن اعمال می شود. همانطور که در اینجا نشان داده شده است، می توانید این را با استفاده از openssl یا keytool جاوا محاسبه کنید:
اگر از Play App Signing برای برنامه خود استفاده میکنید، اثر انگشت گواهی که با اجرای keytool یا openssl به صورت محلی تولید میشود معمولاً با دستگاههای کاربران مطابقت ندارد. میتوانید تأیید کنید که آیا از Play App Signing برای برنامه خود در حساب برنامهنویس Play Console خود در Release > Setup > App Integrity استفاده میکنید. اگر این کار را انجام دهید، قطعه JSON پیوند دارایی دیجیتال صحیح را نیز در همان صفحه برای برنامه خود خواهید یافت.
در برخی موارد، یک مدیر ممکن است بخواهد اظهارات مختلفی در مورد اهداف مختلف بیان کند، یا ممکن است نیاز به صدور بیانیه هایی از مدیران مختلف برای یک مجموعه از اهداف باشد. برای مثال، یک وبسایت ممکن است در دامنههای سطح بالای مختلف در هر کشور در دسترس باشد، و همه آنها ممکن است بخواهند در مورد یک برنامه تلفن همراه اظهار نظر کنند.
برای این مواقع، شامل کردن عبارات می تواند مفید باشد. با استفاده از این مکانیسم، میتوانید نشانگرها را از بسیاری از اصلیهای مختلف در یک مکان مرکزی تنظیم کنید، که دستورات را برای همه اصلیها تعریف میکند.
برای مثال، ممکن است تصمیم بگیرید که مکان مرکزی «https://example.com/includedstatements.json» باشد. این فایل را می توان طوری پیکربندی کرد که حاوی همان محتوای مثال های بالا باشد.
برای تنظیم یک اشاره گر از یک وب سایت به فایل شامل، «https://example.com/.well-known/assetlinks.json» را به:
تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eA statement list is a JSON file that describes relationships between websites and Android apps, used for features like Digital Asset Links.\u003c/p\u003e\n"],["\u003cp\u003eThe list consists of statements with "relation" and "target" fields, where "target" can be a website or an Android app.\u003c/p\u003e\n"],["\u003cp\u003eWebsite targets are specified using a "site" field with a URL, while Android app targets use "package_name" and "sha256_cert_fingerprints".\u003c/p\u003e\n"],["\u003cp\u003eFor many statements, use "include" to point to a central file to avoid redundancy and simplify management.\u003c/p\u003e\n"],["\u003cp\u003eDetailed syntax and examples are provided to guide you in creating and using statement lists effectively.\u003c/p\u003e\n"]]],[],null,["# Statement List Syntax\n\nA statement list is a [JSON-encoded](http://json.org/) file or snippet in a well-known location.\n\nLocation of statement list\n--------------------------\n\nSee [Creating a statement list](/digital-asset-links/v1/create-statement) to learn where this list should be stored.\n\nSyntax\n------\n\nThe statement list or snippet consists of\na JSON array of one or more website or app statements as JSON objects. These statements can be in any order. Here is the general syntax: \n\n```\n[\n {\n \"relation\": [\"relation_string\"],\n \"target\": {target_object}\n } , ...\n]\n```\n\nrelation\n: An array of one or more strings that describe the relation being declared about the target. See the list of [defined relation strings](/digital-asset-links/v1/relation-strings). **Example:** `delegate_permission/common.handle_all_urls`\n\ntarget\n: The target asset to whom this statement applies. Available target types:\n\n - **Website target** \n\n ```javascript\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"\u003cvar translate=\"no\"\u003esite_root_url\u003c/var\u003e\"\n }\n ```\n\n namespace\n : Must be `web` for websites.\n\n site\n : URI of the site that is the target of the statement, in the format `http[s]://\u003c`\u003cvar translate=\"no\"\u003ehostname\u003c/var\u003e`\u003e[:\u003c`\u003cvar translate=\"no\"\u003eport\u003c/var\u003e`\u003e]`, where \u003cvar translate=\"no\"\u003e<hostname>\u003c/var\u003e is fully-qualified, and \u003cvar translate=\"no\"\u003e<port>\u003c/var\u003e must be omitted when using port 80 for HTTP, or port 443 for HTTPS. A website target can only be a root domain; you cannot limit to a specific subdirectory; all directories under this root will match. Subdomains should not be considered to match: that is, if the statement file is hosted on www.example.com, then www.puppies.example.com should not be considered a match. For rules and examples about website target matching, see [the targets documentation](/digital-asset-links/v1/create-statement#targets). **Example:** `http://www.example.com`\n - **Android app target** \n\n ```javascript\n \"target\": {\n \"namespace\": \"android_app\",\n \"package_name\": \"\u003cvar translate=\"no\"\u003efully_qualified_package_name\u003c/var\u003e\",\n \"sha256_cert_fingerprints\": [\"\u003cvar translate=\"no\"\u003ecert_fingerprint\u003c/var\u003e\"]\n }\n ```\n\n namespace\n : Must be `android_app` for Android apps.\n\n package_name\n : The fully-qualified package name of the app that this statement applies to. **Example:** `com.google.android.apps.maps`\n\n sha256_cert_fingerprints\n : The **uppercase SHA265 fingerprint** of the certificate for the app that this\n statement applies to. You can compute this using [`\n openssl`](https://www.openssl.org/) or Java `keytool` as shown here:\n - `openssl x509 -in $CERTFILE -noout -fingerprint -sha256`\n - `keytool -printcert -file $CERTFILE | grep SHA256`\n\n\n **Example:** `[\"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\"]`.\n\n If you're using [Play App Signing](https://support.google.com/googleplay/android-developer/answer/9842756)\n for your app, then the certificate fingerprint produced by running `keytool`\n or `openssl` locally usually doesn't match the one on\n users' devices. You can verify whether you're using Play App Signing for your app in your\n [Play Console](https://play.google.com/console/) developer account\n under **Release \\\u003e Setup \\\u003e App Integrity**; if you do,\n then you'll also find the correct Digital Asset Links JSON snippet for your app on the same\n page.\n\nExample statement list\n----------------------\n\nHere is an example website statement list that contains statements about both websites and apps: \u003chttp://example.digitalassetlinks.org/.well-known/assetlinks.json\u003e\n\nScaling to dozens of statements or more\n---------------------------------------\n\nIn some cases, a principal might want to make many different statements\nabout different targets, or there might be a need to issue statements from\ndifferent principals to the same set of targets. For example, a website may\nbe available on many different per-country Top Level Domains, and all of them\nmay want to make a statement about the same mobile app.\n\nFor these situations, **include statements** can be helpful.\nUsing this mechanism, you can set up pointers from many different principals to\none central location, which defines statements for all of the principals.\n| **Note:** A maximum of 10 include statements are allowed in a complete statement list tree. This means that the maximum number of files in the tree is: (10 included statement files) + (the root statement file) = 11 total.\n\nFor example, you might decide that the central location\nshould be \\`https://example.com/includedstatements.json\\`. This file can be\nconfigured to contain the same content as in the examples above.\n\nTo set up a pointer from a **web site** to the include file,\nchange \\`https://example.com/.well-known/assetlinks.json\\` to: \n\n```text\n[{\n \"include\": \"https://example.com/includedstatements.json\"\n}]\n```\n\nTo set up a pointer from an **Android app** to the include\nfile, change \\`res/values/strings.xml\\` to: \n\n```scdoc\n\u003cresources\u003e\n ...\n \u003cstring name=\"asset_statements\"\u003e\n [{\n \\\"include\\\": \\\"https://example.com/includedstatements.json\\\"\n }]\n \u003c/string\u003e\n\u003c/resources\u003e\n```\n\nMore Information\n----------------\n\nThere is a more detailed explanation of the statement list format and the underlying concepts in our [specification document](https://github.com/google/digitalassetlinks/blob/master/well-known/details.md)."]]