天道酬勤,学无止境

Android,生成数字资产链接:用于签署应用程序的密钥库文件(Android, Generate Digital Asset Link: keystore file for signing the app)

问题

我为我的 Android 应用程序实现了通用链接。 到目前为止一切正常。 我点击一个通用链接,将立即重定向到该应用程序。 但是,我一直对Digital Asset Links使用调试。 对于发布,我需要签名配置或密钥库文件。

为了签署我的应用程序,我总是使用创建的xxxx.jks文件。 如果我指定这一点,则会发生错误: Error occured while trying to get the SHA-256 fingerprint时发生错误(参见屏幕截图)。

该错误非常没有意义。 这就是为什么我有点困惑。 我使用正确的文件吗? 如何获得更好的错误描述? 我总是使用这个文件来签署我的应用程序以获取新版本。 这不会引起任何问题。

我已经从 Play 管理中心的应用签名证书中获取了 SHA-256 指纹。 这真的不能正常工作。 每当您单击我的通用链接时,应用程序都会询问: Should the link be opened with Chrome or with 'MyApp'?

我很感激您的意见。

回答1

好的,解决方案很简单。 我只是从 google play 控制台获取 SHA256。 这个你必须放入你的assetlinks.json

然后我构建了一个公开测试版,它按预期工作。

回答2

按照 https://developer.android.com/studio/write/app-link-indexing 中的步骤尝试设置 App Link 时,我遇到了同样的问题。

对于“将您的应用程序与您的网站关联”步骤,我创建了一个signing config ,其中包含使用命令行keytool的密钥库文件。 但这不起作用,单击Generate Digital Asset Links file给出“尝试获取密钥库文件的 SHA-256 指纹时发生错误。请确保您的密钥库文件正确。 ”。 我仔细检查了我的密钥库文件并再次尝试,但问题仍然存在。

修复方法是使用 Android Studio 的New Key Store库向导并改用该密钥库文件。 您可以通过 Build > Generate Signed Bundle/APK... > APK > Next > 在“Key store path”选项下单击“Create new ...”打开向导。 另请参阅 https://developer.android.com/studio/publish/app-signing#generate-key。

回答3

