Chapter 6. Publishing Apps

6.1. Submitting an App to Google Play

6.1.1. Prerequisites

  • A 'Release' app (APK file) is built either from the Platform or using Android Studio
  • The developer has a high resolution application icon file

    • 512x512 JPEG or 24 bit PNG (no Alpha)
  • The developer has at least one screenshot of the app

    • 320x480 or 480x854 JPEG or 24 bit PNG (no Alpha) format
Note

Screenshots must be full bleed, have no border and landscape thumbnails will be cropped. All measurements WxH for example, 320wx480h

6.1.2. Overview

There are a number of steps for publishing an app to Google Play, all of which are done with a web browser. They are:

  • Upload an Application

    • Upload Assets
    • Listing Details
    • Publishing Options
    • Contact Information
    • Consent

6.1.3. Uploading an Application

  • Log into Google Play at https://play.google.com/apps using your Developer Login

    • You will be presented with a list of apps you already have in Google Play
    • Click on the Upload Application button
    • You will now be brought to the Upload an Application Screen

6.1.4. Upload Assets

  • Draft application APK file

    • Upload your APK file
  • Screenshots

    • Upload your screenshot(s) -- JPEG or 24-bit PNG (Alpha Transparency is unsupported)
  • High Resolution Application Icon

    • Upload your App Icon — JPEG or 24-bit PNG (Alpha Transparency is unsupported)
  • Promotional Graphic

    • This is optional to be used in Google Play on devices with 1.6 or higher
  • Feature Graphic

    • This is optional
  • Promotional Video

    • This is optional to supply a YouTube URL to your promotional video
  • Marketing Opt-out

    • There is also the option to opt out of Google marketing/ promoting your app

6.1.5. Listing Details

  • Language

    • Select the Language for your app
  • Title

    • The name for your application as it will appear in Google Play
  • Description

    • Enter the description of your to appear in Google Play
  • Recent Changes

    • Enter the changes as you are uploading updates of your application
  • Promo text

    • This will be used in conjunction with the Promotional Graphic
  • Application Type

    • Select the type of application it is "Applications" / "Games"
  • Category

    • Select the category you want the app to be displayed in based on choice of application type
    • Applications

      • Comics
      • Communication
      • Entertainment
      • Finance
      • Health
      • Lifestyle
      • Multimedia
      • News & Weather
      • Productivity
      • Reference
      • Shopping
      • Social
      • Sports
      • Themes
      • Tools
      • Travel
      • Demo
      • Software libraries
    • Games

      • Arcade & Action
      • Brain & Puzzle
      • Cards & Casino
      • Casual
  • Price

    • Price is automatically set to Free. If you want to charge for apps you must set up a merchant account at Google Checkout.

6.1.6. Publishing Options

  • Copy Protection

    • Protect apps being copied from the device - Soon to be deprecated and superceded by the Licensing Service
  • Locations

    • Select Google Play markets you want the app to appear in

6.1.7. Contact Information

  • Website

    • Your website URL
  • Email

    • Your Email address
  • Phone

    • Your phone number

6.2. Submitting an App to the Apple App Store

Prerequisites

This guide assumes that a number of things have already been done by the developer. They are:

  • A 'Release' App has been built either from the Platform or using xCode
  • The developer has 2 icon files for the application

    • 57x57 PNG format
    • 512x512 PNG format
  • The developer has at least one screenshot of the app 320x480 PNG format

Overview

There are a number of steps for publishing an app to the iPhone App Store, all of which are done with a web browser. They are:

  • Create a new Application
  • Set up any in-app purchasing
  • Submit Application for Sale

6.2.1. Creating a new Application

  1. Log into iTunes Connect at http://itunesconnect.apple.com using your Developer Login (that is, email address)

    1. Click on Manage Your Applications
    2. Click on Add New Application
    3. Select a choice for the "Export Laws and Encryption" question
  2. Overview Tab

    1. Fill in the Overview section using your app details
    2. Select a choice for "Restrict this binary to a specific platform" question
    3. Enter a Version Number for example, 1.0
    4. Enter a unique value for the SKU Number: for example, the current date and time
    5. Click the (blue) Continue button at the end of the screen.
  3. Ratings Tab

    1. Select the appropriate check boxes for you application
    2. Click (blue) Save Changes button
  4. Upload Tab

    1. Click the Upload application binary later option
    2. Upload the icons and screen shots mentioned in the Prerequisites (Large Icon and Primary Screen Shot are mandatory). TIP: When adding additional screen shots, you may like to select them in reverse order so that they appear in the correct order when added by the uploader (which seems to add/upload them in the opposite order that you selected them).
    3. Click the (blue) Continue button
  5. Localization Tab

    1. Choose the appropriate language for you app
    2. Click the Continue button
  6. Pricing Tab

    1. Choose the Availability Date (Start Date) of your app for example, today
    2. Choose the appropriate Price Tier
    3. Select the stores you want your app to be available in and continue
  7. Review Tab

    1. Choose the appropriate review store (for example, the country your company resides in)
    2. Click the (black) Submit Application button.

