Android, Generate Digital Asset Link: keystore file for signing the app

I implemented universal linking for my Android app. Everything works fine so far. I click on a universal link and will be immediately redirected to the app. However, I have always used debug for the Digital Asset Links. For the release I need the signing config or the keystore file.

To sign my app I always use a created xxxx.jks file. If I specify this, an error occurs: Error occured while trying to get the SHA-256 fingerprint (See screenshot).

The error is very meaningless. That's why I'm a little confused. Do I use the right file? How do I get a better error description? I always use this file to sign my app for a new release. That doesn't cause any problems.

I already took the SHA-256 fingerprint from the App signature certificate from the Play Console. This doesn't really work properly. Whenever you click on my universal link, the app asks: Should the link be opened with Chrome or with 'MyApp'?

I am grateful for input.


Okay, the solution was simple. I just take the SHA256 from the google play console. This one you have to put in your assetlinks.json

Then I build a public beta and it works like expected.

I had the same issue when trying to set up an App Link, following the steps from https://developer.android.com/studio/write/app-link-indexing.

For the 'Associate your app with your website' steps I created a signing config, with keystore file using the command line keytool. But this didn't work, clicking Generate Digital Asset Links file gave "An error occurred while trying to get the SHA-256 fingerprint of the keystore file. Please make sure your keystore file is correct.". I doublechecked my keystore file and tried again, but the issue remained.

The fix is to use Android Studio's New Key Store wizard and use that keystore file instead. You can open the wizard via Build > Generate Signed Bundle/APK... > APK > Next > below the 'Key store path' option click 'Create new ...'. See also https://developer.android.com/studio/publish/app-signing#generate-key.

