【发布时间】:2014-03-04 13:06:43
【问题描述】:
关于签名和未签名的 .apk 文件有很多问题。为了测试和调试,我们可以使用 bin 文件夹中生成的未签名的 .apk 文件。此 apk 文件使用虚拟密钥库文件生成。我的问题是为什么我们需要使用签名的 apk。我们不能发布未签名的 apk 吗?这有什么问题?
【问题讨论】:
标签: android apk keystore android-keystore
关于签名和未签名的 .apk 文件有很多问题。为了测试和调试,我们可以使用 bin 文件夹中生成的未签名的 .apk 文件。此 apk 文件使用虚拟密钥库文件生成。我的问题是为什么我们需要使用签名的 apk。我们不能发布未签名的 apk 吗?这有什么问题?
【问题讨论】:
标签: android apk keystore android-keystore
您想要发布签名应用程序的原因有很多。甚至还有一个关于它的great article。这里有几个原因:
基本上,它使黑客的生活更加困难,这总是一件好事。
例如,有人可能会向人们授予 Google Play 帐户的访问权限以修改说明,但您不希望他们上传新应用。没有密钥,他们无法上传应用程序。此外,如果您的谷歌密码被破解,您仍然无法上传应用程序。破解它需要你的私钥文件和密钥。
【讨论】:
@Pearson 几乎涵盖了所有内容,但我喜欢介绍一件事。
在 Android 中,您不能以任何方式在开发者手机/模拟器上安装未签名的应用程序。您必须通过调试或您自己的证书签署您的应用程序。
安装后,Android SDK 会在名为 debug.keystore 的密钥库中为您生成一个“调试”签名证书。调试证书的有效期只有 365 天。
因此,当您通过任何 IDE Eclipse/Android Studio 安装应用程序时,IDE 也会使用调试证书对应用程序进行签名。
我的问题是为什么我们需要使用签名的 apk。我们不能发布一个未签名的 apk 吗?这有什么问题?
您需要使用自己的发布密钥库证书对应用进行签名,因为您无法发布使用调试证书签名的应用,因为
一个原因是您的调试证书在一年内到期,因此在此之后您无法发布您的应用程序的更新一旦您的调试证书过期,为什么还有谷歌不允许的原因以及一些更主要的安全问题。
第二个原因是android系统使用证书作为识别应用程序作者和建立应用程序之间信任关系的手段。
【讨论】:
只有在开发者选项中启用了调试功能的人才能运行它。人们需要知道如何启用开发者选项(通过在手机设置中点击“内部版本号”七次)。 Google 不会让您发布调试 apk,因此人们将不得不旁加载它。
【讨论】:
带有调试密钥库的 Apk 是签名的 apk。未签名的 apk 无法上传到设备。对于生产,您必须创建一个不同的密钥库来进行签名。此外,一旦发布,未来的更新必须使用相同的密钥库完成。如果密钥库丢失,则无法更新应用程序。
【讨论】:
未签名的 APK 更难追踪到原始作者。尽管原则上这并没有什么问题,但 Google 会强制您在发布到 Google Play 之前对您的 APK 进行签名。因此,当开发人员滥用 Google Play 发布软件时,Google 有权撤销证书,即。恶意软件。
另外,因为你必须向谷歌支付证书,谷歌希望恶意开发者不会一遍又一遍地付费发布应用程序。
【讨论】:
来自 Android 开发者:
“Android 系统要求所有已安装的应用程序都使用证书进行数字签名,证书的私钥由应用程序的开发者持有。Android 系统使用证书作为识别应用程序作者和建立应用程序之间信任关系的手段“...
阅读所有相关信息here
【讨论】: