How To Publish Android Apps to Google Play
(c) 2012 kevin languedoc (klanguedoc)
The process involving publishing an Android app to the Google Play web store is fairly easy. I prepared this guide as a checklist of steps you need to accomplish the process to allow you to slip through the review process and into the web store as easily as possible.
The first place to start, if you haven’t already done so, is to package your app into a apk file. You need an apk file no matter the platform used to create Android. In this guide I will provide these information to produce an apk from Flash Builder (Eclipse) and the native Android IDE (Eclipse).
During the signing process you will need to sign your apk file. No Android app can be published to the Google Play store unless it is signed. In contrast to Apple iTunes signing policy, you can self sign your Android apps. However you cannot use the debug certificate.
Once this task is complete,you will need to upload the app to the Google Play. This involves a couple a related tasks. If you don’t have a developer profile, you will have to create one and also a checkout Merchant account if you plan on selling your app in Google Play. You will then need to create an app profile which will include your apk.
Task 1 : Package an app - Android (Eclipse)
The first that we will tackle is the apk. This is the archive required by Google Play. This task includes the following sub-tasks:
- Export project as Android Mobile package
- Generating a keystore
- Signing the app
- Finalizing the apk packaging
Step 1: Generating keystore
Before you can export a signed apk filed (you can export an unsigned apk - but you won’t be able to upload to the Google Play store), you need to create a keystore certificate.
You can download an Eclipse plugin to generate your keystores directly from Eclipse or you can use the keytool that ships with the Java SDK or JRE. you can either use keytool or jarsigner to sign your apk file.
Creates a key pair (public and private keys)
Enable verbose output of the process
An 8 character alias for the key.
The encryption algorithm to use when generating the key. Both DSA and RSA are supported.
The size of each generated key in bits. The default is size is 1024 bits. In general, we recommend using a key size of 2048 bits or higher.
A Distinguished Name that describes who created the key. The value is used as the issuer and subject fields in the self-signed certificate.
The password for the key. Do not include this command as the keytool will prompt you for one and this is more secure.
The validity period for the key, in days. Specify at least 10,000 or higher.
A name for the keystore for the private key. You can include a path where the keystore will be saved. This is handy for you to upload into Eclipse.
A password for the keystore. Do not include as the tool will prompt for one which much more secure.
If you didn’t specify a path for the keystore file, the keystore file will be saved to the Java/bin directory, otherwise it will be stored where you specified as in my example
For this example, I will use the Keytool application from the command line in Java. To create a new keystore follow these instructions:
- Open the keytool from the command line. If your java_home and path are not set, you will have to navigate to the bin sub folder of your Java SDK or JRE
- Compose the command line command using the above mentioned keytool commands. As an example for my rotateMeter Android app, I am using the following command to generate my keystore:
keytool -genkey -v -keystore c:\users\klanguedoc\keystore\rotateMeter-key.keystore -alias rotateMeterKey -keyalg RSA -keysize 2048 -validity 10000
- You will be prompted to enter and confirm a password
- You will also be prompted to enter your full name
- You will need to provide an organization unit. This can be an arbitrary but meaningful name. Only the first 8 characters will be used.
- You will then need to enter the name of your organization
- Next enter your location, city and state or province
- Then you will need to enter your 2 character country code
- Once the tool has gathered all the needed information, it will display the information on screen for your verification and will prompt you to accept or refuse
- Once you accept the input data, you will need to re-enter your password and the keytool will create the keystore file for you.
Step 2: Export project as Android Mobile package
Once you have the keystore, you can begin the process of packaging your app for the Google Play store. To successfully upload your app, you will to package your app as a apk archive. The apk is an archive that is similar to a jar (Java).
- Right click on your project root and select the Export option
- From the popup select the Android node then the Export Android Application
- The first page of the utility allows you to verify that you have the proper project selected and to select it if it is the wrong one.
- After clicking the Next button you will need to using an existing keystore or to create a new one.
- Select the keystore that you created in the step 1. You will need to re-enter the password you uses to generate the keystore.
- On the next page, select the alias form the drop down field if it is not already selected. You will also need to enter your password again that you used to generate the keystore.
- The final page provides a field and a browse button to allow you to select where to create the apk Android package. If you elect to use a sub folder that doesn't exist, on Windows the folder will created for you, however on a Mac you need to create before hand otherwise you will get an error.
Task 2: Publish your App
To publish your Android app you will need to navigate to the Google Play Developer site.
distribute web site. To begin the publishing process you will need a valid developer profile. You will also need a Merchant Account if you indeed on selling your app in the Google Play app store. Once these two preliminary steps are complete you can begin the publishing process.
Step 1: Create Developer Profile
To create a Android Developer Profile, click on the link in the Developer Console and follow the instructions. Fill in your developer name, e-mail address and phone number. If you don’t have an Merchant Account yet, your account type will be set to offer only free apps. You can also specify test accounts (e-mails) that will be able to download your app and simulate the billing process to allow you to test your apps prior to being made public in the app store. Once all the necessary information has been entered, click on the save button. The main Developer Console page will display your approval status as in the following screenshot.
Step 2: Create Merchant Account
To create a Merchant Account simply click on the link at the bottom of the Developer Console page. To setup a Merchant Account, first fill in your personal contact information which includes your name, e-mail, address, city, state/province and country and your telephone number.
In the Public contact section you will need to enter your company name and telephone number, your company’s web site (required) and company address if it is different than your personal address. Your company information can be the same as your personal information. You also need to specify a credit statement name which will appear as Google * yourname on your customer’s credit statements.
Next you need to fill in your financial information which includes current monthly sales and the date of birth of yourself or your company’s.
Finally you need to accept the terms and conditions and specify if you would like to receive the Google newsletter on Merchant Services. Click on the “Complete Application” at the bottom of the page to complete the registration
Do you plan on publishing an Android app to Google Play
Step 3: Upload Android App
To begin the upload process, click on the “Upload Application” on the main Developer Console page. A popup will appear requesting your apk file. Click on the button and browse to the location on your computer where you save the previously created apk file and click close when you get an upload confirmation.
Next you will need to provide a screenshot of your app’s interface (main screen) and other screens if you have extra screens. You need to upload at least two. You will also need to specify a high resolution icon image. You can also upload an optional promotional and feature graphics. All the graphics have preset dimensions for each type of image as listed in the table below.
320 x 480, 480 x 800, 480 x 854, 1280 x 720, 1280 x 800 24 bit PNG or JPEG (no alpha)
High Resolution Icon
512 x 512, 32 bit PNG or JPEG. The Maximum is 1024 KB
180w x 120h - 24 bit PNG or JPEG
A Feature Image
1024 x 500 - 24 bit PNG or JPEG
Once the images are set, you can define a web site for support questions concerning your app. You can include user documentation about your app. If you have a promotional video, you can add it here as well.
In the listing section, you can add details about your app, like the title and a description of purpose of the application. If you already had an app in the Google Play store, you could list any new changes to the new release of the app in the field dedicated for this.
Finally in this section, specify the type of application your app belongs to which can either an application or a game. Also specify the category that best fits your application.
In the next section which is publishing options, you can set the copy protection which by the way will become obsolete in the near future to be replaced by licensing options. You will also need to define the content maturity of your app and configure the pricing which can either be free or you can set a price.
Finally, any special contact information that you would want your customer to use when contacting can be set in the contact information section. You can also set the Google Cloud Messaging options if your app will need to contact your servers to either push data or receive data. You will need to set the GCM id.
Once all this information is configured you can save your app profile and can also opt to publish your app to the Google Play store either privately for testing or publicly.