2012-06-06 12 views
17

Aktualnie otrzymuję apk podpisany prywatnym plikiem kluczy, ale chcę podpisać ten plik APK z innym plikiem kluczy. Jak mogę zrezygnować z tego apk ..?Zrezygnuj z pliku APK z innym plikiem kluczy

+1

nie koleś, nie sądzę, że – Trikaldarshi

+0

proszę wyjaśnić ..1- czy chcesz podpisać ten sam podpisany apk lub nowy apk tego samego projektu ...... –

+0

Chcę zrezygnować z tego samego apk – Rookie

Odpowiedz

24

Można zrezygnować swoją apk z różnych kluczy.

Wykonaj następujące kroki:

podpisywania wydania: $1.apk -> $1_release.apk"

Krok 1: Usunięcie wszelkich poprzednich podpisującej

  • zmienić rozszerzenie swojej .apk do .zip.
  • Otwórz i usuń folder META-INF
  • zmienić rozszerzenie do .apk
    Albo
    polecenie: zip [originalapk]
    Przykład: zip "$1".apk -d

Krok 2: podpisaniu z uwolnienia.kluczy:

Polecenie:

jarsigner –verbose –keystore [keystorefile] –signedjar [unalignedapk] [originalapk] alias_name 

przykład:

C:\Program Files\Java\jdk1.6.0_43\bin> jarsigner -verbose -keystore release.keystore -signedjar "$1"_unaligned.apk "$1".apk release 

Etap 3: Wyrównywanie

Polecenie: zipalign -f 4 [unalignedapk] [releaseapk]

przykład:

C:\Users\Downloads\adt-bundle-windows-x86\adt-bundle-windows-x86\sdk\too ls>zipalign -f 4 "$1"_unaligned.apk "$1"_release.apk 

Etap 4: Uporządkowanie

Polecenie: rm 4 [unalignedapk]
przykład: rm "$1"_unaligned.apk


Dodatkowe polecenia może pomóc:

  1. Aby wygenerować nowy klucz z keytool
keytool -genkey -alias -keystore
  1. Do listy kluczy
keytool -list -keystore

Uwaga:

Aby podpisać nasze apki, obniżyliśmy JDK z wersji 1.7 do wersji 1.6.0_43.

Powód:

Począwszy od JDK 7, domyślnie podpisanie algorithim uległa zmianie, wymagając, aby określić podpis i trawić algorithims (-sigalg i -digestalg) podczas rejestracji APK.

Command:

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name 
7

Można również użyć skryptu apk-resigner open source, który jest bardzo łatwy w użyciu.

APK-resigner: https://github.com/onbiron/apk-resigner

./signapk.sh calculator.apk ~/.android/debug.keystore android androiddebugkey 

Także jeśli chcesz podpisać APK z kluczem debugowania, można użyć.

./signapk.sh calculator.apk 
6
  1. usunąć stary znak

    zip -d xxxx.apk (plik APK) META-INF/*

  2. znak apk

    jarsigner -verbose -keystore xxxx.keystore (twój kluczy) -signedjar out_sign.apk (plik_wy) unsign.apk (odpisać apk) xxxxxalias (alias)

  3. jeśli znak apk nie działają i jdk> = 1,7

    dodać params -digestalg SHA1 -sigalg MD5withRSA
    jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore xxxx.keystore (twój kluczy) -signedjar out_sign.apk (plik_wy) unsign.apk (odpisać apk) xxxxxalias (alias)

Powiązane problemy