Getting SHA1 Fingerprint for Google API Console
Here is an example of Getting SHA1 Fingerprint for Google API Console. As we all know, To use any Google API in Android we need to generate an API Key from Google API Console. This same API key can be used for accessing multiple APIs under the same project but to generate an API key we need the SHA1 fingerprint of our Keystore.
Keystore is basically a place where the private keys for your app are kept. In simple words its a certificate generated by the user or a program, used for signing an Android app.
Type of Keystores in Android
In Android there are two types of keystores:
- Debug KeystoreDebug Keystore has generated automatically when the Android SDK is installed or run for the first time.
- Release KeystoreRelease Keystore has to be generated manually by the user for each application before release. As it requires private information such as name, password, etc.
We will see how to generate both API key but first of all the question is why we need two Keystores?
As we all know SHA1 is the unique signature that depends upon the Keystore and Debug Keystore is unique for each system and it is automatically maintained by the Android SDK. So according to that if we sign a Release APK with the debug Keystore we have to update the same application with the same Keystore in the future which is easy if you are working on the same machine for the lifetime but it is not practically possible. In this scenario, we will get stuck if we have to change the machine so to remove this problem we generate a Release Keystore (.jks) for each App that is transportable and we can update our application from the other machine too by using this Release Keystore.
Obtaining SHA1 Fingerprint from Android Debug Keystore
There are two ways to get the Debug Keystore SHA1 which are using the CLI or by using Android Studio. Let’s see both ways:
Option1: Using CLI
You can find many ways on the internet to get the SHA1 fingerprint for Android but here we are going to see specifically for React Native.
To get debug SHA1 finger print we usually target ~/.android/debug.keystore file but in case of React Native, it generates debug.keystore file inside the yourApp/android/app directory.
So to get proper SHA1 fingerprint for React Native you should list your SHA1 finger print from android/app/debug.keystore not from ~/.android/debug.keystore
Command recommended to get SHA1 fingerprint for React Native
keytool -list -v -keystore android/app/debug.keystore -alias androiddebugkey -storepass android -keypass android
Generally Command to get SHA1 fingerprint (SHA1 generated using this command will give you Developer Error)
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Option2: Using Android Studio
Obtaining SHA1 Fingerprint from Android Release Keystore
To get the Release key CLI is the only best option we found till now.
1. Windows:
– Open a terminal window
– Change the directory to the JDK bin directory. The path of the JDK depends upon the operating system you are using.
cd C:\Program Files\Java\jdk1.8.0_121\bin
– Now we have to run the following command using the keytool.exe file in JDK/bin
keytool -list -v -keystore {path_to_your_.jks_file} -alias {alias_name}
2. Ubuntu/Mac:
– Open a terminal window
– Now run the following command
keytool -list -v -keystore {path_to_your_.jks_file} -alias {alias_name}
Example
keytool -list -v -keystore C:\Users\Admin\Desktop\myproject.jks -alias myproject
It will prompt for a password. Enter the password, you will get the SHA1 and MD5 fingerprint.
I hope this post will help you to get SHA1 Fingerprint for Google API Console.
If you want to generate Key Hash for the Facebook Console or facing any issue like “The key hash does not match any stored key hashes” then you can visit our post for Getting Key Hash for Facebook Console.
Please check out our other posts to learn React Native.
Do we need to generate both debug and release.
If yes, then there would be two google.services.json file.
Please advice
Yes, You need to do it while releasing your application.
cant we just copy MD5 and SHA1 from android studio or from console
Sure You can do that. You can see it under “Using Android Studio” heading.
hi there is issue when im using cli they are genrating the SHA BUT on every new project create when creat the SHA they are genrate the same SHA that my issue to genrate the SHA key please guide us im still stuck 1 week
Try to generate using Android Studio. I generally use the same as it gives the correct SHA1.
can we replace app with another app. like my one application is already available on playStore but I want to replace with 2nd app. but it show me error like your SHA1 ceritificate not match etc. how i solve this issue.
I wish it can be. :p
But it is not possible. Once you create a release APK it creates a SHA1 certificate which should be unique. If you try to create a new app with the same package name you will not be able create the same SHA1. There can be a possibility if you keep the same package name and use the same release key.
Cna you please tell how we can find .jks file?
It depends on where you have generated the .jks file. It also depends upon the OS used. So if possible can you please share the OS which you have used?
Windows system
Android -React Native
In android/app folder
@Huda, you can use release apk path instead of .jks file. It works like charm.
you said “enter the password” , what password should I enter ?§