You need generate Digital Asset Links with debuge signing config and replace SHA like in answer @kuzdu

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

  • Google Play 应用签名和免安装应用(Google Play App Signing and Instant Apps)
    问题 相当直接的问题。 有谁知道 Google Play App Signing 是否支持 Instant Apps? 我问的原因: 输入您的应用程序的签名配置,或选择一个密钥库文件。 虽然可以在测试期间使用调试配置或密钥库,但生成的数字资产链接文件将与您的应用程序的发布版本不兼容。 如果您确实上传了使用调试配置或密钥库的数字资产链接文件,则在发布应用程序之前,您需要生成并上传使用应用程序发布密钥的新数字资产链接。 来自博客文章:- 如何创建即时应用功能 如果此声明属实,播放控制台是否提供了生成assetlinks.json ? 这是您必须在声称附属的域上托管的文件。 回答1 是的,Google Play 应用签名支持即时应用。 您将使用您的签名密钥而不是上传密钥,因为 Google Play 将使用签名密钥重新签署您的应用程序。 Android Studio 提供了一种生成 assetlinks.json 的方法,只需转到Tools > App Links Assistant > Associate Website ,然后您就可以选择正确的密钥库文件。 添加 Android 应用链接 > 将您的应用与您的网站相关联 您也可以通过 Statement List Generator 和 Tester 手动执行此操作 其他帖子也解决了这个问题 数字资产链接已通过 Android
  • Instant App - 数字资产链接协议(Instant App - Digital Asset Links Protocol)
    问题 每当我尝试将我的免安装应用 apk 上传到 Play 商店时,它都会出现以下错误: 您的网站“www.mywebsitename.com”尚未通过数字资产链接协议链接到您的应用。 请通过数字资产链接协议将您的网站链接到您的应用程序。 但是,每当我执行 https://developers.google.com/digital-asset-links/tools/generator 时,它都会成功与我的应用程序和网站相关联。 知道为什么我会收到此错误吗? 什么可能导致这种情况? 提前感谢您的帮助。 回答1 请检查 Google Play 管理中心是否启用了 Google Play App Signing。 如果启用了 Google Play App Signing,Google Play Console 会将您的应用密钥替换为发布密钥。 您在 Android Studio 上设置的密钥被视为上传密钥。 因此,您需要使用发布密钥修改您的assetlinks.json 。 回答2 当我从我的调试密钥而不是发布密钥生成一个 assetlinks.json 文件时,这发生在我身上。 它在 Android Studio 中显示为已验证,然后在服务器上失败。 仔细检查您的资产链接文件的签名配置是否正确,以及文件中的指纹是否与您的发布密钥的 SHA256 指纹匹配。
  • Android Instant App - Play Console release/deploy error and DAL(digital Asset Link) not linked
    I'm trying to figure out why the play store will not accept my instant app build. I have successfully deployed an Alpha regular app release to testers since it is a prerequisite to release an instant app. I am trying to deploy a development release instant app. What am I doing wrong? I tried to add as much detail as possible. Do I need to use the Digital Asset Link API service at the following link for a production instant app or is that for something else? https://console.developers.google.com/apis/api/digitalassetlinks.googleapis.com/overview I get the following error when uploading the
  • assetlinks.json 中的应用链接意图过滤器不适用于 Android(App links intent filters in assetlinks.json not working on Android)
    问题 我的应用程序定义了意图过滤器,以处理来自我的网站的URL,这些URL由 <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:host="www.host.com" android:scheme="http"/> </intent-filter> <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:host="www.host.com" android:scheme="https"/>
  • Android Instant App - Play Console 发布/部署错误和 DAL(数字资产链接)未链接(Android Instant App - Play Console release/deploy error and DAL(digital Asset Link) not linked)
    问题 我想弄清楚为什么 Play 商店不接受我的即时应用程序构建。 我已成功向测试人员部署了Alpha常规应用程序版本,因为它是发布免安装应用程序的先决条件。 我正在尝试部署开发版即时应用程序。 我究竟做错了什么? 我试图添加尽可能多的细节。 我是否需要将以下链接中的 Digital Asset Link 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\": {
  • Google Play App Signing and Instant Apps
    Fairly straight forward question. Does anyone happen to know if Google Play App Signing supports Instant Apps? The reason I ask: Enter your app’s signing config, or select a keystore file. While it’s possible to use a debug config or keystore during testing, the generated Digital Asset Links file won’t be compatible with the release version of your app. If you do upload a Digital Asset Links file that uses a debug config or keystore, then before publishing your app you’ll need to generate and upload a new Digital Asset Links that uses your app’s release key. From Blog post:- How to Create an
  • 您的网站“www.xxxxx.com”尚未通过数字资产链接协议链接到您的应用(Your site 'www.xxxxx.com' has not been linked through the Digital Assets Link protocol to your app)
    问题 我曾多次尝试上传即时应用程序,但总是在 google play 控制台上收到此错误。 您的网站“www.builtbee.com”尚未通过数字资产链接协议链接到您的应用程序。 请通过数字资产链接协议将您的网站链接到您的应用程序。 这是我的清单...... <?xml version="1.0" encoding="utf-8"?> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme">
  • Vue-Vant—打包apk
    目录 一、概述 二、详解 三、拓展 一、概述 App采用混合开发模式,技术选型为Vue+Vant,本文详细研究项目打包Apk的流程。Vue项目打包Apk有两种最常用的方法,其一使用Dcloud-HbuilderX打包Apk,其二使用Cordova打包Apk。 注意,本文只介绍HbuilderX打包,Cordova忽略。 二、详解 第一步:下载HbuildX 如下图所示,下载HbuilderX,地址为:https://www.dcloud.io/。 第二步:项目设置publicPath Vue项目打包前,需设置vue.config.js文件中的publicPath属性,如下图所示。注意,如果不设置publicPath属性,则手机安装Apk后,打开项目可能出现空白页面。 module.exports = { publicPath: './', } 第三步:项目编译 使用如下命令编译项目,成功后把dist文件夹复制到HbuilderX。 > npm run build 第四步:向dist文件夹中添加manifest.json(App的配置文件) dist文件夹中需要添加一个manifest.json文件,该文件可以使用HBuilderX创建一个5+app项目来获取,如下图所示。 第五步:修改manifest.json文件 manifest.json文件是App的配置文件,参考链接
  • 数字资产链接链接到我的网站(Digital Assets Link link to my website)
    问题 我创建了一个即时应用程序。 我将其上传到我的 Google 控制台,但出现此错误。 www.kochchy.cz 网站尚未通过数字资产链接协议链接到您的应用程序。 将应用程序站点与 Digital Assets Link 链接起来。 [{ "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 (每个都在自己的模块清单中定义) 我的基本模块清单如下所示: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  • Android开发:Keytool,创建密钥库吗?(Android Development: Keytool, creating a keystore?)
    问题 我正在尝试为Google市场准备我的应用程序,但事实证明,这比预期的要困难得多。 我似乎无法掌握签署应用程序的整个概念,但更具体地说,我的问题是我已经安装了eclipse的keytool插件,但是当我想创建证书时,它要求我选择一个密钥库(输入文件名和密钥库密码),我不知道应该输入什么文件,因为它实际上是希望我通过浏览选择文件,以及如何继续导出文件,可惜Google并没有提出很好或明确的答案 回答1 如果要创建新的密钥库文件,则需要提供位置和文件名。 或者,您可以选择“使用现有密钥库”并浏览到现有密钥库文件位置。 编辑:我想我会提供详尽的答案。 希望此信息会有用。 什么是签名以及为什么需要签名。 android使用的apk签名机制是应用到字节码和应用程​​序资源的数字签名的示例用法,以确保: 完整性(下载后不会篡改您的应用程序) 真实性-您是将应用发布到GooglePlay的人 为了更好地理解数字签名,我建议您也浏览一下公钥加密。 这是如何运作的。 Android使用与标准Java应用程序的签名/验证相同的标准JDK工具: jarsigner-使用提供的private key对数据签名,并使用证书(即绑定到您的身份的公钥)验证数据 keytool-管理密钥keystore私钥和证书。 这些密钥对于jarsigner是必需的。
  • 深入探索编译插桩技术(一、编译基础)
    前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 现如今,Gradle + 编译插桩 的应用场景越来越多,无论是 各种性能优化中的插件工具制作,还是用来支持 插件化、热修复的各种插件,都会使用到这个组合,因此,掌握 Gradle + 编译插桩 技术能够大大提升我们的技术竞争力。从本篇开始,笔者将会与大家一起深入探索编译插桩技术,关于整个编译插桩技术研究系列的大纲如下所示: 通常来说,整个《深入探索编译插桩技术系列》到第四篇 ASM 也就结束了,但是 ReDex 的功能实在是太强大了,以至于我不得不多花两篇的篇幅来进行深入讲解。需要注意的是,Dex 字节码与 ReDex 的实现基本是以 C/C++ 语言为主,而且其实现较为复杂,所以我会在全部更新完 Awesome-Android-NDK 的 一至四 部分之后,才会让大家和我一起去深入研究 ReDex 的实现机制。 众所周知,编译 主要分为 词法分析、语法分析 、语义检查和代码优化 等步骤。额。。等等,别慌,这篇文章并不是要讲编译原理,对于绝大多数的 Android 开发来说,我们能将 App 的编译和打包流程理解清楚就 OK 了。因此,我们这篇文章主要讲的是 App 的编译过程,本篇包含的主要内容如下所示: 1、App的编译和打包流程2、编译提速3、广义的编译-CI4、总结
  • Android 进阶—— Android 系统安全机制之Apk签名详解及Android Studio 在线调试系统App
    文章大纲 引言一、Android 签名机制1、生成密钥对keystore2、Android 签名V13、Android 签名V2+4、zipalign 、V1、V2+签名5、签名的校验5.1、对V1进行校验5.2、对V2+ 进行校验 6、Android 签名的作用7、签名版本的选择8、Apk安装签名解析 二、用 platform.pk8 和 platform.x509.pem 生成 keystore 系统签名文件1、在源码的/build/target/product/security下获取**platform.pk8 和 platform.x509.pem**2、openssl把pkcs8格式的私钥转化成pkcs12格式3、openssl 把x509.pem公钥转换成pkcs12格式4、生成platform.keystore 三、使用系统keystore对App 进行签名1、利用SDK 自带的signapk.jar和platform.pk8 与platform.x509.pem 进行签名1.1、 windows环境下1.2、 Ubuntu 编译环境执行 2、通过Android Studio 进行签名 四、 Android自定义系统签名制作介绍(覆盖模式)1、系统中有4组key用于build阶段对apk进行签名:可以在apk的android.mk文件中会指定LOCAL
  • Your site 'www.xxxxx.com' has not been linked through the Digital Assets Link protocol to your app
    I have try many times for upload an instant app, but always get this error at google play console. Your site 'www.builtbee.com' has not been linked through the Digital Assets Link protocol to your app. Please link your site through the Digital Assets Link protocol to your app. Here is my manifest.... <?xml version="1.0" encoding="utf-8"?> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true"
  • Android+Nginx一步步配置https单向/双向认证请求
      最近想实现一个旧项目https的防抓包功能,重新学习并且配置了下https相关通信知识,参考了不少文章,有些文章比较旧不全或者有误,走了不少弯路和坑,所以整理出来方便自己巩固以及供大家参考,指出不足或者有误之处互相学习。   本文的服务端环境: Debian 9.8 Nginx 原创文章,欢迎转载,转载请注明:ifish.site 作者:JaydenZhou 一、需要的前置知识点   本文需要的前置知识点,这也是我刚接触时候绕得很晕的问题,自己前后端流程走一遍后,就清晰多了。 网络相关的知识点: https通信,CA发证机构,自签发机构,公钥,私钥,数字证书,数字签名、相关cer,pem,scr,key等关键字定义。 Android相关的知识点: 如何发起网络请求,如何设置单向/双向认证ssl,如何把一些数字证书转成Android识别的bks格式证书等。 后端相关知识点: Liunx基本知识;如何域名解析(或直接ip)访问;https的CA证书/自签名证书如何生成;如何配置nginx中的https访问;   https的通信,是从非对称加密(RSA)到对称加密(AES)的一个过程,其中数字证书扮演着重要作用。 借助文章:https://juejin.im/post/5c9cbf1df265da60f6731f0a 里面所讲, 数字证书 = 公钥 + 签名 +
  • 密钥库证书的SHA-1指纹(SHA-1 fingerprint of keystore certificate)
    问题 获取SHA-1指纹的方法是否与获取指纹的方法相同? 以前,我正在运行以下命令: 我不清楚我得到的结果是否为SHA-1指纹。 有人可以澄清一下吗? 回答1 请按照本教程为Google Map v2创建SHA1指纹 对于调试模式: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android 对于发布模式: keytool -list -v -keystore {keystore_name} -alias {alias_name} 例子: keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test 在Windows上,当找不到keytool命令时,请转到已安装的JDK目录,例如<YourJDKPath>\Java\jdk1.8.0_231\bin\ ,打开命令行并尝试使用上述命令进行调试/发布模式。 另一种获取SHA1或SHA-256的方法是使用./gradlew signingReport 有关更多详细信息,请访问使用Gradle的签名报告。 回答2 如果您使用的是android studio,请使用简单的步骤
  • 生成签名的APK Android Studio(Generate signed apk android studio)
    问题 我是android开发的新手,刚刚完成了我的第一个应用程序。 我想在android studio中生成一个签名的apk。 我阅读了开发人员文档,但无法理解这些步骤。 当我单击Build>Generate Signed APK... ,它向我显示一个对话框,询问以下内容: Keystore path //with two options create new and choose existing Keystore password Key alias key password 谷歌搜索后,我什至没有得到什么是密钥库。 当我选择create new它要求我选择一个路径并找到一个我没有的.jks文件! 任何人都可以请解释并列出步骤以生成签名的apk。 回答1 使用Keytool二进制文件或exe生成专用密钥库。 说明在这里。 然后,您可以使用此密钥库对您的应用进行签名。 当您安装Java时,将安装Keytool。 注意:之所以要保存/备份此密钥库,是因为一旦通过使用此密钥库对其进行签名发布了正在播放的应用程序,以后就必须使用相同的密钥库来进行任何更新。 因此,备份它很重要。 HTH。 回答2 我认为没有人能正确回答这个问题,因此,对于任何有同样问题的人来说,这应该有所帮助: 步骤1转到“构建”>“生成签名的APK”>“下一步”(所选模块将是您的模块,通常称为“应用”)
  • uniapp的APP证书、秘钥、应用包名、应用签名
    uni_appid: uniapp的id秘钥: 生成APP证书时设置的密码应用包名: uniapp打包时有个安卓包名既应用包名应用签名: 常是微信开放平台中特定需要的,下载微信签名工具安装到手机上,输入应用包名后获得一串字符串,既应用签名证书别名: 证书的名称 生成APP证书与秘钥 Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。 Android证书的生成是自助和免费的,不需要审批或付费。 可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法: 安装JRE环境 JRE下载 链接:https://pan.baidu.com/s/1Jc7zGroF8QdB7QuxaCqKtw 提取码:4tjz 下面以安装目录为“C:\Program Files\Java\jre1.8.0_231”为例 建议将JRE安装路径添加到系统环境变量,已配置可跳过此章节 打开命令行(cmd),输入以下命令: d: set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_231\bin" • 第一行:切换工作目录到D:路径 • 第二行:将jre命令添加到临时环境变量中 生成签名证书 使用keytool -genkey命令生成证书: keytool -genkey -alias
  • Android Studio app link assistant digital asset links verification failed with nginx server with valid letsencrypt certificate
    For my android app project , i wanted to use app deep linking, using app link assistant. Following steps I have done: Added url intent filters. Logic to handle intent Associate website - created DAL file using debug certificate. Save the file as assetlinks.json Save the file under my server https://sub.subdomain.example.com/.well-known/assetlinks.json The file is accessible via browser. But when tested inside the android studios app link assistant link and verify, it give error "The website hosting the Digital Asset Links file must support HTTPS with a valid certificate. Please ensure the DAL
  • Android Studio 应用链接助手数字资产链接验证失败,nginx 服务器使用有效的 Letencrypt 证书(Android Studio app link assistant digital asset links verification failed with nginx server with valid letsencrypt certificate)
    问题 对于我的 android 应用项目,我想使用应用深层链接,使用应用链接助手。 我已经完成了以下步骤: 添加了 url 意图过滤器。 处理意图的逻辑关联网站 - 使用调试证书创建的 DAL 文件。 将文件另存为 assetlinks.json 将文件保存在我的服务器下 https://sub.subdomain.example.com/.well-known/assetlinks.json 该文件可通过浏览器访问。 但是当在 android studios 应用程序链接助手链接中测试并验证时,它给出错误“托管数字资产链接文件的网站必须支持具有有效证书的 HTTPS。请确保 DAL 文件可在 https://sub.sudomain 访问。 example.com/.well-known/assetlinks.json”。 我在服务器上使用以下配置: Ubuntu 16.04 PHP 7 通过letsencrypt.org生成SSL证书 SSL 配置中使用的 fullchain.pem 和 key.pem nginx/1.10.0 安卓工作室 2.3 有人可以指导可能出现的问题吗? 为什么android studio 应用助手不验证文件。
  • 跨多个应用的​​ Google Smart Lock(Google Smart Lock across multiple apps)
    问题 我一直试图让 Google 的 Smart Lock 在我拥有的两个应用程序之间工作(不幸的是使用不同的密钥库),但没有任何运气。 在 Smart Lock 中为一个应用程序 ( APP 1 ) 保存密码很简单,执行如下操作: Credential credential = new Credential.Builder(email) .setPassword(password) .build(); Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(... 但是,当我尝试在APP 2 中创建CredentialRequest ,它无法读取从APP 1保存的相同凭据。 我试过将accountType设置为它们之间的相同标识符,例如: Credential credential = new Credential.Builder(email) .setPassword(password) .setAccountType(ACCOUNT_TYPE) .build(); Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(... ... CredentialRequest