数字资产链接链接到我的网站
Posted
技术标签:
【中文标题】数字资产链接链接到我的网站【英文标题】:Digital Assets Link link to my website 【发布时间】:2017-11-13 20:10:46 【问题描述】:我创建了一个即时应用程序。我把它上传到我的谷歌控制台,我得到了这个错误。
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"]
]
即时和可安装的 apk 都使用相同的 id:com.kochchy.instantapptest.app(每个都在自己的模块清单中定义)
我的 base 模块清单如下所示:
<?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 网站尚未链接到您的应用程序 通过数字资产链接协议。链接申请网站 使用数字资产链接。
【问题讨论】:
我不确定您是否应该将您的证书指纹发布给全世界查看 您是否在数字资产中使用已发布的密钥库。 "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"] 应该是你的 ketstore 而不是调试一个 是的,我正在使用释放键 这里有同样的问题。使用了谷歌示例之一。改变了网址。我绝对确定 sha 证书是正确的,因为我以前使用过它进行深度链接。你解决了吗? 您可以仔细检查两件事。首先,确保你通过了这个测试:developers.google.com/digital-asset-links/tools/generator。二、确保这一步的“链接和验证”100%通过developer.android.com/studio/write/… 【参考方案1】:所以对我来说,也许这对某些人来说是显而易见的,是使用了错误的 sha 键。 你需要做的是去你的https://play.google.com/apps/publish/控制台
转到发布管理,然后转到应用签名页面。从那里复制 SHA256 密钥。
转到https://developers.google.com/digital-asset-links/tools/generator 并在此处输入 sha 密钥、url 和包名。
将此文件上传到https://example.com/.well-known/assetlinks.json
确保文件位于正确的位置:名为 .well-known
的文件夹。
发布您的免安装应用
【讨论】:
有趣的是,一位开发人员的解释与谷歌文档相比多么简单。 现在 SHA256 密钥不在应用签名页面中,而是在设置 -> 应用完整性下【参考方案2】:在您的 json 文件中,字段 package_name 设置为 com.kochchy.instantapptest.app。
但是,您的 AndroidManifest.xml 中的包名称设置为 com.kochchy.instantapptest。
它们应该匹配。
编辑
您的结构看起来与 Google 推荐的结构大不相同。
您不必复制代码和资源。相反,创建第三个模块(我们称之为 base)作为基本功能模块,并将所有代码和资源移动到那里。确保它的 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,特别是“基本免安装应用的结构”部分。
【讨论】:
对不起,我没有告诉这是我的基本清单,在我的即时应用清单中我有 com.kochchy.instantapptest.app @Kochchy 即时应用程序和可安装应用程序应共享相同的包名称,根据此常见问题解答:developer.android.com/topic/instant-apps/faqs.html。您是否尝试在您的assetlinks.json 文件中将package_name 值更改为com.kochchy.instantapptest?【参考方案3】:"package_name": "com.kochchy.instantapptest.app"
您的应用程序 ID 应该来自可安装应用程序,而不是免安装应用程序清单
defaultConfig
applicationId "com.example.yourappid"
【讨论】:
两者,即时和可安装使用相同的 id:com.kochchy.instantapptest.app【参考方案4】:尝试按照以下步骤操作并验证生成的文件是否与您的相同:
工具 -> 应用链接助手 ->(点击按钮)打开数字资产链接文件生成器
完成所有操作后,点击生成数字资产链接文件。
点击保存文件下载。
将assetlinks.json 文件上传到您的站点,每个人都可以读取,地址为https://www.exemple.com/.well-known/assetlinks.json。
单击链接并验证以确认您已将正确的数字资产链接文件上传到正确的位置。
参考:https://developer.android.com/studio/write/app-link-indexing.html#associatesite
【讨论】:
我试过了兄弟,但同样的问题,你能检查一下哪里做错了【参考方案5】:sha256_cert_fingerprints 的问题。应用程序唱歌已启用,所以我从谷歌播放控制台复制了 sha 并将其放入 asserlink.json 文件中,它可以工作。
https://d5rwdr23d4fqx.cloudfront.net/.well-known/assetlinks.json
【讨论】:
【参考方案6】:检查assetlinks.json。有文件权限对公众是可执行的
默认情况下,它可能只对 public 可读。 然后确保是否启用 google play 应用签名使用 play 控制台中提供的 ssh 密钥。
【讨论】:
【参考方案7】:就我而言,它是:https://***.com/a/44549183/8656558
如果您已正确完成其他所有操作并且正在努力解决问题,请考虑确保您添加到 Web 服务器的文件具有正确的编码(在我的情况下没有 BOM)。谢谢你,视觉工作室! :/
【讨论】:
以上是关于数字资产链接链接到我的网站的主要内容,如果未能解决你的问题,请参考以下文章