I'm having trouble with a recent Gingerbread AOSP build as I cannot add a google account in the settings -> accounts & sync menu. It seems like the option isn't there: I can add an exchange account, but not a google account. When I click on Add account, it goes to the Add an Exchange account screen, instead of letting me choose which kind of account I want to add (google or exchange).
My build is on Ubuntu 10.10 32-bit with Sun Java 1.6.0_24, so it is a 32-bit build, which is non standard for gingerbread, but I managed to get it to work using the instructions on the google site, as well as the instructions in this thread (http://groups.google.com/group/android-platform/browse_thread/thread/b0bb991131589363?pli=1). Other than that it is the stock emulator (lunch 1). I haven't tried the other configurations so I don't know if the problem repeats across them all.
Any ideas?
Cheers,
IG808
Google's proprietary applications are not included in AOSP. You'll have to find them elsewhere and install them to your device.
Related
I uploaded an app I developed to google play. Since the app isn't free, google doesn't allow me to download it to my device.
The first users who tried to download my app claimed they got the 505 error (by leaving their comments on google play).
I read some threads about this error here on stackoverflow and made some changes that hopefully fix the problem, but how can I check it myself? Do I need to use other people's devices and pay each time I want to check if my app is downloadable or is there a better option ?
thanks
edit: just to be clear - I'm looking for a way to see whether people can download and install my app without getting any error messages. Preferably by going to the google play and downloading it myself.
The app itself works great once it's downloaded and installed. The problem was that people couldn't download/install it on their device.
You can use Google Administration to check erros and statistics for your apps.
Login to your Google Account on this page:
https://play.google.com/apps/publish
There you'll find all your uploaded apps. You'll also find crash reports, etc. Just for better administration of your apps.
To test your app the best way is to use the debug or Run 'app' option in Android Studio. If you want to test the signed apk you can also build it inside Android Stuido with the Build -> Generate Signed APK option.
Or you use the console commands if you don't use an IDE.
Check the documentation of the ADB (Android Debug Bridge)
http://developer.android.com/tools/help/adb.html
I hope this helps.
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'm coming from an Android background so please bear with me.
I'm having a really tough time grasping the concepts of certificates, identifiers, and provisioning profile. I have signed up for a developer account, and (hopefully) gone through the correct steps to create a certificate and provisioning profile for production/distribution. I have tried looking up a guide for the newest xcode that would "walk" me through the whole process, but I keep finding old and outdated resources. I was just wondering if someone could go through the steps you need to export an iOS app.
I've followed the Apple Distribution guide, but I'm still very "confused". Again, I've never worked/developed/released on any platform besides Android, and I guess they made it very easy.
Apple states:
Create a distribution certificate.
Create a store distribution provisioning profile.
Archive and validate your app.
For Mac apps, test the Mac Installer Package.
Submit your app using Xcode or Application Loader.
I've created a distribution certificate. The "name" of it is my Companies name.
I've created a store distribution provisioning profile. The "name" of it is my Apps name.
So I'm confused with both of these things. Should I keep them secret? Should I download and save them? Also, what the hell is this wild card identifier.
I understand this is a broad question, and it may get flagged for being too specific, but I hope I am not the only person having this problem.
what do you mean by export an app? If you want to distribute the app to testers/clients you'll need to do the following steps:
Add devices to you apple account
Add devices to your development distribution profile
In xcode -> preferences -> accounts, double lick the iOS account (lower right corner) and hit refresh. This will pull down your new development profile with new devices.
In xcode, check your bundle identifier matches your provisioning profile (either in info.plist or targets->general->bundle identifier
in targets -> build settings, make sure 'code signing identity' is set to the same identity the provision profile uses.
in menu, select product -> archive. if build is successful, this will launch organizer.
in organizer, selected the most recent build, and click distribute
select save for enterprise or ad hoc deployment
select the development provisioning profile and export your app. It will now install and run on any of the devices you set up in step 1.
I implemented a continuous integration pipeline using Jenkins, but as final step I want Jenkins to deploy/upload the signed APK file to Google Play Store and AndroidPit. I looked for Jenkins/Hudson plugins but only found two: one for Appaloosa and one for Zubhium.
I have a working developer account both on Google Play and on AndroidPit and can manually upload the APK that Jenkins produces. But my question is: Does anybody know a way to teach Jenkins (e.g. via a shell script?) to upload the APK to the mentioned app stores?
There is a Google Play Android Publisher plugin for Jenkins which uses the Google Play Publishing API, announced at Google I/O 2014.
Google has also released Java and Python libraries to help make use of the API.
For more info on the API, see also:
http://android-developers.blogspot.com/2014/07/grow-with-google-play-scaled-publishing.html
I can talk only for Google's Play Store. There is a way, but be warned, it isn't beautiful, you have to code your solution. I am right now writing a Bachelor Thesis to solve this problem - "Continuous Delivery for Android Applications". My solution is mine, this means I don't raise a claim to have the perfect solution, but I can say it is quite working prototype.
I found out the following:
The first Solution is none. Google offers an Play Store API, but it lacks to upload stuff. Seems that they were already thinking about to make such an API, but it only offers In-App billing control
The 2nd solution is to use Apache HttpComponents Library, which lets you implement your own Client for the Google Play Developer Console, but HttpClient lacks a JavaScript Interpreter... Several ways to implement or add one. But of course, not the easiest way.
The 3rd Solution I am working on, is to use Selenium Web Browser Automation Framework. So basically I create PageObjects from those Play Store Pages and dialogues. After that you can create some Factory to maintain "pathes" of controlling these PageObjects.
Using them you have two options as far as I can see, for instance the WebDriver Objects which uses an "invisible" browser process like FF or Chrome and another I use is ChromeDriver which uses a visible Browser process, to perform the User actions. And don't forget to have Exception Handlers, which scans the Webpage for appearing errors, while in use.
There are a lot of pitfalls, due to possible changes in the Design from Google, which lets your Software break. But there are also some ways to handle that. =) And create an XML containing all valueable information about an app, which comes in handy, when continueing to the next step.
You can create a Maven Plugin. This you can load into your Continuous Integration Server. I hope I could help you a bit.
Since Google Play released the upload API, a plugin has been made:
https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=73533143
I haven't tried it yet, but looks like it's exactly what we were looking for.
There are other plugins that claim to do the same (thanks #mdt)
https://github.com/DavidHamm/google-play-publisher 404-this page does not exist
https://github.com/orrc/google-play-android-publisher-plugin
I believe it is not included in the PlayStore API currently to reduce stress on the system and to avoid abuse.
I believe we may see this in the gradle plugin and in the IDE in the future.
While we wait for google decide to open up the API, here is a solution, that is so sill, that i just had to propose it:
If you have a GUI, use GUI automation for the last step.
Google Play Android Publisher plugin for Jenkins is a good one. However, it doesn't support uploading descriptions and screenshots (at least for now).
I found decent Gradle plugin, called Gradle Play Publisher. It supports uploading apk, updating Metadata, and uploading screenshots. And it only needs a few steps to setup.
First go to Google Play Console in a browser, open the page for your app, and look for the option to allow a new email address to upload APKs. If it's not there, it probably means you are not the administrator of that Play Store account and you need to ask the person who is the administrator to add it for you (on a per-app basis). To find out what email address to add, go to Google Developer Service Accounts and create a JSON key for any of your existing Google developer service accounts, or create a new service account with a JSON key. Note the email address associated with the service account for which you have created (or will create) the JSON key. It will most likely be something at gserviceaccount.com. This is the email address that must be given permission to upload APKs by someone who has admin access to your Play account.
After that has been done, download Madison Dickson's updated version of Marta Rodriguez's script via wget https://gist.githubusercontent.com/mix3d/665f4ab329b4482297a2f425ebba402c/raw/0949385dd6c80d0701170746b1bd5fd479303412/basic_upload_apks_service_account.py and install dependencies via pip install google-api-python-client (or sudo pip install google-api-python-client as appropriate).
Then in the automated script you can use (for example) python basic_upload_apks_service_account.py -t beta -p org.example.MyApp -s JSON_file_I_made.json -a MyApp.apk (assuming your JSON file, your APK, and basic_upload_apks_service_account.py are all in the current directory and the pip install has been done on that machine or container).
I strongly recommend uploading to beta (hence -t beta in the above) rather than directly to production. Just in case something breaks and it somehow gets as far as the APK upload. I think the final press of "rollout to production" should always be done by a human. But if you really want to do that automatically as well, you can use -t production instead.
Would it be possible to provide a emulator image that has all the Google apps that come with real devices, like Gmail etc?
I don't have access to a 2.0 device which makes it close to impossible for me to develop/debug apps which uses AccountManager etc.
Download the Android Dev Phone system image from http://developer.htc.com/adp.html.
Then, create a new AVD (using the android tool or adb) with the matching version. The avd directory will appear at the .android directory inside your home directory (Run %USERPROFILE% on windows). Then, put system.img file downloaded into the <name of avd>.avd directory. Start the emulator and you will use Android with Google apps installed.
Disclaimer: about whether it is legal or not to download and use such images, I don't know. Please read the text there and decide yourself.
Given the trouble that Cyanogenmod had with trying to redistribute Google's apps, I would say it's not an option. However, if it's something in the Android source (like the calendar), you can compile it yourself.
If you just want to debug the app, you don't need to create a new image. You can run some of the google apps including gmail and google maps in the emulator. If you go to the Android SDK and AVD manager in the Eclipse Android plugin, and then go to "available packages", for every SDK there are two downloads for each version of the api. There is the one with Google Apps and one with out. The one with Google apps has apps such as gmail and google maps. It does not have all Google apps. The market is not there for instance .