In release mode, my google sign-in is not working, but it works fine in debug mode. I got a similar question from SO here, but I didn't get perfect solutions.
My handleSignInResult
is coming false
- How can this be fixed?
In release mode, my google sign-in is not working, but it works fine in debug mode. I got a similar question from SO here, but I didn't get perfect solutions.
My handleSignInResult
is coming false
- How can this be fixed?
Because you are asking about release version of Android so I assume you already have signed your application with keystore.
So in order to obtain the SHA1 of your release app.
Go to your /bin
in JDK directory.
And run the following command in your cmd.
keytool -list -v -keystore "key store path" -alias "key alias"
This command will give you all the required details of your release version. Copy the SHA1 string and add it to your firebase console.
You are good to go.
I did face the similar kind of problem while creating an app using expo.
If you are able to sign in while you are running the project in expo but not in APK, then it's definitely the problem with the certificates. Make sure you have pasted all the sha1/sha256 in the Firebase console (as I used Firebase, I am writing this with respect to it).
If app is published
If you have published the app for internal purpose (as I had published it for internal purpose) in google play console, then paste the certificates provided in the play console. Google play console -> setup -> internal app sharing -> copy sha1/sha256 from the internal test certificates.
If you have published the app publicly then you can refer the above answers that will definitely help you.
For a Release (aka, Signed) APK: If you are only deploying to Firebase, you need to add the SHA1 for the same keystore file you used to sign the app.
After successfully adding the SHA1 into the Firebase Project console , get the latest google-services.json
and update your project's module local copy.
I didn't see any docs on this so far (seems it's something you have to dig for); found it to be tricky stuff. Lot's of answers on SO. Found the Firebase deployment solt. thanks to:
Answer in this thread to update SHA1 on Google Play, it gave me the idea maybe I need to fix something with SHA1: https://stackoverflow.com/a/44307293/2162226
How to get the SHA1 for a signed APK: https://stackoverflow.com/a/34933381/2162226
hope this helped.
Your app needs to get signed by a signing certificate / keystore (that .jks file) to create a release build. Release builds are created in either Debug mode or Release mode (We'll learn about this futher on)
There are 3 types of these keystore files that you will come across:-
./gradlew signingReport
Setup > App integrity > App signing
). This keystore stays with Google. You do not have access to its .jks
file. So its safe and wont get lost.Now, I would say, if you wish to get your app on Play Store, DO NOT generate Debug keystore. Generate and ALWAYS use your Upload keystore only.
Why is this important?
Even if you try to use
flutter build appbundle
with--release
flag, you are gonna get aapp-release.aab
which is signed in Debug mode! You can never publish an app signed in Debug mode in Play Store.
This explanation should make you understand that why some answers are wrong which recommend to get a Debug keystore
Certain Google Play services (such as Google Sign-in and App Invites) require you to provide the SHA-1
of your signing certificate
So if you are signing you app with upload keystore, add the SHA-1
fingerprint of your upload keystore in Firebase Console > Settings Icon > Project settings > Add fingerprint
You can get the SHA-1
of Upload keystore using keytool -v -list -keystore /path/to/upload-keystore.jks
Also, you can get the SHA-1
of Upload keystore and Deployment keystore on Play Console at Setup > App integrity > App signing
SHA-1
should I add? There are two SHA-1
at Play Console.You have to add both SHA-1
fingerprints to firebase.
Why?
When you upload app on play store
After signing , it will give you a new SHA which you have to add in your firebase account.
Its Working HAPPY Coding Cheers
Add new SHA1 in https://console.firebase.google.com
Create Release SHA1 using Command Line
keytool -list -v -keystore "E:\Jsk_file\healthNickel" -alias healthNickel
keytool -list -v -keystore "E:\Jsk_file\YOUR_JKS_FILE_NAME" -alias YOUR_JKS_ALIAS_NAME
Enter keystore Password :- YOUR_KEYSTORE_PASSWORD
Ok I struggled with this and finally I found the solution here it is:
First of all there are three SHA1 keys
Debug SHA1 key
Release SHA1 key
SHA1 key when you google play sign your app
Here you can get debug and release keys and for third key check HarshitG's answer. There is App signing certificate, this is that key.
Gather those three keys and add them in firebase console under SHA certificate fingerprints
Then Download the google-services.json
file and add it in your YOUR_PROJECT_NAME/project/app/
[you'll see it if you change the view to Project
from Android
]
Rebuild, generate release apk and enjoy :)
Best And fastest way to fix login social media by flutter application using firebase after upload the app in google play to solve problem go to google play console than setup > app integrity > from App signing key certificate copy sha1& sha256 and past in firebase account in android app add new sha1 and sha256 . for facebook error login also copy sha1 from App signing key certificate in google play console go to this website : http://tomeko.net/online_tools/hex_to_base64.php past in hex string and click covert than copy output base 64 and past inside app setting in facebook development
that's all
This answer for people who using Visual Studio Xamarin Forms.
After I upload my app on Google Play I thought it will work, but it didn't, I did every Sha1 ,APIs but still not working, after weeks of trying I just change one option in Visual Studio, Then Release version start working very well, then I Archive .abb file and sign it with release keystore upload it to Google Play and finally working.
This is the method, right click on your
YourApp.Android -> Properties -> Android Options -> Code shrinker and select None
Here is image for my options
CAUTION
If exist you put more than one identifier for the same 'signingReport' (copy SHA1 and SHA256 from the same report object) this isn't work, keep this im mind.
This works for me:
./gradlew signingReport
in android folder and get SHA1 from debug mode.keytool -list -v -keystore your_absolute_path_to_keystore -alias your_alias_from_keystore
(After that you will be promped to digit the password of key and it wil generate your SHA1 + SHA256 and other infos.)
google-services.json
again and move it to your android/app
If you have two or more firebase projects or the google cloud project, there may be a duplicate SHA1. If such conditions have been explained in this link.
https://support.google.com/firebase/answer/6401008?authuser=0
I had same problem, i did read some posts and was able to get work done by following below steps
Step 1) Please go to https://console.developers.google.com/apis/credentials?
Step 2) Click on create credentials ->select OAuth client ID ->select application type as Android
Step 3) then generate Signing-certificate fingerprint by writing below command in command prompt before that you should have keystore and its path
keytool -exportcert -keystore "D:\PlayStore_keystore\myproject.jks" -list -v
Step 4) after click on enter you will be asked for
Enter keystore password :
Enter password which you have used for creating keystore
Step 5) then it will give details regarding keystore like SHA1,SHA256,MD5 etc.
Step 6) Enter SHA1 as fingerprint and give packagename which is in manifest file
step 7) Click create you will get new OAuth client ID
step 8) now you have got client id you will need to get google-services.json file.
step 9) please goto https://console.firebase.google.com
step 10) if you already have project with that packagename ->go to overview ->click on menu icon where packagne name is written
step 11) select settings goto-> project Settings-> add Android app (in the bottom) -> there will be option called Add fingerprint
step 12) in step 5 you have got SHA1 paste that in certificate fingerprint and save it
step 13) now download new google-services.json file (as it conatins new client id ,certificate_hash etc)
step 14) paste that google-services.json file in app folder in your android project.
step 15) You are good to go...
Make sure you follow all the steps specified in the Guide
. If need be, create a new OAuth Client, new configuration file (the
google-services.json
) file and do everything step-by-step.Also try adding a Web Client giving the same credentials. And for Android as well as Web client give both the SHA1 for debug as well as the release keystores. In Android Studio, at extreme left you will see a tab saying "Build Variants". Select the release mode there and do everything after that.