I decided to publish 2 apks to the amazon store, one for the fire devices (which don't have gogle play services) and another one for all the other devices( usually, this means a device with access to google play store, but a manually downloaded amazon app store).
Since I uploaded the very same apk to the play store and to the amazon app store (for non-fire devices), I expected everything to work already. WRONG.
It turns out, that the SHA1 signature gets changed once you upload to the amazon app store (why? no idea).
So, here's how to make your google play services work for apps downloaded from the amazon app store.
Before you start, make sure you have enabled usb-debugging in your device so adb can get to it.
- Upload your app to the amazon app store and publish it
- Download your app from the amazon app store (make sure your phone has google play store as well) and connect your device to your dev PC.
- Open a terminal / command prompt and navigate to your android sdk platform-tools folder and set your google play games logging to VERBOSE
cd <android-sdk>\\platform-tools adb shell setprop log.tag.Games VERBOSE
- Start the adb logcat and send its output to a file.
adb logcat > log.txt
- Open your game and try to log in, you should receive the error Access Not Configured. Please use Google Developers Console to activate the API for your project. Unable to sign in - application does not have a registered client ID
- Close your app, and disable the usb debugging so the logcat creates the file.
- Disable verbose logging
adb shell setprop log.tag.Games INFO
- Navigate to to your android-sdk/platform-tools and you should now see the file log.txt, open it with your favorite text editor.
Locate the SHA1 signature for your client ID by searching for the SHA1 string. Here's mine, I just formatted a bit so you can read it easier:
W/GameHelper(23313): APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES
WGameHelper(23313): This is usually caused by one of these reasons: W/GameHelper(23313): (1) Your package name and certificate fingerprint do no matchthe client ID you registered in Developer Console.
W/GameHelper(23313): (2) Your App ID was incorrectly entered. W/GameHelper(23313): (3) Your game settings have not been published and you are
trying to log in with an account that is not listed as a test account.
W/GameHelper(23313): To help you debug, here is the information about this app
W/GameHelper(23313): Package name : org.xguzm.mathgame
W/GameHelper(23313): Cert SHA1 fingerprint: 6F:4A:A3:F6:11:EC:FB:B0:4C:F9:7E:B9:6A:68:DF:79:F1:97:9C:A2
W/GameHelper(23313): App ID from : 215657703011
W/GameHelper(23313): Check that the above information matches your setup in W/GameHelper(23313): Developer Console. Also, check that you're logging in with the right account (it should be listed in the Testers section if your project is not yet published).
W/GameHelper(23313): For more information, refer to the troubleshooting guide: http://developers.google.com/games/services/android/troubleshooting
Open your google play developer console and go to games services -> your game -> linked apps.
- Click on link new app.
- Name your app somethig like My game Amazon, select the same package that your normal app has, and paste the SHA1 fingerprint that you got from your log file.
- Save your changes and publish your game.
After you get the notice that your changes should be applied within the next few hours, you will be able to log in to your game services from your amazon-downloaded app.
The login was immediatly available for me after publishing, it might take some hours as the notice says before you are able to login.
There you go! Google play game services should be fully functional for you now.