Selecione pelo menos uma das versões de assinatura para usar no Android Studio 2.3
Agora, ao gerar um APK assinado no Android Studio, ele mostra duas opções (CheckBox), a saber 1. V1 (Jar Signature)
e 2. V2 (Full APK Signature)
como versões de assinatura na última etapa do processo de geração de APK assinado.
Então, qual é a diferença entre V1 (Jar Signature) e V2 (Full APK Signature) na nova atualização do Android Studio?
E qual devo usar (ou ambos) para assinar o apk para o lançamento da play store?
Além disso, estou recebendo o erro Instalar falha na análise sem certificados durante a instalação do APK quando uso a segunda opção.
Devo usar (ou ambos) para assinar o apk para o lançamento da play store? Uma resposta é SIM .
Conforme https://source.android.com/security/apksigning/v2.html#verification :
Eu tentei gerar build marcando a opção V2 (Full Apk Signature) . Então, quando tentei instalar uma versão compilada abaixo do dispositivo 7.0 e não consigo instalar a versão compilada no dispositivo.
Depois disso, tentei criar marcando a caixa de seleção da versão e gerar a versão. Então capaz de instalar o build.
fonte
Está escrito aqui que "Por padrão, o Android Studio 2.2 e o Plug-in do Android para Gradle 2.2 assinam seu aplicativo usando o APK Signature Scheme v2 e o esquema de assinatura tradicional, que usa assinatura JAR."
Como parece que essas novas caixas de seleção apareceram no Android 2.3, entendo que minhas versões anteriores do Android Studio (pelo menos a 2.2) assinaram com as duas assinaturas. Portanto, para continuar como antes, acho melhor marcar as duas caixas de seleção.
EDITAR 31 de março de 2017: enviou vários aplicativos com ambas as assinaturas => sem problemas :)
fonte
Eu acho que isso representa uma boa resposta.
Verificação do APK Signature Scheme v2
APK Signing Block
e verifique se:APK Signing Block
contêm o mesmo valor.ZIP Central Directory
é seguido imediatamente peloZIP End of Central Directory
registro.ZIP End of Central Directory
não é seguido por mais dados.APK Signature Scheme v2 Block
dentro doAPK Signing Block
. Se o bloco v2, se houver, prossiga para a etapa 3. Caso contrário, volte a verificar o APK usando o esquema v1.APK Signature Scheme v2 Block
:SubjectPublicKeyInfo
o primeiro certificado de certificados é idêntico à chave pública.Nota: o APK não deve ser verificado usando o esquema v1 se ocorrer uma falha na etapa 3 ou 4.
Verificação do APK assinado por JAR (esquema v1)
O APK assinado por JAR é um JAR assinado padrão, que deve conter exatamente as entradas listadas
META-INF/MANIFEST.MF
e onde todas as entradas devem ser assinadas pelo mesmo conjunto de assinantes. Sua integridade é verificada da seguinte forma:META-INF/<signer>.SF
eMETA-INF/<signer>.(RSA|DSA|EC)
JAR.<signer>.(RSA|DSA|EC)
é umaPKCS #7 CMS ContentInfo
estrutura com SignedData cuja assinatura é verificada sobre o<signer>.SF
arquivo.<signer>.SF
O arquivo contém um resumo de todo o arquivoMETA-INF/MANIFEST.MF
e os resumos de cada seção deMETA-INF/MANIFEST.MF
. O resumo do arquivo inteiroMANIFEST.MF
é verificado. Se isso falhar, o resumo de cadaMANIFEST.MF
seção é verificado.META-INF/MANIFEST.MF
contém, para cada entrada JAR protegida por integridade, uma seção com nome correspondente que contém o resumo do conteúdo não compactado da entrada. Todos esses resumos são verificados.MANIFEST.MF
e não fazem parte da assinatura JAR. A cadeia de proteção é, portanto,<signer>.(RSA|DSA|EC)
→<signer>.SF
→MANIFEST.MF
→ o conteúdo de cada entrada JAR protegida por integridade.fonte
De acordo com este link: ajuda de assinatura
O APK Signature Scheme v2 oferece:
É recomendável usar o APK Signature Scheme v2, mas não é obrigatório .
fonte