- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我了解使用相同 key 签署所有 Android 应用程序的好处 - 数据共享等 - 以及 Google 推荐的事实。
我的想法是,使用不同的 key 签署每个应用程序(至少每个与其他应用程序无关且不太可能需要共享数据的应用程序)是有利的,这可能有一个重要原因。这是因为如果您最终想要或需要将您的代码交给其他开发人员或公司以在将来进行更新。
在这种情况下(例如,如果您出售了您的应用程序,可能会出现这种情况),您将需要提供您的应用程序签名时使用的 key ,以便新所有者使用他们所做的任何改进更新 Play 商店。
现在,如果您使用相同的 key 签署了所有应用程序,则您无法在不损害所有其他应用程序或在新程序包/证书下重新发布它们的情况下将您的 key 提供给该应用程序的新所有者以及随之而来的所有问题。如果您使用自己的 key 对所有不相关的应用进行签名,则可以毫无顾虑地发送此应用的一个 key 。
所以问题是 - 是这样吗?还是我误解了这里的基本内容?
作为第二个问题,如果我的上述想法是正确的,您可以使用相同的 keystore ,并且为您的不同应用程序的所有 key 使用不同的别名吗?根据我的理解,别名是实际的 key 对,但是您可以将它们“拉出” keystore 以将它们发送给新的开发人员,就像上面概述的情况一样吗?还是应该为这种意外情况做计划的人为每个应用程序使用一个新的 keystore ?
非常感谢!
最佳答案
撇开 Google 的建议不谈,许多人认为您应该使用自己的 key 为每个应用程序签名。在一个非常真实的意义上,应用程序 key 的所有权(即知识)本质上是该应用程序和任何其他具有该 key 的应用程序的所有权。没有任何机制可以更改应用程序的 key 。
使用相同 key 签署不相关应用程序的另一个潜在问题是,如果/当您的公司发展壮大时。谨慎的做法是尽量减少单个心怀不满的员工/合作伙伴可能对您的业务造成的损害。一个多疑的人甚至可能会独自承担使用生产 key 签署应用程序的责任。
如果我正确理解你第二个问题的前提,那么你是对的。 keystore 只是 key 的集合,别名只是识别每个 key 的一种简写方式。您可以复制 keystore 文件并有选择地删除一些别名( key )。
使用此命令查看可与keytool
命令一起使用的命令:
keytool -help
使用以下选项查看可以与删除命令一起使用的选项。不用说在修改 keystore 之前进行备份:
keytool -help -delete
关于android - 使用不同的 keystore /别名签署不同的 Android 应用程序可能带来的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17637025/
当我在工作区执行 certsign.sh 脚本时,出现以下错误 jarsigner 错误:java.lang.RuntimeException: keystore 加载:无效的 keystore 格式
如何: 生成 keystore 生成信任库 为了让 SSL 在客户端和服务器之间工作,我只需要 的帮助使用终端命令(Keytool 和 openssl)生成用于相互身份验证的 keystore 和信任
keystore 和信任库之间有什么区别? 最佳答案 keystore 包含私钥以及证书及其相应的公钥。 信任库包含来自您希望与之通信的其他方的证书,或来自您信任的可识别其他方的证书颁发机构的证书。
我已经尝试使用命令 keytool -import -keystore *.jks -alias alias_name -keypass alias_passwd -file *.x509.pem`
我试图找出.keystore文件和.jks文件之间的区别,但我找不到它。我知道 jks 代表“Java keystore”,两者都是存储键/值对的一种方式。 使用其中一种与另一种相比有什么区别或偏好吗
我有一个包含多个客户端证书的 Java keystore 文件。我希望在我的 Java 应用程序中仅选择这些证书之一来连接到服务。有没有简单的方法可以做到这一点?到目前为止,我找到解决方案的唯一方法是
我想知道是否有一种方法可以检测程序是在默认(调试) keystore (从 eclipse 运行时)还是在签名 keystore (发布到 Android 市场时)上运行 我在我的应用程序中使用谷歌地
我是Java世界的新手,虽然使用NetBeans代码创建Web应用程序工作正常,直到执行get方法,但当我试图执行SQL查询时,glassfish无法显示来自MSQL DB的数据并给出错误。我正在使用
在 Azure 管道中有以下任务 AzureResourceManagerTemplateDeployment@3 从 ARM 模板部署 Key Vault 然后,AzurePowerShell@5
我正在使用以下命令使用 OpenSSL 创建 keystore : openssl pkcs12 -export -in mycert.crt -inkey mykey.key \
在 Azure 管道中有以下任务 AzureResourceManagerTemplateDeployment@3 从 ARM 模板部署 Key Vault 然后,AzurePowerShell@5
我使用下面的代码尝试加载 keystore 文件,但收到 java.io.IOException: 无效的 keystore 格式异常。关于如何解决此问题或导致问题的原因有什么想法吗? 加载 keys
我目前正在评估 Artifactory Pro 版本的 jar 签名功能。我正在按照此处找到的手册进行操作:https://www.jfrog.com/confluence/display/RTF/W
当我尝试将证书添加到 Keystore 时,我遇到了一个奇怪的错误。 System.out.println(x509Certificate.getPublicKey()); // prints pub
作为加密和保存数据的一部分,我们使用 AES 算法和 openssl 生成了 key 。 openssl enc -aes-256-cbc -P -nosalt Openssl 已生成 KEY 和 I
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: I lost my .keystore file! 我丢失了在 Market 上发布的 Android 应用
我不小心删除了我的应用程序的 .keystore 文件,但我仍然有用于生成 .keystore 文件的 Keystore 密码。有什么方法可以使用密码恢复该文件吗? 最佳答案 不,这不可能。一旦你失去
我正在访问一个 https URL,证书已添加到我的应用程序 keystore 属性中。 但是,目标 https URL 的证书最近发生了变化。 我们不想重新编译代码并使用更新后的 keystore
所以我有一个应用程序,允许用户使用 HTTPS 配置服务器。服务器使用 Undertow。要向 Undertow 添加 HTTPS 处理程序,我需要调用 Keystore.getInstance("J
这个问题在这里已经有了答案: Truststore and Keystore Definitions (7 个答案) 关闭 6 年前。 我有一个 PKCS#12我将其视为 keystore 文件,因
我是一名优秀的程序员,十分优秀!