Publishing to Google Play Store

The Google Play Store is the most common way to distribute apps for Android, although (unlike iOS) it is possible to sideload apps for testing with only a few settings on the device.

While Google Play has historically been less restrictive than the iOS App Store, Google has been tightening the rules and review processes substantially in recent years. Most new apps will be reviewed by human reviewers, which may take substantial time. Make sure you have checked Google’s Developer Policy documentation.

Even if you’re not doing the development yourself, to publish an app on Google Play you need to create a Google user and a Google Developer account.

Registering as a Google Developer

Go to the Google Play Console and click the sign-in button.  Follow the instructions to make a new Google user account for your organization or enter your organization’s Google user account credentials here.

Hint: DON’T use your personal Gmail account for this, make a more generic Company Account with a password that can be shared with other staff.  We recommend that a Password Manager be used for this.  Using this method will allow others to publish on the organization’s behalf when you are not available.

There is a small cost to register as a Google Developer and you will need to accept their terms and conditions before proceeding.

Once you have successfully signed up, the Google Play Console lets you manage your applications, company information, Play Store marketing and more.

Creating a Key Store file

This will create a certificate that identifies your company to Google. It will be stored inside a Java “keystore” file.

You need the ‘keytool’ command to be available on your system so that you can generate a keystore file for your app. The easiest way to get this tool is by downloading and installing Java OpenJDK .

From the Command Prompt command is (all on one line):

keytool -genkey -v -keystore appname.keystore -alias appname -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=appname, OU=Software, O=MyOrganisation, L=MyCity, ST=MyState, C=MyCountryCode" -storepass "mypassword" -keypass "mypassword"
This will create a file called appname.keystore which is needed for the build and publish system.  The items in bold will need to be replaced with your information:

appname – A short name for your app, with no spaces, such as “mytestapp”.
MyOrganisation – Your organization or company name
MyCity – The city where your organization is based.
MyState – The State/Province/Region where your organization is based (leave out the ST=MyState if no applicable)
MyCountryCode – The two character country code for the country where your organization is based, such as US or NZ.
mypassword – Make up a new secure password for the keystore.  Note: this password can NOT be changed or decrypted so you must record it for later.

Note: If you see this warning:

The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using […]

It can be ignored. Do not convert to the PKCS12 format; the Umajin system uses the JKS (keystore) format.

Technically, a keystore file can store multiple keys, each referred to by a different key alias. For simplicity, we are making one file for one key here.

Play App Signing

It is now required to use “Play App Signing” where Google manages your signing key. The key you are creating here becomes the upload key. Umajin will use it to sign the Android Application Bundle (AAB) file.

If you have an existing app that must “opt-in” to Google Play app signing, then do so by clicking the “Opt-in” link and then choosing “Export and upload a key from Java keystore”.

You will then need to download the PEPK tool that is supplied right there, and run it using the given command line to convert the Keystore you already created into the new format for app signing.

Application ID

For the publishing process, you will need to invent an application ID in “reverse URL” form.

Typically, this is your website’s domain, backwards, with the application name on the end without special characters. For example, if your website is at sweetcompany.com and the app is named “The Sweet App” then the application ID you choose should be something like com.sweetcompany.thesweetapp.

Once you have published an app with this ID, you will not be able to change it.

Enabling APIs

Some Umajin features, such as Google Maps, require API keys from Google to control access. These are not tied to an app; rather they are independent services that you subscribe to and get a key to access. Follow the steps below if required.

  1. Go to Google Cloud Console.
  2. Click on the link entitled “APIs & Services” in the main menu.
  3. Then click the “Enable APIs’ link and find the APIs that you want to enable on the list that follows.
  4. Follow the instructions to enable the APIs that you want to use.
    Note: only add APIs that you are sure you need.
  5. Each API will result in an API key that you will need to record for later.

Checklist: Android Publishing Items

You should now have the following items ready to use with Umajin for publishing to the Google Play Store:

  • The appname.keystore file
  • The Password that you entered when creating the keystore file
  • An application ID you have decided on.
  • Any API keys for special services such as Google Maps.

Preparing publishing assets

For the most part, Umajin will package your project files as required. Some special files are involved, as below.

Icon

