Chi*_*ria 5 android android-studio google-play-console
上周,我创建了一个应用程序,并通过在Android Studio中创建密钥库将其第一个版本上载到Play Store。我想注册App Signing,但Play Console说我首先需要上传应用程序,然后才能注册,所以我上传了应用程序捆绑包(app.aab),然后注册了程序,现在我可以看到2个证书-上传证书和应用签名证书。可以选择以.der格式下载它们。
这些.der文件怎么办?要发布更新,我再次转到Generate Signed Build,它询问我选择并输入密码的密钥库,并生成了更新的签名应用程序捆绑包。
在整个过程中,我从来没有遇到过使用.der证书的选项,如果不需要,为什么它们会显示在Play控制台的“发行管理”下的“应用签名”中。而且,由于Android Studio仍基于硬盘上可用的密钥存储区生成签名版本,因此我注册的应用程序签名有什么意义?
有关应用程序签名和管理密钥的官方文档甚至没有提及这些上传证书。它所提及的只是使用上传密钥对您的应用进行签名,什么是上传密钥-Play控制台未提及它,Android Studio和Android Studio也不要求密钥库生成.jks格式的签名版本
更新: Google已更新了有关Play进行App Signing的文档,使其更易于理解,因此该答案可能是多余的。留给后代。
tldr; 大多数开发人员不需要这些.der文件,它们是用于高级用例的。
这么多的问题!好系好安全带
只是为了澄清基础知识以确保我们使用相同的语言:在密钥库中创建密钥时,实际上是在创建密钥对(私钥和公钥)以及证书。。证书包含我们称为专有名称(带有您的姓名,公司名称等)和公用密钥的名称。因此,该证书是所有公共信息,实际上是在您对其进行签名以供任何人查看时添加到您的APK中的。私钥保留在您的密钥库中,并且是秘密,这使得其他任何人都无法以可以通过证书验证的方式对您的APK进行签名。因为有太多的术语,而且人们通常对底层的密码学概念不太熟悉,所以您经常会看到人们只是互换使用术语“密钥库”,“密钥”和“证书”。
当您注册App Signing时,会将您的私钥发送给Google,以便Google可以代表您对APK进行签名。目的是三重的:
您可以看到现在有两种密钥(和关联的证书):
哦,是的,我还应该提到:有两种注册App Signing的方法。
对于现有应用程序,在注册应用程序签名时创建上传密钥是可选操作。这是针对只对受益于#1利益感兴趣的人的。Google强烈建议您创建一个上传密钥,并开始上传与其签名的APK /捆绑包,以避免收益#2和#3中描述的灾难性情况(密钥丢失/损坏)。
如您所知,即使您创建了上传密钥,您仍然可以上传使用您的应用签名密钥签名的APK。尽管这似乎适得其反,但Google这样做的主要原因是为开发人员提供了一种切换到Android App Bundle(需要注册App Signing)并在测试轨道中对其进行测试的方法,同时仍然可以将APK推送到他们的生产轨迹使用其应用程序签名密钥进行了签名。这使开发人员有时间测试并确定如何在构建过程中完成这项工作,而不会阻塞当前的产品发布过程。
请注意,因为您仍然可以上传使用应用签名密钥签名的APK,但这并不意味着您应该这样做。如果您想利用受益#3,则需要开始上传使用上传密钥签名的APK。
-
现在,回到这些.der文件...好吧,很快!
当您的Android应用与第三方API(例如Google API,Facebook API等)进行通信时,通常必须注册您的应用。此注册通常需要两条信息:软件包名称和证书的指纹(例如SHA1)。此注册保证只有具有您的软件包名称并使用您的应用签名密钥签名的应用才能使用该API的配额。
所有开发人员都知道他们的软件包名称,但是许多开发人员经常询问如何获取证书的指纹。Stackoverflow是找到正确的命令以运行以从密钥库中提取密钥的好地方,但是Play控制台也将其显示为方便(对于要求Google为他们生成应用签名密钥的开发人员来说,这也很重要) t的密钥库带有应用程序签名密钥)。这就是为什么您看到应用程序签名证书的MD5,SHA1和SHA256的原因。
我看到您现在在问“好,显示应用程序签名证书的指纹很有意义,但是为什么还要显示上传证书的指纹呢?” 这是一个很好的问题,谢谢您的提问。如果您在使用APK上载密钥对APK进行签名之前将其上传到Play控制台,则可能需要先测试这些工件,因此,如果您与任何第三方API集成在一起,则也需要注册此证书!
好了,现在,我们终于可以进入.der文件了。
.der文件是证书。通过Play Console,您不仅可以查看证书的指纹,还可以完整下载证书。开发人员可能需要它们的唯一原因是当第三方API需要使用其他种类的指纹来注册您的应用程序时。例如,Facebook API需要向证书的SHA1的二进制表示形式的Base64注册。您无法通过Play控制台显示的指纹进行计算,因此必须在原始证书上手动运行一些命令。
[资料来源:我在Google工作,并实施了大部分工作]
归档时间: |
|
查看次数: |
1208 次 |
最近记录: |