web-dev-qa-db-ja.com

コマンドラインからapkに署名する方法

コマンドラインからAndroid SDKを使用してapkファイルを作成しました。GooglePlayストアにアップロードした後、apkに署名する必要があります。これを行う方法を教えてください。

6
Ahamed Husain

ステップ1

まず、秘密署名鍵を生成する必要があります

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

このコマンドは、キーストアとキーのパスワードを要求します(いくつかの追加フィールドも)。 keystore file privateをいつでも保持することを忘れないでください。

ステップ2

次に、gradleをセットアップする必要があります

  1. my-release-key.keystoreの下に、ステップ1で生成したAndroid/appを配置します
  2. ~/.gradle/gradle.propertiesの下のAndroid/appを更新し、以下を追加します

    MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
    MYAPP_RELEASE_KEY_ALIAS=my-key-alias
    MYAPP_RELEASE_STORE_PASSWORD=<The password you choose earlier with the keytool>
    MYAPP_RELEASE_KEY_PASSWORD=<The password you choose earlier with the keytool>
    

ステップ3

最後に、Android/app/build.gradleを更新する必要があります。

Android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

これで、Androidディレクトリで次のコマンドを実行することにより、コマンドラインから署名付きリリースを簡単に生成できます

./gradlew assembleRelease

生成されたapkは、build/outputs/apk/releaseディレクトリの下にあります。

10
jomis
  1. まず、プロセスを開始するためにキーストアが必要です。このキーストアを使用してapkに署名します。今後の更新のために同じキーストアで署名する必要があります。キーストアの詳細については、こちらをご覧ください: https://developer.Android.com/studio/publish/app-signing#generate-key

  2. キーストアを生成したら、jarsignerユーティリティ(JDKフォルダーにあります)

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your-release-key.keystore Android-release-unsigned.apk alias -storepass password
  1. 次のステップは、zipalignツール(Android SDKフォルダーで利用可能))を使用してapkを検証することです。
path-to-Android-sdk/build-tools/version/zipalign -v 4 Android-release-unsigned.apk Android-prod-released-signed.apk
  1. 最後の手順は、apksignerツールで確認することです(Android SDKフォルダーで利用可能)
path-to-Android-sdk/build-tools/version/apksigner verify Android-prod-released-signed.apk

PS:パス、ファイル、パスワードを実際の値に置き換えます

7

次のコマンドに従って、apk Playストアを準備します。

ステップ1:署名されていないapkを作成します

./gradlew assembleRelease

ステップ2:署名済みapkを作成:

jarsigner -keystore YOUR_KEYSTORE_PATH -storepass YOUR_KEYSTORE_PASSWORD app/build/outputs/apk/release/app-release-unsigned.apk YOUR_KEY_ALIAS

ステップ3:apkのZipaligning:

your_Android-sdk_path/Android-sdk/build-tools/your_build_tools_version/zipalign -v 4 app/build/outputs/apk/release/app-release-unsigned.apk release.apk
4
borosuman