After 2 days of research I found that at the time you register your android application in Google Cloud Console -> your project - > API and auth, it ask you for fingerprint in order to generate ClientID and somehow my fingerprint was wrong (I accidentally added ~$
before this cmd keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1
) and due to this it was giving me wrong finger print and was the root cause of:
com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception.