Android Studio и apksigner не будут подписывать приложение с подписью v1

#android #android-studio #apksigner

#Android #android-студия #подписыватель

Вопрос:

У меня есть приложение, minSdkVersion = 24 но когда я использую диалоговое окно подписи Android Studio, apk никогда не подписывается v1 (магазин, который я использую, принудительно включает подписи v1). Я пробовал варианты сортировки, но это не работает. Кроме того, я попытался использовать apksigner с опциями --v1-signing-enabled true и --max-sdk-version 23 принудительно подписать v1, но, похоже, это не работает. apksigner verify также сообщается, что apk не подписан с v1.

Есть ли способ заставить Android Studio или apksigner всегда подписываться с помощью v1, несмотря minSdkVersion gt;= 24 на это ?

Ответ №1:

Рискуя соответствовать стереотипу StackOverflow, не могли бы вы объяснить, почему вы хотите абсолютно подписать контракт с v1?

Поскольку подписание v2 строго более безопасно и быстрее, чем подписание v1, и поскольку все версии Android 24 поддерживают подписание v2, в этом случае нет причин использовать подпись v1, поэтому в Android Studio есть оптимизация, чтобы не использовать подпись v1 в этом случае, так как это замедляет сборку без уважительной причины.

Более того, начиная с Android 11, для установки приложения требуется подпись v2, поэтому, если вы не собираетесь поддерживать эту (или любую более позднюю) версию, вам потребуется подпись v2, и, таким образом, подпись v1 всегда будет игнорироваться платформой Android.

Если вы намерены использовать подпись v1 для собственной проверки безопасности, вам, вероятно, не следует этого делать, но нам нужно знать, для чего вы ее используете, чтобы предложить альтернативу.

Комментарии:

1. Серверная часть магазина, которую я использую для загрузки своих приложений, включает подписи v1. На самом деле я загружаю в экземпляр репозитория fdroid, и для этого требуются приложения, подписанные как с v1, так и с v2. В предыдущих версиях Android Studio раньше был флажок для входа в v1, но он больше недоступен.

2. Вы можете отправить ошибку в Studio, но это вряд ли далеко уйдет, так как эти магазины должны скорее принимать APK с подписью версии 2 только для соответствия поведению платформы Android. Попробуйте вместо этого обратиться в эти магазины, чтобы они могли это исправить.

3. В качестве альтернативы можно использовать более старую версию AGP :/