Uploading Apps to Google Play. Basic Guide (Marmalade SDK)

I’m proudly uploading my first App. (Soon i’ll post more info about it:) )
So it’s time to sign the APK and send it up. So i’ll do a quick remind of the basic steps for that.

This time i’ve chosen Marmalade to develop the App, so what we need is a signed .apk file valid for Google Play. We have to deploy it using the Marmalade Deploy Tool. So, to make the .apk suitable, we need to attach it with a key store file.

Generating a new .keystore file

So, the first thing we need is that key store file. We are going to to generate it using keytool.
keytool comes with the Java Development Kit (jdk) and can be called from command line, writing:

$ keytool

In order to generate the .keystore file that we need, keytool has to be supplied with some arguments. These arguments are detailed more deeply here, but the basic usage should fit for us:

$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

we just need to change the default .keystore file name and the alias_name by our own names.
Increasing the validity could also be a good idea, to make the keystore file valid for a longer period.

keytool will now request some additional data we have to fill, like our name, organisation unit, organisation name, city, state, and locale code.

once done, we have our .keystore file ready to go.

Linking .keystore file to our marmalade project

Now we have to link this keystore file into our Marmalade project. If you are not using Marmalade, and you develop with <Android SDK> or similar instead, you can follow the remaining steps in the signing tutorial

So, in the project’s .mkb file, we have to add the following into the “deployments” section:

deployments
{
# … previous “deployments” content

# Lines related to keystore file:

android-aliasname=’alias_name’
android-keypass=’alias_password’
android-storepass=’store_password’
android-keystore=’key-file.keystore’

# Additional lines that are necessary
android-manifest=’AndroidManifest.xml’
android-pkgname=’es.example.myappname’
}

The android-aliasname and android-keystore parameters need to match with the ones passed to keytool. The android-keypass is the one we filled when keytool asked us for it.
In this case, the .keystore file is located in the project’s root directory, same as the .mkb file.

Now we can run the deploy tool again. In the third stage: Configuration, into the ‘Android’ specific options, we’ll see that the “Application keystore”, “Key alias name”, and “Private key password” fields are filled with the values we put in the .mkb file.
If these are not, review your .mkb file again; Probably there is something missing.

So, after deploying the App, we have our signed .apk file ready to be uploaded to Google Play!

The complete tutorial for Android developers can be found here
Some additional tips:

It can be useful to do a quick script using ant that modifies the AndroidManifest.xml file to set the correct versionName and versionCode values.
Elsewhere you’ll have to manage the version codes and version names by yourself. Don’t forget that every update of the App that is uploaded to Google Play has to have the same package name, and a greater versionCode and versionName

We can also add fancy icons to our app (marmalade splash logo makes our app look so poor, doesn’t it?) adding the following lines to the deployments section:
We need three .PNG images with the corresponding sizes: 72×72, 48×48 and 36×36 pixels.

android-icon=’data/icons/icon.png’
android-icon-hdpi=’data/icons/icon72.png’
android-icon-ldpi=’data/icons/icon36.png’
android-icon-mdpi=’data/icons/icon48.png’

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s