I've created an app on Google Play Developer Console and generated a Client ID using the debug.keystore. On the same machine I can build to device and emulator and login without problems. However if I do the same from another computer I can't login becuase it doesn't have the same key.
I guess I can solve this by copying the debug.keystore from one computer to another but is there a better way to do this while testing the app?
Related
In the past we were able to deploy private versions of our app to EMM's (e.g. VMWare, MobileIron) and test out managed configurations. But today, we are unable to test new app updates within a managed environment.
Android https://developer.android.com/work/managed-configurations
With new Google updates EMMs are no longer able to upload private versions of our app if the app package id conflicts with a publicly available app on Google Play. For regulatory reasons we are unable to just change the package id and test because it is technically not testing the same binaries. Best we can do now is simulate a managed environment using Test DCP : https://play.google.com/store/apps/details?id=com.afwsamples.testdpc
Is this the best we can test without publicly releasing the app update to Google Play? We have contacted VMWare and basically got the same answer but would like a confirmation. Uploading the app to a closed testing track on Google Play and then trying to importing to EMM did not work either.
iOS https://www.appconfig.org/ios/
Basically the same issue for iOS. Apple has kind of removed the Enterprise Developer Account which we previously used to sign and upload our own versions to EMM. The new eligibility requirements are too much. Alternatively, none of the EMMs work with TestFlight. And for iOS we do not know of any app like Android Test DCP to simulate a managed environment. I read a few github chains and Apple forums where companies are just releasing the app publicly then testing to make sure everything works. That can't be right, right?
I have seen several threads around this issue but I am still struggling.
My app is failing to sign in on Android with:
Unexpected response code 403 for https://www.googleapis.com/games/v1/players/me?language=en_US
I had this all working about 4 months ago but my hard drive failed and I am trying to get things working again on a newer version of Unity. I am only having this problem with NEW builds. My old apk still works fine so everything must be fine in the Google Play Developer Console. Something is not setup right in Unity.
I have tried with and without setting the "OAuth2 Client ID" from the Developer Console in the Android settings.
I have tried setting the keystore to .android/debug.keystore using the androiddebugkey with "android" as the password for both.
What else could it be?
So to sum up my comments up in an answer, that might be useful to somebody else.
1.) An app authenticates itself towards the Google Play Services with the combination of Keystore and Package name.
You can't sign in without or with another keystore. So you should always backup the keystore file together with your project in a version control system, that is safe from a single hard drive failure.
2.) If you lose keystore file, you can not update your app anymore.
But you could create a new app and link it to the same Google Play Game.
I'm writing an Android app with three other developers (for a school project) that makes use of various Google APIs. I set up my SHA1 key in the Developer Console with the correct package name and I can access the APIs just fine from the app when it's launched through my Android Studio.
Now, my teammates are trying to get their local copies to work that they just pulled from our repo and the APIs aren't working (403 and SIGN_UP_REQUIRED errors).
What's the right way to set up their app so that they can run and test locally? And will I run into similar issues with the release-apk of the app?
It turns out that you need to add a new set of credentials for every machine / developer on your team, along with a set of credentials for the release-apk.
Developers Setup
Open your Google Developer Console and go to APIs and Auth > Credentials. In there, do "Add credentials" for everyone on your team - use the same package name that's in your code, but use each individual developer's unique SHA1 key (which you get by having them all run this): http://i.stack.imgur.com/rqgak.png
Now, everyone on your team should be able to run the app locally by launching through Android Studio and have access to all the Google API calls being made from within the app.
Release-apk Setup
For the release version, you'll have to generate the signed release-apk through Android Studio, along with the corresponding keystore. Then, follow the same steps as the image above, but this time instead of using the android-debug path, point to where your *.jks is stored.
Now you'll be able to distribute the release-apk and anyone will be able to run it and it'll work properly with all the Google API calls!
I am about to write an App which is customized to Macau, a city in Southern China. I am experiencing some uncertainties and would like to seek help from the fellow developers.
I have checked with Android Dev Guide and found out that we have gotta sign the App with self-generated key or a digital certificate issued from Certificate Authority. May I know whether there are any differences in the user experience when downloading and using the App for self-generated key or digital cert from CA? I heard that Symbian Apps would display alert message like "This App is untrusted" if the App is not formally verified. I do not want this to happen in my App, and I am worried about other tiny differences.
Moreover, I would like to ask about the requirements for digital certificate for signing the App. Is there any specification? Must the key be a .keystore file for signing? I am thinking about applying one from the Post Office for signing, but am worried whether it works.
From the Google Dev Guide, it says we need to plug the Android device to the computer using USB and run the App and perform testing using the computer. May I know more about the testing procedures from the experienced? After this debugging process how can I test the App on a standalone Android phone just like using the App normally? Can I simply sign the App with debug key in the debug mode and use it on the device? Must the device be developer device or Nexus One for performing testing?
If I publish the App to the Web server, i.e. users can download the file and use my file, would my source code be leaked out and get accessed by other people?
Last but not least, as I am developing the free App in Macau, I was stuck when I saw that Macau is not on the developer location list. I wonder whether I can publish my App on the Android Market. When I settle the Google Checkout payment, which option should I choose as my location, as neither China nor Macau is on the list. Should I choose "Hong Kong", my neighbouring city, or simply click "US" for convenience? Can the Android users in Macau download my App from the Android Market? (I cannot see Macau on the supported distribution location list...)
I would really appreciate it if you could kindly answer my loads of questions. Thank you very much!
That's way to many questions for one post, but I'll take a shot at a few.
You must sign your app using a keystore. It should be one you created, but hey, that is your choice. Any app not downloaded from the market is considered "untrusted" and users will receive that error upon installing it.
As far as debugging, you can debug on an emulator and/or a device (phone). Most people will recommend both. Information about how to get started can be found on the Android Development website. More specifically, you can try this
or this.
You can sign the app with a debug key if you setup USB debugging on the phone.
You publish apps as .apk files, which is complied code, not source. Even then it is hackable, just like anything else.
I am developing application with Google Map.
I've tested on the emulator and saw error line In the log:
01-23 16:04:28.453: ERROR/MapActivity(733): Couldn't get connection factory client
But it worked fine on the emulator.
Then I've signed the application and created its .apk file. I've put it on the web server downloaded and installed it on the real device (it is HTC with Verizon).
But my application didn't appear google maps on the device. I've checked API key and other configuration. Everything was ok. But google maps didn't work.
Have you faced to problem same as mine ?
Please suggest.
Thanks in advance.
Sounds like the maps API key you are using is not associated with the certificate you are signing the application with.
You will typically need to register for two maps API keys - one associated with the debug certificate that automatically signs each build that you deploy to the emulator during development, and another associated with your production certificate that you sign your APK with prior to publishing on the market.
http://code.google.com/android/add-ons/google-apis/mapkey.html