23

現在、プライベートキーストアファイルでapkに署名していますが、別のキーストアファイルでそのapkに署名したいと思います。どうすればそのapkを辞任できますか..?

4

4 に答える 4

33

別のキーストアでapkを辞任することができます。

次の手順を実行します:

リリースの署名:$1.apk -> $1_release.apk"

ステップ1:以前の署名を削除する

  • の拡張子をに変更し.apkます.zip
  • META-INFフォルダを開いて削除します
  • 拡張子を.apk
    Or
    コマンドに変更します。zip [originalapk]
    例:zip "$1".apk -d

ステップ2: release.keystoreで署名する:

指示:

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

例:

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

ステップ3:位置合わせ

指示:zipalign -f 4 [unalignedapk] [releaseapk]

例:

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

ステップ4:クリーンアップ

コマンド:rm 4 [unalignedapk]
例:rm "$1"_unaligned.apk


追加のコマンドが役立つ場合があります。

  1. keytoolで新しいキーを生成するには
keytool -genkey -alias -keystore  
  1. キーを一覧表示するには
keytool -list -keystore

ノート:

apkに署名するために、JDKを1.7から1.6.0_43アップデートにダウングレードしました。

理由:

JDK 7以降、デフォルトの署名アルゴリズムが変更され、APKに署名するときに署名とダイジェストアルゴリズム(-sigalgおよび-digestalg)を指定する必要があります。

指示:

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name
于 2013-03-14T14:47:12.940 に答える
19

以下のSOスレッドを確認する必要があります

別の証明書で.apkを辞任できますか

またはこれもあなたを助けるかもしれません

于 2012-06-06T11:27:02.610 に答える
8

非常に使いやすいオープンソースのapk-resignerスクリプトを使用することもできます。

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

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

また、デバッグキーを使用してAPKに署名する場合は、を使用できます。

./signapk.sh calculator.apk 
于 2013-04-03T11:27:37.550 に答える
7
  1. 古い看板を削除します

    zip -d xxxx.apk(あなたのapkファイル)META-INF / *

  2. 署名apk

    jarsigner -verbose -keystore xxxx.keystore(your keystore)-signedjar out_sign.apk(outfile)unsign.apk(unsign apk)xxxxxalias(your alias)

  3. サインapkが機能せず、jdk>=1.7の場合

    add params -digestalg SHA1 -sigalg MD5withRSA
    jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore xxxx.keystore(your keystore)-signedjar out_sign.apk(outfile)unsign.apk(unsign apk)xxxxxalias(your alias)

于 2016-07-31T04:53:59.397 に答える