При создании подписанного выпуска APK я столкнулся со следующим: если я создаю подписанный apk из студии android (через Build
-> Generate Signed APK...
) с файлом build.gradle
подобным этому (только соответствующие части):
signingConfigs { release { storeFile file('/keystore/location/mykeystore.keystore') storePassword 'storepassword' keyAlias 'key' keyPassword 'keypassword' } } buildTypes { release { signingConfig signingConfigs.release } }
Полученный отпечаток apk – YY:YY
.
Однако, если я построю APK с консоли, как описано здесь, с build.gradle
как это:
buildTypes { release { } }
И подпишите его с тем же файлом хранилища ключей, итоговый отпечаток apk – XX:XX
.
Кроме того, оба отпечатка SHA отличаются от моего отпечатка сертификата отладки SHA. В чем причина такого поведения?
Я использую buildToolsVersion 23.0.0
Android-версия для Android версии 1.3.0
Android sdk tools version 24.3.4
Версия для Android версии 1.3.1
Вы проверяли содержимое хранилища ключей? Отпечаток пальца должен соответствовать одному из сертификатов. В вашем хранилище ключей можно иметь несколько сертификатов, возможно, другой используется во время подписания с консоли? Вы можете проверить сертификаты, выполнив следующую команду:
Keytool -v -list -keystore / path / to / keystore
Введите пароль для хранилища ключей, и вы должны получить список псевдонимов. Я также проверил бы хранилище отладки, чтобы убедиться, что там нет других сертификатов.
Единственная возможность, о которой я могу думать, – это проблема пути, которая вызывает использование другого хранилища ключей.