您需要使用调试签名配置生成数字资产链接并替换 SHA,如答案@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 指纹匹配。
  • 您的网站“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">
  • 数字资产链接已通过 Android Studio 验证,但未在 Google Play Console 中通过(Digital Asset Link verified by Android Studio, but not pass in Google Play Console)
    问题 我尝试将我的 Android 免安装应用发布到 Google Play; 我将名为helloinstantapp.instantapp.examples.chrisyttang.org的应用程序链接到域https://csytang.github.io 。 它已通过 Android Studio 验证,如下图所示; 但是,当我尝试使用 Google Play Console 将我的应用发布到 Google Play 时,我收到错误消息“站点csytang.github.io尚未通过 DAL 协议链接到您的应用”。 为什么会发生这种情况? 回答1 您是否有机会启用 Google Play 应用签名? 如果是,那么您需要使用 Play Console 提供的指纹,而不是 Android Studio 使用的指纹(上传密钥)来签署 APK。 为此,请使用Play Console > Release management > App signing指定的发布密钥修改您的assetlinks.json 。
  • 数字资产链接链接到我的网站(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是必需的。
  • 在发布到PlayStore之前,为什么要在我的apk上签名?(Why should I sign my apk before releasing to PlayStore?)
    问题 在发布到市场之前,先签署apk到底有什么重要性? 回答1 从Android应用程序签名文档中: Android系统要求所有已安装的应用程序都必须使用证书进行数字签名,该证书的私钥由应用程序的开发人员持有。 Android系统使用证书作为识别应用程序作者并在应用程序之间建立信任关系的手段。 该证书不用于控制用户可以安装哪些应用程序。 证书不需要由证书颁发机构签名:对于Android应用程序,使用自签名证书是完全允许的,并且是典型的做法。 了解有关签署Android应用程序的重要要点是: 所有应用程序都必须签名。 如果未签名,则系统不会在模拟器或设备上安装应用程序。 为了测试和调试您的应用程序,构建工具会使用由Android SDK构建工具创建的特殊调试密钥对应用程序进行签名。 准备好为最终用户发布应用程序时,必须使用适当的私钥对其进行签名。 您无法发布使用SDK工具生成的调试密钥签名的应用程序。 您可以使用自签名证书对应用程序进行签名。 不需要证书颁发机构。 系统仅在安装时测试签名者证书的到期日期。 如果应用程序的签署者证书在安装后过期,则该应用程序将继续正常运行。 您可以使用标准工具-Keytool和Jarsigner-生成密钥并签署应用程序.apk文件。 在对应用程序进行发布签名后,我们建议您使用zipalign工具来优化最终的APK包。
  • 使用 PHP 进行数字签名(Digital Signatures with PHP)
    问题 是否可以让用户对文档进行电子签名? 设想 我在我的网站上为用户上传文件以进行审核和签名用户登录,查看文档,然后以某种方式对其进行数字签名。 (不是他们签名的图像) 我收到的文件以某种方式验证他们是否合法签署了它。 我希望用户不需要下载,使用一些第三方工具签名然后上传文档。 我希望他们以某种方式在网页上执行此操作,可能是在他们登录时在文档的框中键入全名。 回答1 一种可行的方法是为每个用户生成一对加密密钥。 两个密钥(私钥和公钥)都需要保存在您的服务器上,私钥受密码保护。 理想情况下,只有用户自己知道密码(在生成密钥时询问它但不要保存它),而没有其他人知道。 然后,在用户通过输入他的私钥密码对文档进行签名后,您将能够使用他的公钥来验证他的“签名”。 该过程本身在很大程度上取决于您的服务器设置(即访问加密工具、数据库等)。 PS:我怀疑这是否具有法律约束力(至少不是我所在的地方),但您的管辖权可能会有所不同。 回答2 “验证他们合法签署的某种方式”.. 根据国家/地区的不同(您的个人资料未指明您的位置),其含义略有不同。 我只能回答美国关于法律部分..但至于技术部分.. 您可以使用 PHP 将 PDF 的每个页面导出为 PNG,然后将每个页面(作为 PNG 图像)呈现给用户查看。 然后使用 JavaScript 记录用户在指定位置签名的动作。 然后,用户发布他
  • 我丢失了我的密钥库文件。 现在我如何发布更新? [复制](I lost My Keystore file. now how can i release update? [duplicate])
    问题 这个问题在这里已经有了答案: 我丢失了 .keystore 文件? (12 个回答) 5年前关闭。 我记得我的旧密钥库的密码。(私钥和公钥)。 我可以创建新的密钥库并签署我的应用程序吗? 回答1 将您的密钥库和私钥保存在安全可靠的地方,并确保对它们进行安全备份。 如果您将应用发布到 Google Play,然后丢失了用于签署应用的密钥,您将无法发布应用的任何更新,因为您必须始终使用相同的密钥签署应用的所有版本。 没有办法恢复您的密钥。 丢失了我在 android 市场上上传的应用程序的密钥库。 所以最后,它不可能。 请使用不同包名和版本的应用程序创建新的密钥库,并作为新应用程序发布。 礼貌去签署您的申请。 回答2 没有密钥库文件就无法更新应用程序。 您需要使用新的包名称上传新应用程序。 Google 官方文档:请参阅此链接下的警告 回答3 RSA 密钥的性质以及用于生成密钥对(您的私钥和公钥)的类似算法使您在丢失密钥时无法找回它们。 密码短语用于散列私钥,以保护其使用。 由于在解密过程中使用的所有密码都是为了对私钥进行散列处理,因此当私钥丢失时,无法使用它来推导出私钥。 其工作原理的规范在 RFC 2437 第 7.1.2 节中。
  • Android程序员面试必须要掌握的:Https加密原理、中间人攻击到底是怎么回事
    前言–阅读本文你将收获 1.https加密的基本原理与过程,https为什么是安全的? 2.什么是中间人攻击,中间人攻击的基本原理 3.如何防止中间人攻击 作者:RicardoMJiang 链接:https://juejin.im/post/6880024440143347719 https加密的基本原理 https要完成的目的 1.Client必须要能确定,它要访问的Server确实是正确的Server 2.Client和Server交流的信息不能被其它第三方窃听 3.当然,针对第1点,反过来,Server也可以要求,必须确认Client是它想通信的正确的Client,不过道理和1一样,这里不展开 通过HTTPS握手建立加密信道来保证上述要求 https三次握手 三次握手过程如下: 看了上述三次握手过程,可以知道,handshake主要完成的事情: 1.客户端&服务端通信,协商加密方式 2.客户端(Client)和服务端(Server)互相确认身份 3.双方安全地交换https通信使用的密钥(Session Key) 第一阶段:C&S协商加密方式 客户端向服务端发送ClientHello信息,信息主要包括客户端支持的加密方式、客户端支持的SSL版本等;服务端接收到ClientHello信息后,向客户端发送一个ServerHello信息
  • Apple 团队的“成员”可以从 Xcode 导出以进行 iOS 分发吗?(Can an Apple team 'member' export from Xcode for iOS distribution?)
    问题 我在“Apple Developer Enterprise Program”团队中担任“成员”角色。 当我尝试导出以进行部署时,它带有消息 - 您无权执行此操作,请与您的团队管理员之一核对。 基于有限的知识,我了解为了导出部署,我需要具有“管理员”角色。 我对么? 有没有像我的团队管理员给我发送一些证书/密钥然后我可以使用它的东西? 如果是,如何? 更新(基于回复) 简化问题: 团队“成员”可以请求分发签名证书吗? 是或否。如果是,如何? 如果上面的答案是肯定的,一旦成员从管理员那里获得证书 - 他应该如何使用它? 我以管理员身份导出部署的方式 - 产品 > 存档 > 导出,然后我得到 IPA。 我问这个问题的原因是因为我无法在我只是其中一员的团队中做同样的事情。 我什至有可能做到,还是只有管理员才能做到? PS一两行答案将有很大帮助,而不是另一个网站链接。 回答1 团队成员不能申请分发签名证书,只能申请开发签名证书。 您需要请管理员(或从管理员那里获得分发证书访问权限的其他人)为您提供分发签名证书。 他们可以从他们的钥匙串或 Xcode(设置->帐户->签名身份)中以 .p12 格式导出他们的证书并将其发送给您。 团队成员可能适用于不受信任以公司名义签署代码的人。 这就是 Apple 希望这些角色发挥作用的方式: https://developer.apple.com
  • 如何使用上传密钥签署您的应用程序(How to sign your app using the upload key)
    问题 我正在尝试将我的应用发布到 Google Playstore,但我不知道如何使用上传密钥对应用进行签名,如 https://developer.android.com/studio/publish/app-signing.html 中所述 我使用 Android Studio,我使用 Build -> 生成签名的 APK 对 apk 进行了签名,并在我自己的密钥存储路径/文件中创建了我自己的密钥。 现在,要进行发布,我需要使用 google 上传密钥,这让我感到困惑。 所以, 在 Google Play 管理中心的何处可以找到我的上传密钥? 在此应用的应用签名下,我可以看到 MD5、SHA-1、SHA-256 的上传证书,甚至可以下载 upload.pem 文件。 我该怎么办? 那么我究竟如何使用 Build -> 在 Android Studio 中生成签名的 APK 来使用这个所谓的上传密钥对其进行签名? 我的应用程序使用谷歌登录来验证用户。 现在,如果我只安装自己的 apk,它就可以工作。 但是如果我从谷歌商店下载它,它不能进行谷歌身份验证,我认为我搞砸了发布程序。 仅供参考,我正在使用“使用 Google Play 应用签名”流程。 请帮忙。 回答1 我想我已经想通了... 当您选择使用 Google 应用签名流程时,Google Play
  • 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\": {
  • apk必须使用与先前版本相同的证书签名(The apk must be signed with the same certificates as the previous version)
    问题 我前一段时间将我的应用上传到Google Play(当时称为Android Market)。 今天,我更新了该应用程序,但删除了先前的密钥库并创建了一个新的密钥库。 上传时,提示APK必须使用与先前版本相同的证书签名: 上传失败您已将使用其他证书签名的APK上传到以前的APK。 您必须使用相同的证书。 您现有的APK已使用带有指纹的证书进行了签名: [SHA1:89:2F:11:FE:CE:D6:CC:DF:65:E7:76:3E:DD:A7:96:4F:84:DD:BA:33] 并且用于对您上传的APK进行签名的证书具有指纹: [SHA1:20:26:F4:C1:DF:0F:2B:D9:46:03:FF:AB:07:B1:28:7B:9C:75:44:CC] 但是我没有此证书,也不想删除并重新发布该应用程序,因为它具有活跃的用户。 我该怎么做才能用新证书签署我的应用程序? 回答1 没有什么。 阅读文档:在Android Market上发布更新 在上传更新的应用程序之前,请确保您已在清单文件的元素中增加了android:versionCode和android:versionName属性。 另外,程序包名称必须相同,并且.apk必须使用相同的私钥签名。 如果程序包名称和签名证书与现有版本不匹配,则Market将认为它是新应用程序,并且不会将其作为更新提供给用户。 回答2
  • 如何签署Android APK文件(How to sign an android apk file)
    问题 我正在尝试签署我的apk文件。 我不知道该怎么做。 我找不到很好的深入指导。 我几乎没有编程经验,所以将不胜感激。 回答1 手册很清楚。 请详细说明完成后遇到的困难,我建议: https://developer.android.com/studio/publish/app-signing.html 好吧,一个简短的概述,不带参考或偏见,因此留出一些错误的空间,但是它的工作原理是这样的 在Eclipse中打开您的项目按鼠标右键->工具(android工具?)->导出签名的应用程序(apk?) 通过向导: 进行新的密钥存储。 记住那个密码签署您的应用保存等 另外,从链接: 使用Eclipse ADT进行编译和签名如果您将Eclipse与ADT插件一起使用,则可以使用“导出向导”导出已签名的.apk(必要时甚至可以创建一个新的密钥库)。 导出向导将为您执行与Keytool和Jarsigner的所有交互,这使您可以使用GUI对程序包进行签名,而不必执行如上所述的手动过程进行编译,签名和对齐。 向导编译并签名了程序包后,它还将使用zip align执行程序包对齐。 由于“导出向导”同时使用Keytool和Jarsigner,因此应确保它们在计算机上可访问,如“签名基本设置”中所述。 要在Eclipse中创建签名并对齐的.apk,请执行以下操作: 在Package
  • 如何在没有android studio的情况下签署android apk(How to sign android apk without android studio)
    问题 我在这个问题上发现了许多令人困惑的答案:如何在没有 Android Studio 的情况下签署(发布/调试)android 应用程序(例如,在签署 ionic/cordova/phonegap 应用程序时)? 回答1 您可以在 Gradle 文件中添加密钥存储。 android { ... defaultConfig { ... } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } buildTypes { release { ... signingConfig signingConfigs.release } } } --> 使用 CMD 生成签名的 APK。 gradlew assemblerelease. 回答2 因此,迄今为止正确而简单的答案是: cd 进入您的项目平台/android 文件夹(如果不是cordova/ionic
  • 我应该在我的 iOS 或 Android 应用程序中存储一个硬编码的加密密钥吗(should I store an encription key as hardcoded in my iOS or Android App)
    问题 我计划使用一次性密码加密来进行服务器和客户端(这是一个移动应用程序)之间的通信。 但我需要在移动应用程序中对密钥进行硬编码。 因此,不同用户安装的所有移动应用程序都将具有相同的密钥。 对 Android 和 iOS 的构建进行逆向工程并提取硬编码值有多容易? 关于我计划的安全性的其他一些信息:我还计划通过向每个用户发送带有 4 位数字的 SMS 来增加额外的安全性,该 SMS 将用于签署请求。 这样我就可以保证用户是假装的。 我通过互联网发送用户的位置,他的电话号码(一次),他的名字(一次)。 你怎么看我的ideea,你会推荐什么? 回答1 您的设计中有许多安全漏洞。 说真的,只需将 SSL 与基本身份验证一起使用。 它经过实战测试,对于您所描述的用例来说已经足够了。 回答2 通常,如果您必须询问有关在生产代码中设计您自己的加密方案的问题,您不应该在生产代码中设计您自己的加密方案(并且您永远不应该将一次性密码硬编码到应用程序中,因为这意味着它是被多次使用)。 两因素身份验证很好,但您使用的实际加密应该是众所周知的。 如果您希望将某种密钥嵌入到应用程序中,您可能需要研究公钥加密方案,例如 RSA。 像 SSL 这样的加密套件可能是这里使用的合适系统。 回答3 仅供参考,以不同的方式从 iOS 或 Android 逆向工程出硬编码值非常容易: 静态分析:使用 IDA Pro
  • 如何启用Google Play应用签名(How to enable Google Play App Signing)
    问题 我认为许多开发人员正在尝试了解有关在Google I / O 2017上提供的新Google Play应用签名功能的更多信息。 存储密钥库以在Google Play内对应用进行签名的功能可节省您安全存储密钥库的工作,并可以帮助系统根据硬件和操作系统特性优化为每个设备提供的APK。 您可以在以下官方文档中阅读有关此主题的更多信息:https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing。 使用以下答案,我将更好地解释上传原始密钥库所需执行的步骤以及如何创建新的上传密钥库,从现在开始,您将需要对其进行签名。 回答1 本指南面向已在Play商店中拥有应用程序的开发人员。 如果您是从一个新的应用程序开始,则此过程会容易得多,您可以从此处按照“新应用程序”段落的指南进行操作。 99%的开发人员已经具备的先决条件: Android Studio JDK 8以及安装后,您需要在用户空间中设置环境变量以简化终端命令。 在Windows x64中,您需要添加以下内容: C:\Program Files\Java\{JDK_VERSION}\bin到Path环境变量中。 (如果您不知道如何执行此操作,则可以阅读我的指南,以将文件夹添加到Windows 10 Path环境变量中)。
  • 有密钥库密码,丢失了用于签署 Android 应用程序的密钥 [重复](Have keystore password, lost key to sign Android app [duplicate])
    问题 这个问题在这里已经有了答案: 我丢失了 .keystore 文件? (12 个回答) 4年前关闭。 我看过很多关于丢失密钥库密码的帖子,但我有我的密钥库密码但丢失了私钥密码。 现在,我无法使用更新我的应用程序所需的密钥进行签名。 有什么我可以做的吗? 回答1 不,你无能为力。 apk 必须使用完全相同的密钥库和密钥库中的配置文件进行签名。 您不能简单地使用相同的密码和详细信息生成另一个。 不起作用。 您必须使用新的密钥库和不同的包名称再次发布您的应用程序,或者记住您的密码。
  • Google Places for Android API 密钥不适用于 Play 商店中的应用(Google Places for Android API key does not work on app from Play Store)
    问题 我最近推出了一个 Android 应用程序,它使用了 Google Places 自动完成小部件/API。 作为此配置的一部分,我将 API 密钥添加到我的 Android 的清单文件中: <application> ... <meta-data android:name="com.google.android.geo.API_KEY" android:value="MY_KEY_HERE"/> </application> 此外,在 Google Developers 控制台中,我仅为 Android 设备启用了此 API 密钥,但并未限制到任何特定 API。 我还为我的应用程序输入了正确的包名和 SHA-1 哈希值。 现在我有以下问题: 当我直接从 Android Studio 将应用程序部署到 Android 手机上时,Google API 都可以正常工作。 无论我使用调试模式还是发布模式变体,都是如此。 当我将 APK 从完全相同的代码发布到 Play 商店,然后安装该应用程序时,除了 Google 自动完成 API 被破坏外,一切正常。 尝试访问它时,它会立即关闭。 我确信我部署到 Play 商店的实际上是在本地运行的同一个应用程序,因为我最近还做了一些小的 UI 补丁,这些补丁也出现在商店版本中。 我多次验证正确的密钥是出现在清单文件中的内容。