This document is intended to guide GeneXus developers in the process of publishing (for the first time or update) their Android applications to Google Play.
Every application that will be published in Google Play must be signed, and after being uploaded only will be updated if it is signed with the same signature. Refer to How to obtain a signature? section of this document.
Warning: GeneXus signs the application a debug signature for testing purposes, that will not be accepted by Google if the application isn't signed with this key: See Notes section.
It's highly important to test the application before uploading to the store. The validation process of Google takes a while, if you need a second emergency update, consider that the end users do not have the application fixed instantaneously.
You will need (not counting optional)
- Format: PNG or JPEG (no alpha) of 24 bits.
- Resolutions: 320 x 480, 480 x 800, 480 x 854, 1280 x 720 or 1280 x 800 pixels
- Considerations: Full screen, no borders.
- Format: PNG of 32 bits or JPEG image
- Resolutions: 512 x 512 pixels
- Size: 1024 KB
Before publishing your app make sure it will ask the user the minimum required permission from the device. In order to modify the required permissions open and edit the AndroidManifest.xml file located under <Genexus Path>\Android\Templates and remove or comment the uses-permission tags that do not apply to your app. For more info see Android Application Permissions.
At this point, you are ready to upload the application to Google Play.
Login to Google Play Developer site. Once you are there:
- If you are creating a new application:
Click Create Application button to access a wizard to create a new application.
See here for detailed information.
- If you are updating an existing application:
Click on your application title, and the detail information will be displayed (e.g. our Sales Order app).
On the left-side menu, go to Release management > App releases > Manage production.
Once there, click on Create release button.
Finally, upload the new APK file by clicking on Browse Files button. You should note that:
- The Version Code or Version Name property must have a higher value than the previous version.
- The keystore used to sign the application has to be the same as the previous version.
1. Create an account in Google Play (reference price at June/2011: registration fee $25.00).
2. Create a "Key Store file" for signature the application's packets with the following command. It is distributed with the JDK on the /bin directory.
> keytool -genkey -v -keystore my_release.keystore -alias my_alias_name -keyalg RSA -keysize 2048 -validity 1000
||Generate a key pair (public and private keys).
||Enable verbose output.
||The name for the keystore containing the private key.
||An alias for the key. Only the first eight characters of the alias are used.
||The encryption algorithm to use when generating the key. Must be RSA for GeneXus applications.
||The size of each generated key (bits). If not supplied, Keytool uses a default key size of 1024 bits. In general, we recommend using a key size of 2048 bits or higher.
||The validity period for the key, in days. A value of 10000 or greater is recommended.
Note: if you sign your application using your keystore and it uses SD Map control, you have to follow these steps.
3. Complete all information requested. You must save the password for the next step.
4. Complete the Application Signing properties in the generator properties:
- Key Store File: The filepath to "my_release.keystore" file in the keytool command.
- Store Password: That's the one you set (you are asked for it ) while you run the keytool command.
- Key Password: That's the one you set (you are asked for it ) while you run the keytool command.
See the image below.
- There isn't any relation between the signature and the developer registered in the Market. Any developer can publish any APK; the signature is not important.
- Once the APK was published with a user, only this user is the one can upload new versions of the same application; however, this user may assign the application to other, then, this other can upload new versions.
- GeneXus 15 (as of U2) signs the APKs file automatically with the Android's default debug-signature. On every build, the IDE alerts of this state with a warning message until the developer signs it with an own signature.
========== Android Compilation started ==========
The generated application will be signed using a default key. Note that you
should change this key (in SmartDevices > Android Specific > Application Signing) before releasing it.
This mechanism forces the developers to sign their applications when they publish it (on production) but allowing an easy prototyping of it.
If the application is not signed with a custom certificate, Google Play does not publish it in the store.
- For those developers who already have applications in production with the previous default settings (i.e. the *.apk file signed with Artech credentials) must set its properties manually with legacy values.
||Legacy (as of GeneXus 15 Upgrade 3)
|Key Store File
Prototyping and Executing