Unable to sign into Google Play Services for manually installed APK
When I manually install the APK for an app I am working on, I am unable to log into Google Play Services. There is no error given on screen, but I know it is failing because none of the Google Play Services work, an the "Connected" property is false.
I connected to the running app with adb catlog, and noticed this error which seems relevant:
E/SignInIntentService( 1266): Access Not Configured. Please use Google Developer s Console to activate the API for your project. E/SignInIntentService( 1266): dix E/SignInIntentService( 1266): at dec.a(SourceFile:151) E/SignInIntentService( 1266): at cqe.a(SourceFile:331) E/SignInIntentService( 1266): at cqe.a(SourceFile:312) E/SignInIntentService( 1266): at cph.a(SourceFile:634) E/SignInIntentService( 1266): at djo.a(SourceFile:250) E/SignInIntentService( 1266): at com.google.android.gms.games.service.GamesSig nInIntentService.onHandleIntent(SourceFile:389) E/SignInIntentService( 1266): at android.app.IntentService$ServiceHandler.hand leMessage(IntentService.java:65) E/SignInIntentService( 1266): at android.os.Handler.dispatchMessage(Handler.ja va:99) E/SignInIntentService( 1266): at android.os.Looper.loop(Looper.java:137) E/SignInIntentService( 1266): at android.os.HandlerThread.run(HandlerThread.ja va:61) E/LoadSelfFragment(16340): Unable to sign in - application does not have a regis tered client ID W/SignInActivity(16340): onSignInFailed()... W/SignInActivity(16340): ==> Returning non-OK result: 10004
Full log can be found here: http://pastebin.com/KDFbJ4un
When I run the application from Xamarin Studio, I am able to sign into Google Play Services without any problems. However, now I want to test in-app billing which I believe requires that I run the signed APK I uploaded the the Android Developer Console, so I am manually installing the APK.
Is there something special I need to do to get my stand-along apps connecting to Google Play? Is there a better way to test in-app billing in Xamarin Studio?
Isn't it because the signing key or package name doesn't have permission in Google Console?
You need to sign into Google Developer Console, add the SHA1 to your key and package name for your app. The SHA1 you can get with
keytool -exportcert -alias androiddebugkey -keystore <path-to-debug-or-production-keystore> -list -v
The path to your debug keystore on Mac and Linux is in your home dir in a hidden directory called .android: ~/.android/debug.keystore and the password is android On Windows, I guess it's at %USERPROFILE%\.android\debug.keystore, but I don't have a Windows to validate.
I've been messing around with this for a day or so, and it finally started working. I was trying many different things, so I am not 100% sure what fixed the issue, but I think this is what did it:
I added the following to my android manifest file:
<uses-permission android:name="com.android.vending.INTERACT_ACROSS_USERS_FULL" />
I did this because I noticed this other error in my logcat:
W/ActivityManager( 465): Permission Denial: get/set setting for user asks to ru n as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
I think this started happening because I have added multiple google+ users to my phone (to test in-app purchases).