发布apk之前签名的重要性是什么?
发布apk之前签名的重要性是什么?
为什么:
应用程序签名的某些方面可能会影响您开发应用程序的方式,特别是如果您计划发布多个应用程序。
总的来说,对于所有开发人员,推荐的策略是在应用程序的预期寿命内,使用相同的证书对所有应用程序进行签名。有几个原因说明您应该这样做:
应用程序升级 - 当您发布应用程序的更新时,如果要使用户能够无缝升级到新版本,您必须继续使用相同的证书或一组相同的证书对更新进行签名。当系统安装应用程序的更新时,它会将新版本中的证书与现有版本中的证书进行比较。 如果证书完全匹配,包括证书数据和顺序,则系统允许升级。 如果您在不使用匹配证书的情况下签署新版本,则还必须为应用程序分配不同的软件包名称 - 在这种情况下,用户将其作为全新应用程序安装新版本。
应用程序模块化 - Android系统允许由相同证书签名的应用程序在同一进程中运行,如果应用程序这样请求,则系统将其视为单个应用程序。 通过这种方式,您可以将应用程序部署为模块,并且如果需要,用户可以独立更新每个模块。
通过权限共享代码/数据 - Android系统提供基于签名的权限执行,使得一个应用程序可以向使用指定证书签名的另一个应用程序公开功能。 通过使用相同的证书签名多个应用程序并进行基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据。
确定签名策略的另一个重要考虑因素是如何设置用于对应用程序进行签名的密钥的有效期。
如何调试应用程序:
您可以在模拟器或设备上调试应用程序。
如果您计划支持单个应用程序的升级,应确保您的密钥有效期超过该应用程序的预期寿命。建议使用25年或更长的有效期。当您的密钥有效期过期时,用户将无法无缝升级到新版本的应用程序。
如果您将使用同一密钥对多个不同的应用程序进行签名,应确保您的密钥有效期超过所有应用程序的所有版本(包括将来可能添加到套件中的依赖应用程序)的预期寿命。
如果您计划在Google Play上发布您的应用程序,则用于签署应用程序的密钥必须具有在2033年10月22日之后到期的有效期。Google Play强制执行此要求以确保用户可以在新版本可用时无缝升级应用程序。
为什么要签名?
开发人员可以通过签名防止他人篡改他们的应用程序。
使用签名来保护您的应用程序!
这是基于公钥密码学的。您是唯一拥有私钥的人,因此只有您才能签署您的应用程序。用户可以信任这个应用程序是直接来自您的。如果私钥不可用,则数学证明无法篡改应用程序。
公钥密码学中有两个像硬币的面孔,即私钥和公钥。您将私钥保密,并锁在安全的地方。另一方面,您发布您的公钥。
这些密钥就像硬币的两面,因为您使用一个密钥进行加密,使用另一个密钥进行解密。
那么这如何应用于应用程序签名呢?
签名是使用私钥进行加密。
因为您发布了公钥,所以应用商店和用户都有您的公钥。他们可以解密您的应用程序,因此可以确定该应用程序确实是您自己创建的。Android 和应用商店会为他们执行此操作。
应用商店通过使用公钥对签名进行解密进行验证。
就是这些,朋友们。
签名 Apk: 生成已签名的 apk 意味着使用密码或仅您知道的密钥对您的 apk 进行加密,并且您必须永久记住此 apk,因为如果您的应用程序进行任何进一步升级,则必须使用它来访问。