現在、プライベートキーストアファイルでapkに署名していますが、別のキーストアファイルでそのapkに署名したいと思います。どうすればそのapkを辞任できますか..?
4 に答える
別のキーストアで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
追加のコマンドが役立つ場合があります。
- keytoolで新しいキーを生成するには
keytool -genkey -alias -keystore
- キーを一覧表示するには
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
非常に使いやすいオープンソースのapk-resignerスクリプトを使用することもできます。
APK-resigner:https ://github.com/onbiron/apk-resigner
./signapk.sh calculator.apk ~/.android/debug.keystore android androiddebugkey
また、デバッグキーを使用してAPKに署名する場合は、を使用できます。
./signapk.sh calculator.apk
- 古い看板を削除します
zip -d xxxx.apk(あなたのapkファイル)META-INF / *
- 署名apk
jarsigner -verbose -keystore xxxx.keystore(your keystore)-signedjar out_sign.apk(outfile)unsign.apk(unsign apk)xxxxxalias(your alias)
- サイン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)