Android即时应用程序-播放控制台发布/部署错误,DAL(数字资产链接)未链接

Android即时应用程序-播放控制台发布/部署错误,DAL(数字资产链接)未链接,android,applinks,android-instant-apps,google-play-console,digital-assets-links,Android,Applinks,Android Instant Apps,Google Play Console,Digital Assets Links,我正试图弄明白为什么play store不接受我的即时应用程序构建。我已经成功地向测试人员部署了一个Alpha常规应用程序版本,因为它是发布即时应用程序的先决条件。我正在尝试部署一个开发版发布即时应用程序。我做错了什么?我试图尽可能多地增加细节 我是否需要在生产即时应用程序的以下链接中使用Digital Asset Link API服务,还是用于其他用途? 将即时应用程序版本上载到play console时出现以下错误: 您的网站“example.com”尚未通过数字链接 资产链接协议到您的应

我正试图弄明白为什么play store不接受我的即时应用程序构建。我已经成功地向测试人员部署了一个Alpha常规应用程序版本,因为它是发布即时应用程序的先决条件。我正在尝试部署一个开发版发布即时应用程序。我做错了什么?我试图尽可能多地增加细节

我是否需要在生产即时应用程序的以下链接中使用Digital Asset Link API服务,还是用于其他用途?

将即时应用程序版本上载到play console时出现以下错误:

您的网站“example.com”尚未通过数字链接 资产链接协议到您的应用程序。请通过 数字资产链接协议到您的应用程序

有一件事让我有点困惑,那就是为什么当我单击链接并验证a是否收到错误消息“添加资产报表失败”。如下图所示: 我注意到,当我单击链接并验证按钮时,它修改了base中的strings.xml文件,并添加了以下字符串:
[{\n\“relation\”:[\“delegate\u permission/common.handle\u all\u url\”],\n\“target\”:{\n\“namespace\”:“web\”,\n\“site\:”https://example.com\“,\n}\n}]

我在应用程序标签下的base、检查表和advisor清单中有以下内容:

项目描述和结构:

应用程序描述:这是一个概念验证应用程序。可安装的应用程序将通过两个按钮打开mainfeature活动,单击该按钮时,您将进入检查表或advisor活动。有两个即时应用程序,instantapp checklist转到checklist活动,instantapp(advisor)转到advisor活动

  • 共有3个功能模块:mainfeature、checklist、advisor
  • 有两个即时应用程序:instantapp清单、instantapp(顾问)

  • 我的可安装应用的捆绑包是:blah.blah1.blah2.myappname
  • 我的清单即时应用程序的捆绑id是:blah.blah1.blah2.myappname.checklist
  • 我的advisor即时应用程序的捆绑id为:blah.blah1.blah2.myappname.advisor
我的assetlinks.json是:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "blah.blah1.blah2.myappname.checklist",
    "sha256_cert_fingerprints":
    ["AA:...:53"]
  }
},
{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "blah.blah1.blah2.myappname.advisor",
    "sha256_cert_fingerprints":
    ["AA:...:53"]
  }
}]
在我的清单清单中,活动标签内有以下内容:

        <meta-data
            android:name="default-url"
            android:value="https://example.com/checklist.html"/>

        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter android:order="1"
                       android:autoVerify="true">
            <action android:name="android.intent.action.VIEW"/>

            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>

            <data
                android:scheme="http"
                android:host="example.com"
                android:pathPattern="/checklist.html"/>
            <data android:scheme="https"/>
        </intent-filter>



assetlinks.json文件中,字段package_name设置为blah.blah1.blah2.myappname.checklist

但是,上面提到的是,可安装应用程序的id是blah.blah1.blah2.myappname。这意味着AndroidManifest.xml中的包名称被设置为blah.blah1.blah2.myappname

他们应该匹配。blah.blah1.blah2.myappname必须添加到服务器上的AssetLink.json中

在strings.xml中,更改asset_语句:

<string name="asset_statements" translatable="false">[{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"web\",\n    \"site\": \"https://qaapps.cio.ny.gov/apps/sandbox/james/hesc/checklist.html\",\n  }\n},{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"web\",\n    \"site\": \"https://qaapps.cio.ny.gov/apps/sandbox/james/hesc/advisor.html\",\n  }\n}]</string>
[{\n\“关系\]:[\“委托权限/公用。处理所有URL\”],\n\“目标\]:{\n\“命名空间\:\”web \“,\n\“站点\:\”https://qaapps.cio.ny.gov/apps/sandbox/james/hesc/checklist.html\“,\n}\n},{\n\“关系\:[\“委托权限/公用.处理所有URL\”],\n\“目标\:{\n\”命名空间\“:\“web\”,\n\“站点\”:”\"https://qaapps.cio.ny.gov/apps/sandbox/james/hesc/advisor.html\“,\n}\n}]
以下是帮助我找到解决方案的一些其他注意事项:

  • 我使用以下命令行测试即时应用程序是否工作:
    adb shell am start-a android.intent.action.VIEW-d“https://example.com/checklist/“
  • 在设备上,我进入“设置>谷歌>即时应用”,单击开关卸载/关闭即时应用,然后再次单击该开关将其重新打开。还进入“Chrome设置”(设置>隐私>清除浏览数据)以清除时间范围内的所有数据
  • 在Chrome中键入即时应用程序的url时,它只会打开网站,而不会打开即时应用程序。如果我在网站中单击指向即时应用程序的链接,它会打开即时应用程序而不是网站

这很奇怪,我也有同样的问题。解决方法很简单

正如@olearyj234提到的,Link and Verify按钮将字符串添加到string.xml的末尾


我只是简单地删除了string.xml中的新字符串,并单击了“链接并验证”按钮。

您是否有可能在“[App]>Release management>App Signing”下选择“Google Play App Signing”(不,您不需要数字资产链接API)否则,你能提交一个bug,然后链接到这里吗?这将对所有人都有帮助,谢谢!@TWL我没有选择Google Play应用,这意味着可能存在一些站点/密钥/清单不匹配的情况,但如果不在这里公开这些信息,就很难检查出来。我建议使用Google的问题跟踪程序,因为调试可能涉及sharing这是私人数据。刚刚注意到!这是因为您的
assetlinks.json
中的
package_name
。包名应该是应用程序本身的包名:
blah.blah1.blah2.myappname
为什么您在这里添加了不同的URL?除了assetlink.json之外?@olearyj234对于我来说也是同样的问题如何解决这个问题你能给我明确的指导吗