top of page

Unexpected parameter(s) after input APK (--ks-pass): Corrija o erro de compilação do seu aplicativo



Como corrigir o(s) parâmetro(s) inesperado(s) após o erro do APK de entrada (--ks-pass)




Se você é um desenvolvedor Android, pode ter encontrado o erro "Parâmetro(s) inesperado(s) após a entrada do APK (--ks-pass)" ao tentar assinar seu arquivo APK usando a ferramenta apksigner. Esse erro pode impedir que você gere um APK assinado válido que possa ser instalado em dispositivos ou carregado em lojas de aplicativos. Neste artigo, explicaremos o que é assinatura de APK, o que causa esse erro e como corrigi-lo.


O que é assinatura de APK e por que é importante?




A assinatura do APK é o processo de assinatura digital do arquivo do pacote de aplicativos Android (APK) com um certificado que comprova sua autenticidade e integridade. Assinar seu APK garante que ele não foi modificado ou adulterado por ninguém além de você, o desenvolvedor. Ele também permite que os usuários e as lojas de aplicativos verifiquem se o aplicativo vem de uma fonte confiável.




unexpected parameter(s) after input apk (--ks-pass)




Noções básicas de assinatura de APK




Para assinar seu APK, você precisa de um arquivo keystore que contenha uma chave privada e um certificado público. A chave privada é usada para criptografar a assinatura do seu APK, enquanto o certificado público é usado para verificá-la. O certificado contém informações como seu nome, organização e período de validade. Você pode criar um arquivo de armazenamento de chave usando ferramentas como keytool ou Android Studio.


Esquemas de assinatura de APK




Existem diferentes esquemas para assinar seu APK, dependendo da versão da plataforma Android que você deseja. Os mais comuns são:


  • APK Signature Scheme v1 (também conhecido como assinatura JAR): Este é o esquema original que assina todo o arquivo APK como um arquivo JAR. É suportado por todas as versões do Android.



  • APK Signature Scheme v2 (também conhecido como assinatura v2): Este é um esquema mais recente que assina cada arquivo dentro do APK individualmente. É compatível com Android 7.0 (API de nível 24) e superior. Ele oferece instalação e verificação mais rápidas, proteção mais forte contra alterações não autorizadas e suporte para rotação de chaves.



  • APK Signature Scheme v3 (também conhecido como assinatura v3): esta é uma extensão da assinatura v2 que adiciona informações adicionais à assinatura, como metadados de tempo de instalação e certificados de chave de atualização. É compatível com Android 9.0 (API de nível 28) e superior.



Você pode escolher qual esquema usar ao assinar seu APK usando ferramentas como apksigner ou Android Studio.


Ferramentas de assinatura de APK




Existem diferentes ferramentas que você pode usar para assinar seu APK, dependendo de sua preferência e fluxo de trabalho. Alguns dos mais comuns são:


  • apksigner: Esta é uma ferramenta de linha de comando que permite assinar APKs e confirmar que suas assinaturas serão verificadas com sucesso em todas as versões do Android suportadas. Ele está disponível na revisão 24.0.3 e superior do Android SDK Build Tools.



  • jarsigner: Esta é outra ferramenta de linha de comando que permite assinar arquivos JAR, incluindo APKs usando o esquema v1. Faz parte do Java Development Kit (JDK).



Android Studio: Este é um ambiente de desenvolvimento integrado (IDE) que permite criar, construir, executar, depurar e assinar aplicativos Android. Ele possui um assistente integrado que orienta você no processo de geração de um arquivo de armazenamento de chaves e na assinatura de seu aplicativo.O que causa o(s) parâmetro(s) inesperado(s) após o erro do APK de entrada (--ks-pass)?




O erro "Parâmetros inesperados após o APK de entrada (--ks-pass)" ocorre quando você tenta assinar um arquivo APK usando a ferramenta apksigner e fornece argumentos inválidos ou incorretos. Existem várias causas possíveis para esse erro, como:


Sintaxe ou ordem incorreta dos argumentos




