Como assinar um ficheiro APK android

Estou a tentar assinar o meu ficheiro apk. Não consigo descobrir como fazê-lo. Não consigo encontrar boas direcções em profundidade. Tenho muito pouca experiência de programação, por isso qualquer ajuda seria apreciada.

Author: BenH, 2011-01-31

6 answers

O manual é suficientemente claro. Por favor, especifique com que parte você fica preso depois de trabalhar nele, eu sugiro: [[2]}

Https://developer.android.com/studio/publish/app-signing.html

OK, uma pequena visão geral sem referência ou eclipse ao redor, então deixe algum espaço para erros, mas funciona assim

    Abre o teu projecto no eclipse.
  • pressione o botão direito do rato - > ferramentas (ferramentas android?)- > exportar aplicação assinada (apk?)
  • passa. o feiticeiro:
  • Faz uma nova loja de chaves. lembre-se dessa senha
  • assina a tua aplicação
  • Guarde-o, etc.

Também, a partir da ligação:

Compilar e assinar com o ADT do Eclipse

Se estiver a usar o Eclipse com o ADT plugin, poderá usar o Assistente de exportação para exportar um assinado .apk (e mesmo criar um novo teclado, Se necessário). O Assistente de exportação executa todos os interacção com o teclado e Jarsigner para ti, o que te permite assinar o pacote com uma interface gráfica em alternativa de executar os procedimentos manuais para compilar, assinar e alinhar, como discutido acima. Logo que o assistente tenha compilado e assinou o seu pacote, ele também efectuar o alinhamento dos pacotes com zip align. Porque o Assistente de exportação usa tanto o Keytool como o Jassigner, tu devem assegurar a sua acessibilidade no seu computador, como descrito acima na configuração básica para a Assinatura.

Para criar um assinado e alinhado .apk in Eclipse:

  1. Seleccione o projecto no Pacote Explorer e seleccione o ficheiro > Exportar.
  2. Abra a pasta Android, seleccione Exportar a aplicação Android e carregue em Proximo.

    O Assistente de aplicações Android de exportação começa agora, que irá guiar você através do processo de assinatura sua aplicação, incluindo passos para seleccionar a chave privada com a qual para assinar .apk (ou criar um novo keystore e private key).

  3. completar o Assistente de exportação e a sua aplicação será compilada, assinado, alinhado e pronto para distribuicao.
 78
Author: Nanne, 2016-06-04 06:53:59
Aqui está um guia sobre como assinar manualmente uma APK. Ele inclui informações sobre o novo apk-signer introduzido em build-tools 24.0.3 (10/2016)

Processo Automatizado:

Utilize esta ferramenta (usa o novo apksigner do Google):

Https://github.com/patrickfav/uber-apk-signer

Declaração de exoneração de Responsabilidade: Im o programador :)

Processo Manual:

Passo 1: Gerar um teclado (apenas uma vez)

Precisas de gerar uma chave uma vez. e usa-o para assinar o teu apk. Use o keytool fornecida pelo JDK encontrado em %JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

Passo 2 ou 4: Zipalign

zipalign que é uma ferramenta fornecida pelo Android SDK encontrada em, por exemplo, %ANDROID_HOME%/sdk/build-tools/24.0.2/ é um passo de otimização obrigatório se você quiser enviar a apk para a Loja de jogos.

zipalign -p 4 my.apk my-aligned.apk

Nota: ao usar o antigo jarsigner, terá de fazer o zipalign depois de assinar. Ao usar o novo método apksigner faça-o antes de assinar (confuso, eu sei). invocar o zipalign antes do apksigner funcionar bem porque o apksigner preserva o alinhamento e compressão do APK (ao contrário do jarsigner).

Podes verificar {[24] } O alinhamento com

zipalign -c 4 my-aligned.apk

Passo 3: Assinar E Verificar

Usando ferramentas de compilação 24. 0. 2 e mais antigas

Uso jarsigner que, como o teclado, vem com a distribuição JDK encontrada em %JAVA_HOME%/bin/ e usá-la assim:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

