我试图找出游戏商店为什么不接受我的即时应用版本。我已经成功地向测试人员部署了一个 Alpha 常规应用程序版本,因为它是发布即时应用程序的先决条件。我正在尝试部署开发发布即时应用。我究竟做错了什么?我试图尽可能多地添加细节。
我是否需要在以下链接中使用数字资产链接API服务来生成即时应用程序,还是需要其他内容? https://console.developers.google.com/apis/api/digitalassetlinks.googleapis.com/overview
将即时应用内容上传到播放控制台时出现以下错误:
您的网站' example.com'没有通过数字链接 资产链接协议到您的应用程序。请通过网站链接您的网站 数字资产链接协议到您的应用程序。
我有点困惑的一点是,为什么当我点击链接并验证时收到错误消息" 添加资产报表失败。 "如下图所示:
我注意到当我点击链接并验证按钮时,它会修改 base 中的strings.xml文件并添加以下字符串:<string name="asset_statements" translatable="false">[{\n \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://example.com\",\n }\n}]</string>
我在应用程序标记下的 base , checklist 和 advisor 的清单中有以下内容:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
项目描述和结构:
应用说明:这是一个概念验证应用。可安装的应用程序将使用两个按钮打开mainfeature活动,这些按钮将在您单击时显示清单或顾问程序活动。有两个即时应用程序,instantapp-checklist进入清单活动,而instantapp(顾问)进入顾问活动。
我的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>
自我检查已完成:
答案 0 :(得分:2)
在 assetlinks.json 文件中,字段 package_name 设置为 blah.blah1.blah2.myappname.checklist 。
但是,上面提到的是可安装应用的ID 是 blah.blah1.blah2.myappname 。这意味着 AndroidManifest.xml 中的 package_name 设置为 blah.blah1.blah2.myappname 。
他们应该匹配。必须将 blah.blah1.blah2.myappname 添加到服务器上的 assetlinks.json 。
在 strings.xml 中,更改asset_statements:
<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>
以下是一些帮助我找到解决方案的其他说明:
adb shell am start -a android.intent.action.VIEW -d "https://example.com/checklist/"
答案 1 :(得分:0)
这很奇怪,我遇到了同样的问题。解决方案很简单;
如@ olearyj234所述,“链接和验证”按钮将字符串添加到string.xml的末尾。
我只是删除了string.xml中的新字符串,然后单击“链接和验证”按钮。