Android сравнивает подпись текущего пакета с debug.keystore

Как и все мы, у меня есть приложение, подписанное 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 Fingerprint keytool -list -keystore ~ ​​/ .android / debug.keystore , но в классе Signature нет «отпечатка пальца md5» метод. Я хочу сделать это из-за MapView Key, Logging, LicenseChecker и тому подобного.

15
задан Bill the Lizard 1 June 2011 в 13:38
поделиться