E pode ser verificado com

jarsigner -verify -verbose my_application.apk

Usando ferramentas de compilação 24.0.3 e mais recentes

O Android 7.0 introduz o esquema de assinatura de APK v2, um novo esquema de assinatura de app que oferece tempos de instalação mais rápidos e mais protecção contra alterações não autorizadas nos ficheiros APK (ver aqui e aqui para mais detalhes). Thefore Google implementou o seu próprio apk signer chamado apksigner (duh!) O ficheiro do programa pode ser encontrado em %ANDROID_HOME%/sdk/build-tools/24.0.3/ (the .jar está na subpasta /lib. Usa-o como este

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

E pode ser verificado com

apksigner verify my-app.apk

A documentação oficial pode ser encontrada aqui.

 28
Author: for3st, 2017-05-23 12:26:23
Não te preocupes...! Siga estes passos abaixo e você receberá o seu assinado .ficheiro apk. Também estava preocupado com isso, mas este passo tira-me da frustração. Passos para assinar a sua aplicação:
  1. exportar o pacote sem assinatura:

Carregue com o botão direito no Projecto do Eclipse -> Ferramentas Android -> exportar o pacote de aplicações não assinado (como aqui exportamos o nosso GoogleDriveApp.apk para o ecrã)

Assine a aplicação usando o seu teclado e o ferramenta jarsigner (siga os passos abaixo):

Abra o cmd-- > mude a pasta onde está o seu " jarsigner.exe" existe (como aqui, no meu sistema, ele existe "C:\Program Files\Java\jdk1.6.0_17\bin"

Agora introduza o comando belwo no cmd:

Jarsigner-verbose-keystore c:\users\android\debug.armazenamento c:\users\pir fahim \ Desktops\GoogleDriveApp.apk my_keystore_alias

Pedir-lhe-á para fornecer a sua senha: Indique a frase-senha do teclado: Vai assinar o seu apk.Para verificar se a assinatura foi bem sucedida, pode executar:

Jarsigner -verificar c:\users\pir fahim\Desktops\GoogleDriveApp.apk

Deve voltar com: jar verificado.

Método 2

Se estiver a usar o eclipse com o ADT, então é simples compilar, assinar, alinhar e preparar o ficheiro para distribuição.o que tens de fazer é seguir estes passos.

  • Ficheiro > Exportar.
  • exportar a aplicação android
  • procurar-- > seleccionar o seu projecto
  • Próximo -- > Próximo

Estes passos irão compilar, assinar e alinhar o seu projecto com o zip e agora está pronto para distribuir o seu projecto ou enviar para a Play store do Google.

 8
Author: Pir Fahim Shah, 2014-05-14 02:00:29

Para os utilizadores do Intelij IDEA ou do Android Studio, façam estes passos:
* Do menu Build/Generate signed APK
* Você precisa criar um caminho de teclado. Na janela, carregue em Create new. Você vai criar um arquivo jks que inclui suas chaves. Seleccione a pasta, defina uma senha. Então, o teu teclado está bem.
* Crie uma nova chave para a sua aplicação usando alias, senha da Chave, seu nome, etc.
* Clique em Seguinte.
* Na janela seleccione Proguard ou não.

O teu ficheiro APK assinado é pronto.

Ficheiro de Ajuda: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html

 7
Author: trante, 2014-05-12 11:01:53
Encontrei este problema e foi resolvido ao verificar a versão min sdk no manifesto. Estava programado para 15 (ICS), mas meu telefone estava funcionando 10(Gingerbread)
 2
Author: RJL, 2012-02-06 20:04:37

APK Signing Process


Para assinar manualmente o ficheiro APK do Android, precisamos de três comandos abaixo.

1 gerar um ficheiro de teclado

keytool -genkey -v -keystore <_YOUR_KEYSTORE_NAME>.keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -validity 10000

2 assinar o seu ficheiro APK com o Jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>

3 alinhar a APK assinada com a ferramenta zipalign

zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH>

#STEP-1#

Generate Keystore file


F:\ru\ru_doc\Signed_apk\MySignedApp > keytool-genkey-v-keystore <_your_keystore_name>.keystore-também conhecido por -keyalg RSA - keysize 2048-validity 10000

Example_

F:\ru\ru_doc\Signed_apk\MySignedApp>keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000

Senha do teclado: yourApp@123 senha da chave: yourApp@123

CMD O / P-

D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
 -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  MySignedApp Sample
What is the name of your organizational unit?
  [Unknown]:  Information Technology
What is the name of your organization?
  [Unknown]:  MySignedApp Demo
What is the name of your City or Locality?
  [Unknown]:  Mumbai
What is the name of your State or Province?
  [Unknown]:  Maharashtra
What is the two-letter country code for this unit?
  [Unknown]:  IN
Is CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?
  [no]:  y

Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,
000 days
        for: CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra,
 C=IN
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
They don't match. Try again
Enter key password for <MySignedApp>
        (RETURN if same as keystore password):
Re-enter new password:
[Storing id.keystore]

D:\ru\SignedBuilds\MySignedApp>

#STEP-2#

Sign your app with your private keystore using jarsigner

Jarsigner -verbose-sigalg SHA1withRSA -digestalg SHA1 -keystore <_keystore_file_path><_alias_name>

Example_

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id

CMD O / P-

D:\ru\SignedBuilds\MySignedApp>jarsigner -verbose -sigalg SHA1withRSA -
digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id ---
ect
Enter Passphrase for keystore:
   adding: META-INF/MANIFEST.MF
   adding: META-INF/---.SF
   adding: META-INF/---.RSA
  signing: AndroidManifest.xml
  ..... 
    signing: classes.dex
  signing: lib/commons-codec-1.6.jar
  signing: lib/armeabi/libkonyjsvm.so
jar signed.

Warning:
No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not
be able to validate this jar after the signer certificate's expiration date (2044-02-07) or after an
y future revocation date.

D:\ru\SignedBuilds\MySignedApp>

Verify that your APK is signed


Jarsigner-verify-verbose-certs <_jarsigned_apk_>

Example_

jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk

CMD O / P-

D:\ru\SignedBuilds\MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
 s = signature was verified
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

jar verified.

Warning:
This jar contains entries whose certificate chain is not validated.
This jar contains signatures that does not include a timestamp. Without a timestamp, users may not b
e able to validate this jar after the signer certificate's expiration date (2044-02-09) or after any
 future revocation date.

D:\ru\SignedBuilds\MySignedApp>

#STEP 3#

Alinhar o pacote final da APK usando o zipalign

Zipalign-v 4 <_jarsigned_apk_file_bath><_zipaligned_signed_apk_file_path_>

Example_

zipalign -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O / P-

D:\Android\android-sdk\build-tools\19.1.0>zipalign -v 4 D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16
_prod_playstore\MySignedAppS1-release-unsigned.apk D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16_prod
_playstore\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

  4528613 classes.dex (OK - compressed)
 5656594 lib/commons-codec-1.6.jar (OK - compressed)
 5841869 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools\19.1.0>

Verify that your APK is Aligned succesfully


Zipalign-C-v 4

Example_

zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O / P-

D:\Android\android-sdk\build-tools\19.1.0>zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...

 4453984 res/drawable/zoomout.png (OK)
 4454772 res/layout/tabview.xml (OK - compressed)
 4455243 res/layout/wheel_item.xml (OK - compressed)
 4455608 resources.arsc (OK)
 4470161 classes.dex (OK - compressed)
 5597923 lib/commons-codec-1.6.jar (OK - compressed)
 5783198 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful

D:\Android\android-sdk\build-tools\19.1.0>

Nota:

Verify comandos são apenas para verificar o whwther APK é compilado e assinado corretamente!

Referência

Assinatura manualmente

Androidapk-code-signing-process

Espero que isto ajude em e e tudo.
 0
Author: Rupesh Yadav, 2017-06-05 09:58:05