【发布时间】:2011-09-01 14:50:53
【问题描述】:
正如我们所做的那样,当它处于开发模式(构建)时,我有一个由 debug.keystore 签名的应用程序(默认情况下)。当它投入生产时,我们用我们的私钥对其进行签名。 有什么方法可以在运行时确定当前包是使用 debug.keystore 签名的(处于开发模式)还是使用我们的私钥签名(处于生产模式)。
我尝试过类似的东西
PackageManager packageManager = getPackageManager();
try {
Signature[] signs = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature signature : signs) {
Log.d(TAG, "sign = " + signature.toCharsString());
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
我不知道下一步该怎么做?这是正确的做法吗?如何获得可比的 debug.keystore 签名?
我知道存在 MD5 指纹keytool -list -keystore ~/.android/debug.keystore 但在签名类中没有类似“md5 指纹”的方法。
我想这样做是因为 MapView Key、Logging、LicenseChecker 和类似的东西。
【问题讨论】:
-
现在我使用 1 个静态布尔值,每次我进行生产发布时都必须更改它。事情发生了,我忘记了。 :(