Я публиковал приложение в магазине приложений Aptoide. Они дали мне пустой apk, чтобы подписать его с тем же хранилищем ключей, которое используется в моем основном приложении. Я подписал приложение с помощью команды и jarsigner.
Подписание приложения прошло успешно, но отображается предупреждение:
сертификат подписавшего является самоподписанным
Я искал об этом, но большинство доступных решений предназначены для сертификата SSL, а не для подписи apk.
тлдр; Это не имеет значения для приложений Android.
Во-первых, вы должны подписать свой APK с помощью apksigner вместо jarsigner
: apksigner
был создан специально для Android для подписи APK и является гораздо более эффективным, в то время как jarsigner
был разработан для подписи любого JAR, поэтому некоторые сообщения, которые вы видите, не имеет большой смысл в мире Android.
Чтобы объяснить это конкретное сообщение, вы должны понимать, что при создании сертификата (в хранилище ключей) сертификат также криптографически подписывается. Если он подписан «доверенным лицом», люди, которые видят этот сертификат, могут убедиться, что сертификат был действительно создан вами. Однако Android не проверяет подпись сертификатов (примечание: однако проверяет подпись APK), поэтому эта подпись бесполезна. Поскольку сертификат должен быть подписан, проще всего подписать его с помощью закрытого ключа, из которого был выпущен сертификат: вот почему он называется самоподписанным.