自動化されたプロセス:
このツールを使用(Googleの新しいapksignerを使用):
https://github.com/patrickfav/uber-apk-signer
免責事項:開発者イム:)
手動プロセス:
ステップ1:キーストアを生成する(1回のみ)
一度キーストアを生成し、それを使用してunsigned
APK に署名する必要があります。にあるJDKによって提供されるkeytool
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
手順2または4:Zipalign
zipalign
これは、たとえばAndroid SDKで提供されるツールで%ANDROID_HOME%/sdk/build-tools/24.0.2/
、APKをPlayストアにアップロードする場合の必須の最適化手順です。
zipalign -p 4 my.apk my-aligned.apk
注:古いものを使用しているときjarsigner
、あなたはzipalignに必要AFTERの署名。新しいapksigner
方法を使用するときは、署名する前に行います(混乱するでしょう、私は知っています)。apksignerはAPKアライメントと圧縮を保持するため(jarsignerとは異なり)、apksignerの前にzipalignを呼び出すと正常に機能します。
あなたはアライメントを確認することができます
zipalign -c 4 my-aligned.apk
手順3:署名して確認する
build-tools 24.0.2以前の使用
使用jarsigner
キーツールのように、JDKディストリビューションに付属しているがで見つかった %JAVA_HOME%/bin/
ので、同じようにそれを使用します。
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
と検証することができます
jarsigner -verify -verbose my_application.apk
build-tools 24.0.3以降を使用する
Android 7.0では、APK署名スキームv2が導入されています。これは、アプリのインストール時間を短縮し、APKファイルへの不正な変更に対する保護を強化する新しいアプリ署名スキームです(詳細については、こちらとこちらをご覧ください)。したがって、Google はapksigner
(duh!)という独自のapk署名者を実装しました。スクリプトファイルは%ANDROID_HOME%/sdk/build-tools/24.0.3/
(.jarが/lib
サブフォルダーにあります)にあります。このように使う
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
と検証することができます
apksigner verify my-app.apk
公式ドキュメントはここにあります。