1. Create a Google Account

Date of birth – depending on the services you use you’ll need to be at least 18 years old

Gender

Country

Your username is created from the email address you specify – either an existing one or a new gmail.com address. You don’t need to specify a phone number or an existing email address.

If you didn’t use a Gmail address for signing up you’ll get a verification mail after filling out the form. Click the link in that mail to finish creating your Google account.

2. Register for a Publisher Account

If you created a Google account in the previous section you’ll already be logged into the Google Play Developer Console. Otherwise go to https://play.google.com/apps/publish/ and log in with your Google account. In any case your Google account will be extended to a publisher acccount so you don’t have to juggle two accounts.

The first step in the Google Play Developer Console is to accept the Developer Distribution Agreement. The next step is to pay a USD 25 developer registration fee which will also attach a credit card to your account. Be aware that an additional charge for abroad payments may apply – 1.75 % in my case. The payment also doesn’t include VAT.

3. Publish Your App

The Play Store requires a signed release build of each app – debug builds must not apply.

3.1 Sign Your Release Build

Signing a build adds a certificate to the app so nobody can tamper with it. It also ensures only the original publisher can update an app. That in turn means that even you cannot update your app if you lose the key or the certificate expires. Changing a password is no problem though – keytool on the command line will do that.

To create a signed release build of the app:

In Android Studio click Build | Generate Signed APK

In the Generate Signed APK window:

If you already have a keystore specify it in the Key store path field

Otherwise click Create new and in the New Key Store window:

Specify the path to create a new .jks file – this needs to stay private so don’t add it to the project directory / VCS if others have access to that

Enter a strong password for the key store – again store it somewhere secure

Enter an alias for the key store’s first key – for example a key like “DbTradeAlertKey” if you want to use app specific keys

Enter a strong password for the first key – again store it somewhere secure

Chose a validity – 25 years should be fine

Fill in the cerificate fields – many are not mandatory though; I just entered initial, last name, country code

Click OK – the New Key Store window closes

The Generate Signed APK window’s Key alias and password fields will be filled automatically

Click Next

The Generate Signed APK window’s next step shows the apk’s path and that it will be a release build

Click Finish

The output path – C:\Users\Admin\Documents\AndroidStudioProjects\DbTradeAlert\app in my case – will now contain a file named “app-release.apk”. Not very descriptive so let’s change it.

3.2 Change the APK Name

Changing the name of the APK (Android application package) is not required as only the applicationId – “de.dbremes.dbtradealert” in this case – needs to be unique. To avoid confusion it’s still a good idea to have unique APK names.

Open “app/build.gradle (Module: app)” – note that there is also “build.gradle (Project: DbTradeAlert)” – in Android Studio and add one line:

This will produce an APK named “DbTradeAlert-1.0-release.apk”. Before that archivesBaseName defaulted to “app” because that’s the name of the module Gradle builds. “app” is now replaced by the parent project’s name “DbTradeAlert” and the versionName “1.0”.

The name you’ll specify when uploading to the Play Store is what people see in the Play Store

Also note that versionName is only meaningful to users. Android uses versionCode to determine the app version.

And yes, Android’s build system uses a programming language based on Groovy and not some XML based description like Ant. Gradle provides an object model with lots of hooks and a domain specific language – way too much to cover here.

3.3 Upload the App

Time to upload the APK. That’s done using the Google Play Developer Console at https://play.google.com/apps/publish/. If you aren’t happy with their translation to your language or need to create screenshots for an international audience just add “&hl=en” to the URL to force an English UI – you cannot change that in the UI.

Enter a title – “DbTradeAlert” in my case; that’s what Play Store users see

Click Upload APK – this will create the new app as a draft, select it, and show its APK pane

In the APK pane click Upload your first APK to Production

Drop the APK on the popup window – after some processing the APK pane shows the new APK’s details

Click Save Draft in the top right – the “APK” item on the left should get a green checkmark.

Note that the app’s status is “Draft in Prod”. It’s missing a lot of required details and couldn’t be published now anyway. To see a list of those requirements click “Why can’t I publish” in the top right corner.

If the upload failed with an error message complaining about debug build, missing certificate or unaligned APK check the steps listed in the previous section.

It seems Google evaluates apps as soon as the APK is uploaded. If an app is rejected you’ll get a mail roughly telling the reason.

The next section shows how to fill the paperwork.

3.4 Provide the Store Listing

Google wants to know a lot for its Store Listing:

PRODUCT DETAILS

Language and Title: you already provided those

Short description: whatever you can fit in 80 characters

Full description: you may want to use an optimization strategy here so users actually find your app. The description permits a limited set of html tags for
formatting.