6.2.2. Submit Application for Sale

  1. Upload Application Binary

    1. Once logged into iTunes Connect, click Manager your Applications
    2. Click the application you want to submit for approval by Apple (Note the current status should be orange, indicating the Application binary is yet to be uploaded)
    3. Click the Upload Binary button
    4. Click Choose File and locate your binary zip file mentioned in the Prerequisites.
    5. Click Upload File
    6. Click the Save Changes button in the bottom right
  2. Confirm Review App Store

    1. Click Manager your Applications
    2. Click your application that was submitted for approval
    3. Click the Edit Information button and open the Review Tab
    4. Verify that the Review App Store is set to the country selected while creating the application (necessary due to a suspected bug in iTunes Connect)
    5. Click Done and your application is now ready for approval by Apple

6.3. App Credentials Bundles

A Credentials Bundle consists of a number of resources needed to perform a particular build. Here, the different resources are listed, along with a brief explanation of their purpose.

6.3.1. Resources

When performing build operations, a Credentials bundle can sometimes be required (depending on the build). A Credential bundle is a combination of resources, such as certificates, provisioning profiles, and private keys, necessary for performing specific types of builds, be it a development build, distribution build, debug build etc. Depending on both the platform, and the build type, different resources will be grouped together to constitute a bundle.

Listed below is a breakdown of resources that can be added to a Credentials Bundle, along with a brief description of what they are used for.

6.3.1.1. All Platforms

  • Private Key

    • This is a file whose contents are known only to the owner. During the app building process, the app is digitally signed using this key. This means the developers digital signature is left on the App, allowing the App to be tied back to the developer.

6.3.1.2. Android Only

  • Android Distribution Certificate - Used to build Apps for upload to the Google Play Store. This certificate is used to identify you as the developer upon upload to the market.
  • Signing key

    1. Use keytool to create a signing key:

      keytool -genkey -v -keystore redhat.keystore -alias rhmap -keyalg RSA -keysize 2048 -validity 10000
    2. Export the java keystore key intp pkcs#12 format:

      keytool -importkeystore -srckeystore redhat.keystore -destkeystore rhmap.p12 -deststoretype PKCS12 -srcalias rhmap
    3. Extract the Distribution Certificate:

      openssl pkcs12 -in rhmap.p12 -nokeys -out rhmap-cert.pem
    4. Extract the Private Key

      openssl pkcs12 -in rhmap.p12 -nodes -nocerts -out rhmap-key.pem

      where:

      • Private Key is rhmap-key.pem
      • Certificate is rhmap-cert.pem

6.3.1.3. iOS Only

  • iOS Development Certificate

    • Used to run an iOS App on devices during development.
  • iOS Distribution Certificate

  • Provisioning Profile

    • Necessary in order to install development applications on iOS devices.

6.3.2. Apple Developer and Enterprise Accounts

In order to publish an app in the Apple App Store you must have an active apple account (developer or enterprise). This account will need to be renewed annually in order for associated apps to continue to be available in the App Store.

6.3.2.1. Developer Account

A developer account is used create an iOS distribution certificates used to publish apps to the apple App Store.

When a distribution certificate expires, if the iOS Developer account is still active, existing apps on the App Store will not be affected, they will continue be available within the App Store and apps already on device will continue to function as expected.

6.3.2.2. Enterprise Account

An enterprise account is used to create (in-house) distribution certificates which are needed to publish apps to the RHMAP app store or customer in-house MDM.

When an existing in-house certificate expires all apps built with that certificate will not run and further installs of this version of the app will not be possible.

The app will need to be rebuilt, signed with a new certificate, republished to the relevant store and then re-downloaded by all users.

6.3.2.3. iOS Certificate Renewal

Apple enterprise and developer certificates must be recreated every three years.

The customer email address associated with the developer account will receive advance notification of the impending renewal requirement.

While Red Hat might have been involved in assisting a customer with the initial setup of an Apple developer or enterprise account the ownership and responsibility for the apple account and the certificates created remains with the customer.

Upon receiving the certificate expiry notification it is recommended that the customer proactively renew the certificate in order to avoid interruption to their apps availability.