Como corrigir o (s) parâmetro (s) inesperado (s) após o erro do APK de entrada (--ks-key-alias) no Android Studio
Se você é um desenvolvedor de aplicativos Android, pode ter encontrado a seguinte mensagem de erro ao tentar assinar seu arquivo APK usando a ferramenta apksigner:
Parâmetros inesperados após o APK de entrada (--ks-key-alias)
Esse erro pode ser frustrante e impedir que você publique seu aplicativo no Google Play ou em outras lojas de aplicativos. Neste artigo, explicaremos o que é assinatura de APK, por que é importante, o que causa esse erro e como corrigi-lo usando três métodos diferentes.
unexpected parameter(s) after input apk (--ks-key-alias)
Introdução
O que é assinatura de APK e por que é importante?
A assinatura do APK é o processo de assinar digitalmente seu arquivo APK com um certificado que prova que você é o autor do aplicativo e que o aplicativo não foi adulterado por ninguém. A assinatura do seu arquivo APK é exigida pelo Android antes de instalar ou atualizar seu aplicativo em um dispositivo. Também ajuda os usuários a verificar a autenticidade e a integridade do seu aplicativo.
Para assinar seu arquivo APK, você precisa de uma chave privada e um certificado público armazenados em um arquivo de armazenamento de chaves. Você pode usar o Android Studio ou a ferramenta apksigner das ferramentas SDK para assinar seu arquivo APK. A ferramenta apksigner permite que você assine APKs e confirme que eles serão verificados com sucesso em todas as versões da plataforma Android compatíveis com seu aplicativo.
Qual é o erro inesperado de parâmetro(s) e o que o causa?
O(s) erro(s) de parâmetro(s) inesperado(s) ocorre(m) quando você usa a ferramenta apksigner com uma sintaxe incorreta ou incompleta. A sintaxe para assinar um APK usando a ferramenta apksigner é a seguinte:
apksigner sign --ks --ks-key-alias
Se você omitir ou digitar incorretamente qualquer uma dessas opções ou adicionar opções extras após o arquivo APK de entrada, receberá esse erro. Por exemplo, se você usar --out em vez de --ks-key-alias ou se esquecer de especificar o alias do keystore, receberá este erro.
Como corrigir o erro
Método 1: Use a sintaxe correta para o comando apksigner
Exemplo de sintaxe correta
A maneira mais simples de corrigir esse erro é usar a sintaxe correta para o comando apksigner. Certifique-se de especificar todas as opções necessárias na ordem e no formato corretos. Por exemplo, se seu arquivo de armazenamento de chaves for denominado mykeystore.jks, seu alias de armazenamento de chaves for myalias e seu arquivo APK for myapp.apk, você deverá usar este comando:
apksigner sign --ks mykeystore.jks --ks-key-alias myalias myapp.apk
Explicação das opções de sintaxe
A tabela a seguir explica o que significa cada opção na sintaxe:
Opção
Descrição
--ks
O local e o nome do arquivo de armazenamento de chave que contém sua chave privada e certificado.
--ks-key-alias > O artigo ainda não foi concluído. >> >
O alias que identifica seu par de chaves no arquivo keystore. Você pode ter vários pares de chaves em um arquivo de armazenamento de chaves, cada um com um alias diferente.
<apk-file>
A localização e o nome do arquivo APK que você deseja assinar.
Você também pode usar outras opções opcionais para personalizar seu processo de assinatura, como --ks-pass para especificar a senha do keystore, --key-pass para especificar a senha da chave, --v1-signing-enabled e --v2-signing-enabled para habilitar ou desabilitar o esquema de assinatura do APK v1 ou v2 e --out para especificar o nome do arquivo APK de saída. Para obter mais detalhes sobre essas opções, você pode consultar o .
Método 2: Use um arquivo de armazenamento de chave compatível e senha
Como verificar as informações do arquivo keystore
Outra possível causa desse erro é que seu arquivo de armazenamento de chave ou senha é incompatível com a ferramenta apksigner. Por exemplo, se o arquivo de armazenamento de chaves estiver no formato PKCS12, você precisará convertê-lo para o formato JKS antes de usá-lo com o apksigner. Você pode usar o comando keytool do JDK para fazer essa conversão. Por exemplo, se seu arquivo de armazenamento de chaves PKCS12 for denominado mykeystore.p12, você poderá usar este comando para convertê-lo no formato JKS e nomeá-lo mykeystore.jks:
keytool -importkeystore -srckeystore mykeystore.p12 -srcstoretype pkcs12 -destkeystore mykeystore.jks -deststoretype jks
Você será solicitado a inserir as senhas de origem e destino para os arquivos de armazenamento de chaves. Lembre-se dessas senhas, pois você precisará delas mais tarde para assinar seu arquivo APK.
Você também pode usar o comando keytool para verificar as informações de seu arquivo keystore, como o alias, o certificado e o período de validade. Por exemplo, se seu arquivo de armazenamento de chaves JKS for denominado mykeystore.jks, você poderá usar este comando para listar seu conteúdo:
keytool -list -v -keystore mykeystore.jks
Você será solicitado a inserir a senha do armazenamento de chaves. Você verá os detalhes do seu par de chaves e certificado, como:
Nome alternativo: myalias Data de criação: 1º de janeiro de 2020 Tipo de entrada: PrivateKeyEntry Comprimento da cadeia de certificados: 1 Certificado[1]: Proprietário: CN=Meu nome, OU=Minha organização, O=Minha empresa, L=Minha cidade, ST=Meu estado, C=Meu país Emissor: CN=Meu nome, OU=Minha organização, O=Minha empresa, L=Minha cidade, ST=Meu estado, C=Meu país Número de série: 1234567890abcdef Válido de: Qua 01 de janeiro 00:00:00 UTC 2020 até: Sex 01 de janeiro 00:00:00 UTC 2030 Impressões digitais do certificado: SHA1: AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD SHA256: AA:BB:CC...DD (truncado para bre vity) Nome do algoritmo de assinatura: SHA256withRSA Subject Public Key Algorithm: Chave RSA de 2048 bits Versão: 3
Certifique-se de que seu nome de alias corresponda ao que você usa para assinar seu arquivo APK. Certifique-se também de que seu certificado é válido e não expirou.
Como criar um novo arquivo de armazenamento de chaves, se necessário
Se você não tiver um arquivo keystore ou se quiser criar um novo, poderá usar o comando keytool do JDK para gerar um. Por exemplo, se você deseja criar um arquivo de armazenamento de chaves JKS denominado mykeystore.jks com um par de chaves e um certificado com um alias de myalias, você pode usar este comando:
keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -validity 3650 -keystore mykeystore.jks
Você será solicitado a inserir a senha do keystore e algumas informações para seu certificado, como seu nome, organização, país, etc. Você também será solicitado a inserir a senha da chave, que pode ser diferente da senha do keystore. Make >> O artigo ainda não está finalizado. >> certifique-se de lembrar essas senhas, pois você precisará delas mais tarde para assinar seu arquivo APK.
Você também pode usar outras opções para customizar seu par de chaves e geração de certificado, como -dname para especificar o nome distinto de seu certificado, -sigalg para especificar o algoritmo de assinatura e -storetype para especificar o tipo de keystore. Para obter mais detalhes sobre essas opções, você pode consultar o .
Método 3: Use a versão mais recente do Android Studio e das ferramentas SDK
Como atualizar o Android Studio e as ferramentas do SDK
A última causa possível desse erro é que as ferramentas Android Studio ou SDK estão desatualizadas e não são compatíveis com o Esquema de Assinatura APK v2 ou v3 que você está usando. Para corrigir isso, você precisa atualizar suas ferramentas Android Studio e SDK para a versão mais recente disponível.
Para atualizar o Android Studio, você pode acessar Ajuda > Verificar atualizações no Windows ou Linux, ou Android Studio > Verificar atualizações no Mac. Você verá uma caixa de diálogo que mostra as atualizações disponíveis e permite baixá-las e instalá-las.
Para atualizar as ferramentas do SDK, você pode acessar Ferramentas > SDK Manager no Android Studio. Você verá uma janela que mostra os pacotes instalados e disponíveis para o seu SDK. Você pode selecionar os pacotes que deseja atualizar e clicar em Aplicar.
Certifique-se de ter a versão mais recente da ferramenta apksigner, localizada na pasta /build-tools//. Você pode verificar a versão da ferramenta apksigner executando este comando:
apksigner --versão
Você deve ver algo assim:
0.9 Android apk signer Uso: apksigner [opções] Comandos: assinar Assinar APK(s) verificar Verificar ajuda do APK(s) Imprimir esta mensagem
A versão mais recente da ferramenta apksigner em junho de 2023 é 0.9. Se você tiver uma versão mais antiga, precisará atualizá-la.
Como usar o apksigner do Android Studio
Se você preferir usar o Android Studio em vez da linha de comando, também pode assinar seu arquivo APK do Android Studio usando a opção Generate Signed Bundle / APK. Para fazer isso, você precisa seguir estas etapas:
Vá para Build > Generate Signed Bundle / APK no Android Studio.
Selecione APK como o módulo e clique em Avançar.
Selecione um arquivo de armazenamento de chaves existente ou crie um novo usando o botão Criar novo.... Digite a senha do armazenamento de chaves e a senha da chave e clique em Avançar.
Selecione as versões de assinatura que deseja usar (v1, v2 ou v3) e clique em Avançar.
Selecione a pasta de destino para o arquivo APK assinado e clique em Concluir.
O Android Studio gerará e assinará seu arquivo APK usando a ferramenta apksigner e mostrará uma mensagem quando terminar.
Conclusão
Resumo dos principais pontos
Neste artigo, aprendemos o que é assinatura de APK, por que é importante, o que causa o erro de parâmetro(s) inesperado(s) e como corrigi-lo usando três métodos diferentes. Vimos como usar a sintaxe correta para o comando apksigner, como usar um arquivo de armazenamento de chave e senha compatíveis e como usar a versão mais recente do Android Studio e das ferramentas SDK.
Chamada à ação e outros recursos
Esperamos que este artigo tenha ajudado você a resolver seu problema e assinar seu arquivo APK com sucesso. Se você tiver alguma dúvida ou feedback, por favor, deixe um comentário abaixo. Se quiser saber mais sobre assinatura de APK e tópicos relacionados, confira estes recursos:
Obrigado por ler e codificação feliz!
perguntas frequentes
O que é um arquivo APK?
Um arquivo APK é um arquivo de pacote de aplicativo Android que contém todos os arquivos e recursos necessários para instalar e executar um aplicativo em um dispositivo Android. Tem uma extensão .apk e pode >> O artigo está quase pronto. >> ser aberto e extraído usando um gerenciador de arquivos ou um aplicativo extrator de APK.
Qual é a diferença entre o esquema de assinatura de APK v1, v2 e v3?
APK Signature Scheme v1 é o esquema original e padrão que assina todo o arquivo APK com uma assinatura JAR. APK Signature Scheme v2 é um esquema mais novo e mais seguro que assina cada arquivo individual no arquivo APK com uma assinatura APK. APK Signature Scheme v3 é uma extensão da v2 que adiciona informações adicionais à assinatura, como o nome do pacote do aplicativo, o código da versão e o nome da versão.
Como posso verificar a assinatura de um arquivo APK?
Você pode usar a ferramenta apksigner ou a ferramenta jarsigner do JDK para verificar a assinatura de um arquivo APK. Por exemplo, se você deseja verificar a assinatura de um arquivo APK chamado myapp.apk usando a ferramenta apksigner, pode usar este comando:
apksigner verificar myapp.apk
Você verá uma mensagem informando se o arquivo APK foi verificado ou não e se há algum erro ou aviso. Você também pode usar a opção --verbose para ver mais detalhes sobre o processo de verificação.
Como posso assinar um arquivo de pacote de aplicativos?
Um arquivo de pacote de aplicativo é um novo formato que contém todos os arquivos e recursos necessários para gerar APKs otimizados para diferentes configurações de dispositivo. Ele tem uma extensão .aab e pode ser gerado e assinado usando o Android Studio ou a ferramenta de linha de comando bundletool. O processo de assinatura de um arquivo de pacote de aplicativos é semelhante ao de um arquivo APK, exceto que você precisa usar a opção --mode=universal para a ferramenta apksigner. Por exemplo, se você deseja assinar um arquivo de pacote de aplicativos chamado myapp.aab usando a ferramenta apksigner, pode usar este comando:
apksigner sign --mode=universal --ks mykeystore.jks --ks-key-alias myalias myapp.aab
Você também pode usar o Android Studio para assinar seu arquivo de pacote de aplicativos usando a opção Generate Signed Bundle/APK e selecionando Bundle como o módulo.
Como posso otimizar o tamanho do meu arquivo APK?
Existem várias maneiras de otimizar o tamanho do arquivo APK e reduzir o tempo de download e instalação para seus usuários. Algumas dessas maneiras são:
Use o formato Android App Bundle em vez do formato APK para gerar APKs otimizados para diferentes configurações de dispositivos.
Use as ferramentas ProGuard ou R8 para reduzir, ofuscar e otimizar seu código e remover recursos não utilizados.
Use drawables vetoriais ou imagens WebP em vez de imagens PNG ou JPEG para reduzir o tamanho da imagem e a perda de qualidade.
Use a ferramenta APK Analyzer do Android Studio para inspecionar seu arquivo APK e identificar possíveis áreas de melhoria.
0517a86e26
Yorumlar