Android now requires apps to include an adaptive icon. This is more complex to create than a simple image, but presents better on modern devices.

Launch image

While your app is loading, a static launch image will be shown. If it is a large app, or an old phone, this can be a noticeable amount of time.

You can choose to have Umajin Editor generate the splash screen from a page, or you can override it by supplying a splash image as follows:

Splash image: manifest/android/splash.png or splash.jpg

Screenshots

When you publish your app on the App Store, you will need screenshot images. You can make these yourself, or use Umajin Editor to generate them from your pages if suitable.


Publishing process

To begin, use Umajin Editor’s menu: File > Publish… and select Publish to Stores. Umajin Editor will show the “Publish to App Stores” screen.

  • Choose your app icon image for the Android and iOS Icons.
    • For Android this only defines the “legacy” icon, you will also need the adaptive icon as above.
  • Choose a page for the Launch Image. (You need to do this, even if overriding it with an image in manifest/android)
  • Choose at least one page for a screen shot.

Once available, click Next. Wait while the editor processes and saves the project. Once complete, you will see the Publish images exported dialog.

Click OK, and the process will continue in the cloud.

Cloud – Publish information

First, select the operating systems you want to target. In this case, select Google Android, and click Next.

Cloud – Google Android Information

  1. Android App Name: the name as it will appear on device. By default it is the same as your project name at time of publishing.
  2. Application ID: enter the Application ID in reverse URL form that you have decided on, such as com.mycompany.myapp.
  3. Version: the version number of the app to be released. This is your own version number, and separate from the user-visible version number on the app store. Obviously you should normally keep this version matching the app store version for clarity.
    1. Note: Play Store identifies app versions by the build number, which Umajin will increment each time for you.
  4. Keystore File: the keystore file you created (containing the certificate that identifies your company).
  5. Keystore Password: the password to the keystore file
  6. Keystore Key Alias: the alias (keyname) you used when creating the keystore file. Normally use the appname.
  7. Google Maps Android Key – required if using Google Maps component.
  8. Google Maps Directions Key – required if using Google Maps component.
  9. GCM Browser Key: obsolete, ignore
  10. GCM SenderID/ProjectID: obsolete, ignore
  11. Advertising ID Support: select yes if your app uses the Advertising ID

Click Next to save the data you have entered.

After entering data for any other platforms you want to distribute to (iOS, Mac, Windows) you will reach the Confirm page.

Build process

Please contact Umajin to build the software after you have filled in the data above.

Packaging Output

Umajin will build an APK and/or AAB (Android Application Bundle) file for your app. Only AAB files can be uploaded to the Play Store, while APK files are easier to sideload for testing.

Testing – Sideloading

Sideloading refers to installing the app without going via the Play Store.

To sideload your testing APK, you can copy the APK to the Android device by connecting it to your device as mass storage, then finding the APK with an Android file browser and running it.

More advanced users may prefer to use the adb install tool from the Android platform tools . To install an APK, just use: adb install -r <file>

Publishing to the Play Store

Once you have tested and confirmed the app works correctly as a standalone app, request a publish build from Umajin.

You can now submit the resulting AAB (Android Application Bundle) file to the Play Store.

Creating the App

Begin by going to Google Play Console and logging in with your Google developer ID.

Create an Application by clicking the “Create App” button at the top right of the page.  This will ask you for basic information such as name and type. When finished, it will show you the dashboard for your App.

Continue on and fill in the required information for the App listing on play store, following Google’s Create and setup your app help. This includes setting up marketing information like screenshots, videos, feature graphics and so on.

Creating a Release

You will need to create at least one release. Release > Production > Create New Release button.

This will have a “Release Name”, which is usually a version number, that appears on the App Store. It does not have to match the version you used in Umajin’s systems, but it will be less confusing to keep them the same. You should also describe the changes in the release notes.

You can now drag and drop the AAB file built from Umajin into the “App bundles” section of the release information.

Submitting the Release

After succesfully uploading the AAB bundle file you can submit the release for review.

Google Review is typically not as difficult as Apple, but can still take many days the first time, and is presently (2021) actually slower and more opaque than Apple.

Updates

Once your first release is approved, updates are typically much easier to do and can proceed quickly. Congratulations on your pub,ished app!