Sunday, September 21, 2014

All about signing the apk and its effect in google play

  1. Generate a private key using keytool. For example:
    $ keytool -genkey -v -keystore my-release-key.keystore-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
    This example prompts you for passwords for the keystore and key, and to provide the Distinguished Name fields for your key. It then generates the keystore as a file called my-release-key.keystore. The keystore contains a single key, valid for 10000 days. The alias is a name that you will use later when signing your app.
  2. Compile your app in release mode to obtain an unsigned APK.
  3. Stand on google_play_services first then run below commands
    android update lib-project --path .
    ant clean
    ant release

    stand on your project root folder
    android update lib-project --path .
    ant clean
    ant release

    make sure your project file is updated with
    android.library.reference.2=../../Android/sdk/extras/google/google_play_services/libproject/google-play-services_lib
  4. Sign your app with your private key using jarsigner:
  5. $ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1-keystore my-release-key.keystore my_application.apk alias_name
    This example prompts you for passwords for the keystore and key. It then modifies the APK in-place to sign it. Note that you can sign an APK multiple times with different keys.
  6. Verify that your APK is signed. For example:
    $ jarsigner -verify -verbose -certs my_application.apk
  7. Align the final APK package using zipalign.
    $ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
    zipalign ensures that all uncompressed data starts with a particular byte alignment relative to the start of the file, which reduces the amount of RAM consumed by an app
  8. How to check your details in the keystore 
  9. keytool -list -keystore .keystore
  10. keytool -list -keystore .keystore -alias foo
    1. List all info ::
    keytool -list -v -keystore android-release-key.keystore
How to find that debug SHA1 ley to be used by Android MAP key

keytool -list -v -keystore C:\Users\<username>\.android\debug.keystore
password : android

keytool -exportcert -alias androiddebugkey -keystore C:\Users\ssaho3\.android\debug.keystore -list -v

1 comment: