我创建了一个即时应用。我将其上传到我的Google控制台,我收到了此错误消息。
www.kochchy.cz网站尚未与您的申请相关联 通过数字资产链接协议。链接应用程序站点 与数字资产链接。
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.kochchy.instantapptest.app",
"sha256_cert_fingerprints":["A4:A6:74:15:F1:3E:38:3F:93:0F:EF:E3:A6:86:8E:7C:25:45:E8:80:5B:5E:35:70:49:20:DB:F8:CB:D4:FC:E0"]
}
}]
apks,instant和installable都使用相同的id: com.kochchy.instantapptest.app (每个都在自己的模块清单中定义)
我的基础模块清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kochchy.instantapptest">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="default-url"
android:value="https://www.kochchy.cz" />
<intent-filter 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="https" />
<data android:scheme="http" />
<data android:host="www.kochchy.cz" />
<data android:pathPattern="/menu" />
</intent-filter>
</activity>
</application>
</manifest>
------编辑------
我从谷歌即时应用示例中制作了新项目:https://github.com/googlesamples/android-instant-apps/tree/master/hello
相同的谷歌控制台错误。我想我的网页设置存在问题,而不是应用程序。
www.kochchy.cz网站尚未与您的申请相关联 通过数字资产链接协议。链接应用程序站点 使用Digital Assets Link。
答案 0 :(得分:4)
所以对我来说,也许对某些人来说这很明显是使用了错误的Sha键。 您需要做的是进入https://play.google.com/apps/publish/控制台
转到发布管理,然后转到“应用程序签名”页面。从那里复制SHA256密钥。
转到https://developers.google.com/digital-asset-links/tools/generator,然后在其中输入sha键,URL和包名。
将此文件上传到https://example.com/.well-know/assetlinks.json
发布您的即时应用
答案 1 :(得分:3)
在您的json文件中,字段 package_name 设置为 com.kochchy.instantapptest.app 。
但是,AndroidManifest.xml中的包名称设置为 com.kochchy.instantapptest 。
他们应该匹配。
修改强>
您的结构与Google推荐的结构非常不同。
您不必复制代码和资源。相反,创建第三个模块(让我们称之为基础)作为基本功能模块,并将所有代码和资源移动到那里。确保它的build.gradle包含以下行:
apply plugin: 'com.android.feature'
android {
baseFeature true
...
}
dependencies {
application project(':app')
...
}
在你的应用的build.gradle中,确保你有以下几行:
apply plugin: 'com.android.application'
...
dependencies {
implementation project(':base')
}
最后,在你的instantapp的build.gradle中:
apply plugin: 'com.android.instantapp'
...
dependencies {
implementation project(':base')
}
您可能需要进行进一步的更改,但这应该是一个好的开始。我强烈建议您查看this page,特别是“基本即时应用程序的结构”部分。
答案 2 :(得分:2)
"package_name": "com.kochchy.instantapptest.app"
在这里,您应该从可安装应用程序获取您的应用程序ID,而不是来自即时应用程序清单
defaultConfig {
applicationId "com.example.yourappid"
}
答案 3 :(得分:1)
请尝试按照以下步骤操作,并验证生成的文件是否与您的文件相同:
工具 - &gt; App Links Assistant - &gt; (单击按钮)打开数字资产链接文件生成器
完成所有操作后,点击生成数字资产链接文件。
单击“保存文件”进行下载。
将assetlinks.json文件上传到您的网站,并在https://www.exemple.com/.well-known/assetlinks.json上为所有人提供读取权限。
点击链接并验证以确认您已将正确的数字资产链接文件上传到正确的位置。
参考:https://developer.android.com/studio/write/app-link-indexing.html#associatesite
答案 4 :(得分:1)
sha256_cert_fingerprints的问题。应用程序应用程序唱歌启用,所以我从谷歌播放控制台复制sha并将其放入asserlink.json文件,它的工作原理。
https://d5rwdr23d4fqx.cloudfront.net/.well-known/assetlinks.json
答案 5 :(得分:0)
检查assetlinks.json。具有文件权限的文件可以公开执行
默认情况下,它只能对public可读。 然后确保是否使用Play控制台中提供的ssh键启用Google Play应用签名。
答案 6 :(得分:0)
就我而言,它是以下内容:https://stackoverflow.com/a/44549183/8656558
如果您已正确完成所有其他操作,请考虑确保添加到Web服务器的文件具有正确的编码(在我的情况下,没有BOM)。谢谢,Visual Studio! :/