Abh*_*sal 3 android android-deep-link android-app-links
我们为深层链接intent-filters定义了一些AndroidManifest。我们还有assetlinks.json文件放置在我们域中的适当位置,并带有正确的 SHA 指纹。我们面临一个奇怪的问题,当从 Android Studio 安装应用程序时,这些应用程序链接直接打开我们的应用程序,中间没有任何选择器。
这也是我们想要的行为,但是,当我们将我们的应用程序上传到 Google Play 并从那里下载时,这些应用程序链接App chooser首先打开,这不是我们想要的行为。
我们做了一些实验,比如为两个不同的链接创建不同的意图过滤器,删除一个链接等,但这种行为保持不变。还仔细检查了 SHA 指纹,它们似乎没问题。
如果您说您的assetlinks.json文件位于正确的位置,并且 JSON 本身具有正确的语句。那么可能有两个问题
autoVerify=true检查您是否已在文件中添加AndroidManifest.xml已定义意图过滤器的活动。
重新检查签名的 apk,SHA256以确认您使用正确的方式SHA256对 apk 进行签名。您可以使用命令检查
keytool -list -printcert -jarfile <your_signed.apk>
Run Code Online (Sandbox Code Playgroud)
并验证您的 assetlinks.json 文件中是否存在相同内容SHA256。
./adb shell dumpsys package domain-preferred-apps
Run Code Online (Sandbox Code Playgroud)
输出如下:
Package: com.test.example
Domains: www.test.com
Status: always : 200000000
Package: com.test.example
Domains: www.xyz.com
Status: ask
.
.
.
Run Code Online (Sandbox Code Playgroud)
找到您的应用程序的包名称,然后检查Status您的包名称,如果是always : <some_number>,则您的 apk 已正确验证,应用程序链接应该可以正常工作,否则,如果值为Status或,则存在一些问题,您可以按照上述重构-提到的步骤。askundefined
我知道有一个公认的答案,但还有另一种情况,其他人可能会像我一样面临。
发布到 时Google Play,如果您的应用程序有“ App Signing by Google Play is enabled for this app.”,那么keystore SHA256在您的本地机器上签署您的 apk 时您的应用程序是什么并不重要。
您需要使用SHA256from Google Play Console-> Relase management-> App signing-> App signing certificate。
编辑(2021):
App signing key certificate现在在不同的位置:
| 归档时间: |
|
| 查看次数: |
830 次 |
| 最近记录: |