A ferramenta apksigner espera uma sintaxe específica e uma ordem de argumentos ao assinar um arquivo APK. Por exemplo, você precisa especificar o arquivo keystore ou os arquivos de chave e certificado antes do arquivo APK de entrada e usar a opção --ks-pass para fornecer a senha do keystore. Se você omitir, colocar incorretamente ou digitar incorretamente qualquer um desses argumentos, poderá obter o erro. Por exemplo, se você escrever:


apksigner sign app.apk --ks keystore.jks --ks-pass pass:senha


Você receberá o erro porque colocou o arquivo APK de entrada antes do arquivo keystore. A sintaxe correta é:


apksigner sign --ks keystore.jks --ks-pass pass:password app.apk


Para evitar esse erro, certifique-se de seguir a sintaxe correta e a ordem dos argumentos, conforme descrito em [apksigner Estúdio Android Desenvolvedores Android](^2^).


Keystore ou formato de chave incompatível




A ferramenta apksigner oferece suporte apenas a determinados formatos de keystores e chaves para assinatura de arquivos APK. Por exemplo, o arquivo keystore deve estar no formato JKS ou PKCS12 e o arquivo de chave deve estar no formato PKCS8. Se você usar um formato diferente, como BKS ou PEM, poderá obter o erro. Por exemplo, se você escrever:


apksigner sign --key key.pem --cert cert.pem app.apk


Você receberá o erro porque está usando um arquivo de chave PEM em vez de um arquivo de chave PKCS8. O formato correto é:


apksigner sign --key key.pk8 --cert cert.pem app.apk


Para evitar esse erro, certifique-se de usar formatos compatíveis de keystores e keys conforme descrito em [Assine seu aplicativo Estúdio Android Desenvolvedores Android](^8^).


Keystore corrompido ou adulterado ou arquivo APK




A ferramenta apksigner verifica a integridade e autenticidade do keystore e dos arquivos APK antes de assiná-los. Se algum desses arquivos estiver corrompido, danificado ou adulterado, você poderá obter o erro. Por exemplo, se você editar ou modificar o arquivo APK depois de criá-lo, ou se fizer download ou copiar o arquivo de armazenamento de chaves de uma fonte não confiável, poderá receber o erro. Para evitar esse erro, certifique-se de usar keystore original e inalterado e arquivos APK de fontes confiáveis.


Como resolver o(s) parâmetro(s) inesperado(s) após o erro do APK de entrada (--ks-pass)?




Se você encontrar o erro "Parâmetro(s) inesperado(s) após o APK de entrada (--ks-pass)", existem algumas soluções possíveis que você pode tentar, dependendo da causa do erro. Aqui estão algumas sugestões:


Verifique a sintaxe e a ordem dos argumentos




A primeira coisa que você deve fazer é verificar se está usando a sintaxe correta e a ordem dos argumentos ao assinar seu arquivo APK com o apksigner. Certifique-se de especificar todos os argumentos necessários, como --ks, --key, --cert, --in e --out, e coloque-os na ordem correta, conforme descrito em [apksigner Estúdio Android Desenvolvedores Android](^2^). Além disso, certifique-se de usar os separadores corretos, como espaços, dois-pontos e sinais de igual entre os argumentos e seus valores. Por exemplo, em vez de escrever:


apksigner assinar app.apk--ks=keystore.jks--ks-passpass:senha


Você deve escrever:


apksigner sign --ks keystore.jks --ks-pass pass:password app.apk


Converter ou gerar um novo keystore ou chave




Se você estiver usando um formato incompatível de keystore ou chave para assinar seu arquivo APK com apksigner, será necessário convertê-lo em um formato compatível ou gerar um novo usando uma ferramenta como keytool ou Android Studio. Por exemplo, se você tiver um arquivo de armazenamento de chave BKS que deseja usar com o apksigner, poderá convertê-lo em um arquivo de armazenamento de chave JKS usando o keytool da seguinte maneira:


keytool -importkeystore -srckeystore bks.keystore -srcstoretype BKS -destkeystore jks.keystore -deststoretype JKS


Se você não tiver um arquivo de armazenamento de chave ou um arquivo de chave, poderá gerar um novo usando keytool ou Android Studio da seguinte maneira:


keytool -genkey -v -keystore jks.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000


Ou, no Android Studio, vá em Build > Generate Signed Bundle/APK e siga o assistente.


Verifique e alinhe o keystore e o arquivo APK




Se você tiver um arquivo de armazenamento de chave válido e compatível e um arquivo de chave, mas ainda receber o erro, pode ser necessário verificar e alinhar o armazenamento de chave e o arquivo APK usando ferramentas como jarsigner e zipalign. Essas ferramentas podem ajudá-lo a verificar se o keystore e o arquivo APK estão corrompidos ou adulterados e se estão alinhados corretamente para um desempenho ideal. Por exemplo, você pode usar o jarsigner para verificar a assinatura do seu arquivo APK da seguinte maneira:


jarsigner -verify -verbose -certs app.apk


Se a verificação falhar, talvez seja necessário assinar novamente seu arquivo APK com apksigner ou jarsigner. Se a verificação for bem-sucedida, você poderá usar o zipalign para alinhar seu arquivo APK da seguinte maneira:


zipalign -v 4 app.apk app-aligned.apk


Isso alinhará seu arquivo APK a um limite de 4 bytes, o que é recomendado para aplicativos Android. Você também pode usar a opção -c para verificar o alinhamento do arquivo APK existente sem modificá-lo.


Conclusão




Neste artigo, explicamos o que é a assinatura do APK, o que causa o erro "Parâmetro(s) inesperado(s) após a entrada do APK (--ks-pass)" e como corrigi-lo. Também mostramos como usar diferentes ferramentas, como apksigner, jarsigner, keytool e zipalign, para assinar, verificar e alinhar seus arquivos APK. Esperamos que este artigo tenha ajudado você a resolver seu problema e criar um APK assinado válido que possa ser instalado em dispositivos ou carregado em lojas de aplicativos.


perguntas frequentes




Qual é a diferença entre apksigner e jarsigner?




O apksigner é uma ferramenta que oferece suporte à assinatura de arquivos APK usando diferentes esquemas, como v1, v2 e v3. Ele também suporta a verificação de assinaturas de arquivos APK em todas as versões do Android suportadas. jarsigner é uma ferramenta que suporta a assinatura de arquivos JAR, incluindo arquivos APK usando apenas o esquema v1. Ele não suporta a verificação de assinaturas de arquivos APK no Android 7.0 e superior.


Como faço para assinar um arquivo de pacote de aplicativos (.aab)?




Um arquivo de pacote de aplicativo (.aab) é um formato que contém todos os recursos e o código do seu aplicativo em um único arquivo. Ele é usado pelo Google Play para gerar APKs otimizados para diferentes dispositivos. Para assinar um arquivo de pacote de app, você pode usar as mesmas ferramentas e etapas para assinar um arquivo APK, como apksigner ou Android Studio.


Como faço para atualizar o certificado do meu APK assinado?




Se quiser atualizar o certificado do seu APK assinado, você precisará usar um novo arquivo de armazenamento de chave ou arquivo de chave que contenha o novo certificado. Você também precisa usar um esquema de assinatura que suporte a rotação de chaves, como v2 ou v3.Você pode usar o apksigner ou o Android Studio para assinar seu APK com o novo certificado.


Como verifico se meu APK assinado é válido?




Para verificar se seu APK assinado é válido, você pode usar ferramentas como apksigner ou jarsigner para verificar sua assinatura. Você também pode usar ferramentas como zipalign para verificar seu alinhamento. Além disso, você pode usar ferramentas como adb ou Android Studio para instalar seu APK assinado em um dispositivo ou emulador e testar sua funcionalidade.


Como soluciono outros erros relacionados à assinatura de arquivos APK?




Se você encontrar outros erros relacionados à assinatura de arquivos APK, como "Keystore adulterado ou senha incorreta" ou "Nenhuma chave com alias encontrada no keystore", consulte [Assine seu aplicativo Estúdio Android Desenvolvedores Android] para mais informações e soluções. 0517a86e26


2 views0 comments

Recent Posts

See All
bottom of page