Android 如果需要以一个公司名称分发,那么使用两个不同的密钥库签署两个应用程序合法吗?

Android 如果需要以一个公司名称分发,那么使用两个不同的密钥库签署两个应用程序合法吗?,android,Android,我有一种情况,我可能会对同一家公司生产的两个不同应用程序使用两个密钥库,一个是Android,另一个是Unity。但我从未见过任何公司使用一个以上的密钥库来签署他们的应用程序,我通过比较谷歌、Facebook等应用程序验证了这一点。那么,对于同一家公司生产的两个应用程序,拥有两个密钥库是否符合市场和开发人员的逻辑 注意:我们需要将应用程序分发到世界各地。Google Play使用用于签名的密钥识别您的应用程序。如果您使用两个不同的密钥对同一代码库生成的APK进行签名,Google Play会将其

我有一种情况,我可能会对同一家公司生产的两个不同应用程序使用两个密钥库,一个是Android,另一个是Unity。但我从未见过任何公司使用一个以上的密钥库来签署他们的应用程序,我通过比较谷歌、Facebook等应用程序验证了这一点。那么,对于同一家公司生产的两个应用程序,拥有两个密钥库是否符合市场和开发人员的逻辑


注意:我们需要将应用程序分发到世界各地。

Google Play使用用于签名的密钥识别您的应用程序。如果您使用两个不同的密钥对同一代码库生成的APK进行签名,Google Play会将其视为两个不同的应用程序。我不知道你为什么要这样做,但我也不知道有任何政策禁止这样做。

你可以使用两个不同的密钥库签署两个不同的应用程序,这是一种非常有效的方法。或者,您可以使用相同的密钥库,但如果这样做,则必须为不同的应用程序使用不同的别名。我使用不同的密钥库为同一家公司的不同应用程序签名,这没有错

密钥库可以比作带钥匙的保险箱:您可以有多个保险箱,但每个应用程序只能有一把钥匙。如果您在一个保险柜中存储多把钥匙,或者有多个保险柜,每个保险柜有一把钥匙

从技术上讲:一个别名是应用程序的密钥,密钥库是安全的。所以从本质上讲,它没有任何区别,因为使用的别名是不同的。不管您如何存储它们,因为keystore(AFAIK)除了保存别名之外不保存任何类型的值。别名是它签名时使用的密钥,并且别名对于每个应用程序都是唯一的。如果您将其存储在这个或那个密钥库中,则无所谓——别名仍然是唯一的

TL:DR应用程序使用别名签名,这意味着无论您将这些别名存储在此密钥库还是该密钥库中,别名都是唯一的,并且每个应用程序的别名都是唯一的


密钥库是密钥库,可以理解为密钥存储。任何曾经签署过应用程序的人都知道这不是使用密钥库本身完成的,而是密钥库中的别名。钥匙在储藏室里。无论您使用这个密钥库还是那个密钥库,每个应用程序的别名都是唯一的。因此,每个应用程序都使用一个单独的别名进行签名,而不管它在哪个密钥库中


至于其中一个相对于另一个的优势,我个人采用以下设置:

  • 每个应用程序一个密钥库
  • ->Lite和完整版本(如果适用)位于同一密钥库中
  • 但应用程序A和B存储在两个不同的密钥库中
为什么??如果我丢失了一个旧应用程序的密钥库,这并不重要(旧应用程序=死应用程序,不接收更新,等等),因为我仍然拥有我正在维护的密钥库。我不确定文件的损坏情况如何,但如果可能(并且确实发生),一个应用程序会受到影响,而不是所有应用程序

正如@BillyFerguson所提到的,如果你销售一个应用程序,你可以发送一个密钥库而不是整个密钥库

但是,您必须跟踪大量文件,这可能很难做到,而且您可能会丢失对密钥库的跟踪


尽管拥有单个密钥库的优势在于,您知道所有应用程序都在其中,并且不需要跟踪可能数百个密钥库。但这需要在备份系统中定期更新,因为文件会更新,而不是添加新文件

这样做是完全合法的,但更令人讨厌。您可以使用同一密钥库对任意数量的应用程序进行签名,这样做绝对没有问题。关于为什么要使用多个密钥库,我能想到的唯一论点是,如果你打算将其中一个应用程序卖给其他人。然后,为每个应用程序使用单独的密钥库是很有用的,因为您可以只为它们提供用于签署应用程序的密钥库/密码,而不必担心更改使用该密钥库的所有其他应用程序的密钥库

这有意义吗