使用 Eclipse 导出签名的 Android 应用程序时,使用多个别名是否有目的?

根据 关于签名的官方指南, ,建议您使用相同的证书对所有应用程序进行签名,以允许您的应用程序共享数据、代码并以模块化方式进行更新。

假设“别名”、“密钥”和“证书”在这种情况下本质上是可以互换的,是否有人会这样做 为所有应用程序使用不同的别名?我能想到的唯一原因是它为您的应用程序增加了更多的安全性,从某种意义上说,受损的密钥/密码不会危及一切。还有其他原因吗?

另外,生成的密钥是否取决于别名的名称?换句话说,如果更改别名但不更改密码,生成的证书会有所不同吗?

有帮助吗?

解决方案

如果我错了请纠正我,但如果你会看到 这个答案 对于类似的问题,您会发现证书确实取决于您选择用于签名的特定“别名”(在您的密钥库中)。

仔细阅读答案,您会发现“密钥库”包含“别名”(实际上是私钥+公钥对)。当您对 apk 进行签名时,“公钥”就是嵌入的实际证书。

因此,在更新应用程序时,您应该始终使用相同的“别名”,而不仅仅是相同的“密钥库”。至于为什么开发人员会在他们的密钥库中拥有多个“别名”,我不确定除了您和其他人所说的之外还有什么好处。

使用不同别名进行签名的唯一方法是克隆前一个别名,正如答案所建议的那样。

我还确认使用不同别名(来自同一密钥库)签署 APK 将生成不同的 APK 签名签名 这应该证明不同的“别名”=不同的证书。 如何获得您的签名 (<-注意:我不知道他们指的Trace.i方法是什么,我用Log.i代替)

其他提示

请注意,通过签订使用不同的密钥的应用程序,你是你的应用程序之间的牺牲“的基于签名的权限”的互操作性。

对应用进行签名 - - 签署战略

的Android摘录

  

Android系统提供基于特征的权限执行,   这样应用程序可以公开的功能到另一个应用程序   这与指定的证书签名。通过签署多个   基于特征的同一证书,并使用应用程序   权限检查,您的应用程序可以在一个共享代码和数据   安全的方式。

我是做了一些测试,但它似乎不管你的密钥库使用的关键,改变的关键和密钥库文件的名称别名并没有真正似乎无关紧要到手机。如果你很好奇,我使用keytool-IUI改变的别名,我从这里得到: HTTP: //code.google.com/p/keytool-iui/

要回答的OP,我会说,如果你在一家大公司工作,与多个部门编写自己的应用程序非常有用。所以威尔逊的小工具可能有wilsonwidgets.keystore的密钥库,并有可能是一个内部部门与“widgetmakers”键,并用“widgetdelivery”关键部门和其他部门有“hrdepartment”键。每个部门可能会阻止其他部门从更新他们的应用程序,但该公司自身拥有的所有存储在一个密钥库可以备份到一个位置的按键。

我个人签署与他们都不同的密钥存储在密钥库中相同的每个应用。我这样做,因此,如果谷歌决定购买我的应用程序之一,从我,我可以断绝一个密钥并将其提供给他们,而不必将其整体出售大量或重新生成密钥的其他应用程序。现实......我只是在浪费时间和精力... 叹息

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top