What does Android app signing means?

malhobayyeb picture malhobayyeb · Feb 22, 2015 · Viewed 7.9k times · Source

After developing android app, I have to sign it in order to publish it to Play store.

What does singing process actually do?

I thought it related to encryption, but I am able to uncompress the apk file without any need to my app's signing keys.

Answer

Psypher picture Psypher · Feb 22, 2015

Android requires that all apps be digitally signed with a certificate before they can be installed. Android uses this certificate to identify the author of an app, and the certificate does not need to be signed by a certificate authority. Android apps often use self-signed certificates. The app developer holds the certificate's private key.

The basics behind protecting your Android app is to use a generated certificate and digital “key” which provides a unique, encrypted, and reasonably un-hackable signature. This proves that the app came from you, not some other suspicious source.

On Android, this is done via a keystore. The keystore is a simple file with a really large block of encrypted data. This file can be stored anywhere on your computer, and this is generally the first problem that developers encounter. There are two types of keystores that you should be aware of: debug and release. Keystore files are also protected by a pair of passwords: one for the keystore file itself and another for each keystore/alias pair within the file. While these passwords should ideally be unique, most developers use the same password for both.

You can sign an app in debug or release mode. You sign your app in debug mode during development and in release mode when you are ready to distribute your app. The Android SDK generates a certificate to sign apps in debug mode. To sign apps in release mode, you need to generate your own certificate.

How to sign your apps in Android Studio