Android SHA1 release keystore not working with Goo

2019-01-08 16:49发布

问题:

I am using the Google Maps Android API and I'm running into some issues.

I am signing my apk with android studio (created one at .android/keystore.jks). Also I'm selecting "release" as type in it. I have used the command

keytool -list -v -keystore C:\Users\Toshiba\.android\keystore.jks

to get the SHA1 fingerprint out of the keystore.

The SHA1 is correct, but the Map is not shown on a signed APK. It is shown in a debug APK.

Using keytool with the release keystore (keystore.jks) will get me this:

 SHA1: 33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX

The debug one works fine (I have added 2 to the API console in Google)

33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX;yac.breakingpoint
7C:28:61:5B:C3:4A:5C:50:44:AA:FD:58:69:E9:70:91:XX:XX:XX:XX;yac.breakingpoint

XX is blacked out.

The keytool says it is using SHA256withRSA as signature algorithm for both, the debug and the release keystore.

What am I doing wrong?

UPDATE So I've tried a new API key, clean project and rebuild it, new keystore - still not working on release... debug is fine!

UPDATE 2 Still not found a working solution... Help me!

UPDATE 3 Allright, got it working using a signed APK with build type debug. Extracted the CERT.RSA and runned keytool -printcert -file ./CERT.SA. Got the same result as for the release build type. In release it is not working!

UPDATE 4 Here's another try I made:

  • Created a new GIT Repository, commited to it.
  • The /buildfolders are not beeing commited since they are in the .gitignore files.
  • Created a new API key in the API console and added only the release SHA1 key to it.
  • Added that API key to the app and made a full clean with rebuild.
  • Generated a new signed APK file

It did not work.

UPDATE 5 A friend of mine tried to reproduce this issue. He has the exact same issue when working with android studio. Probably a android studio bug?

回答1:

You have two google_maps_api.xml files

One in this folder:

app/src/debug/res/values

Other in this folder:

app/src/release/res/values

But only the debug one contains your API key probably.



回答2:

1) Usually, you have to Clean and Rebuild the Project so it can work.

2) Make sure your build variant is on Release (Android Studio is friendly on this)

3) Also if you are debugging on your devices fully uninstall first then continue.

4) As the documentation says, make sure you have set up your manifest correctly.

Hope it helps.



回答3:

the SHA1 currently you are using for debugging purpose .

So when you are creating a signed apk u have one kestore file. try to generate new SHA1 key with this new keaystore file.

then using this keystore file create API key for signed apk from google console.

replace debug API key already stored in manifest file with the new one.

It will work

thanks



回答4:

Create new project in Android Studio with Google map Activity. After project automatically creates the SHA1 in the manifest. Use this SHA1 to get MAP api key. Test your app be sure it works. And after build you app on what project.