ddc*_*ver 17 android google-play
如何使用多个证书对APK进行签名,以便在发布到Android电子市场时可以执行此操作:
版本1.0 =>使用证书A
版本2.0签名=>使用证书A和B
版本3.0签名=>使用证书B签名
Android Market确实给了我一些希望,但我不知道该怎么做,当我上传一个不同的签名证书时,它给了我这个消息:
"必须使用至少一个与之前版本相同的证书对apk进行签名."
动机:
我已经使用Android签名工具在市场上发布了一个应用程序,作为MotoDev Studio for Android的一部分.问题是它本身处理密钥,并且没有办法(记录)来获取密钥.我想更改它以使用我更有控制权的密钥库和证书,即使我不再使用MotoDev Studio也可以使用.此外,似乎MotoDev Studio将锁定您的新功能,如共享库.
更新2011年5月3日:
他们实际上非常快速和迅速地更新MotoDev Studio,但似乎我相信Google仍应为那些想要更改其应用程序证书的人提供解决方案.将应用程序更新为使用相同的证书,随着时间的推移创建新的证书,并可能创建一个新证书,以便您可以将应用程序的支持和分发交给其他人.
Chr*_*Orr 14
如果您想多次签署APK,请执行此操作.
但请注意,Google Play不接受具有多个签名的APK.
例如.您可以使用以下命令从命令行对APK进行签名jarsigner:
jarsigner -keystore original-keystore my-app-unsigned.apk key-alias别名
然后用第二个键重复一遍:
jarsigner -keystore new-signing-keystore my-app-unsigned.apk key-alias
不要忘记之后运行zipalign:
zipalign -v 4 my-app-unsigned.apk my-app.apk
我刚刚重新阅读了有关MotoDev工作室的部分.在这种情况下,您可以像往常一样使用MotoDev首先签署APK,然后在命令行上使用新密钥进行签名,如上所示.
我真的很高兴看到这篇文章,直到我看到@ddcruver的评论(2010-06-05)和@cistearns的评论(2011-03-01)。
然而,您描述的转换方法实际上存在一个主要的安全问题(如果它按照您期望的方式工作),如果攻击者可以让您的用户安装他们的东西,那么攻击者替换您的应用程序变得相当简单:
通常,如果攻击者尝试替换某些内容,安装将拒绝,除非删除原始内容 - 此时数据将被擦除。
另一方面,仍然有几个有效的用例用于转换密钥/证书:密钥续订、移交给另一个开发人员等。
通过授权从旧密钥转换到新密钥可以更安全地完成此操作。请参阅Android 项目中的问题。
| 归档时间: |
|
| 查看次数: |
18355 次 |
| 最近记录: |