我正在相互检查包签名以确定它们是否不兼容(针对不同的密钥库编译)。我注意到这PackageInfo.signatures
几乎总是一个包含单个条目的集合,这对我来说很有意义。我使用调试或生产密钥库构建我的应用程序,这决定了包的签名(这是我此时对 apk 签名过程的简单理解)。我知道如果我不特别询问此信息(通过传递PackageManager.GET_SIGNATURES
标志),这将是空的,但我不太明白会有多个信息的情况。
我编写了一些调试代码并在我的个人 Android 手机上运行它。在我手机上安装的 300 多个软件包中,除了一些似乎来自我的服务提供商(com.verizon.* 命名空间)的软件包外,所有软件包都只有一个签名。
我觉得我的用例(包管理)考虑应用程序包将具有单个签名是可以接受的,但我想确保我没有遗漏可能引入边缘案例错误的东西。