Bitrise Workflow Self Setup

Reseller accounts must setup their own device builds. This requires setting up workflows in Bitrise, you can read what workflows are here.

AppPresser has custom workflows that are setup on your account. You can choose to use AppPresser workflows, or setup your own.

Android debug building requires no setup. To build for an iOS device, or the app stores, you must upload your certificates, and then define environment variables.

Checklist

To get your Bitrise account setup and ready you will need run through all the steps in this doc which are outlined in this list so that you can double check them once you're done

  • Upload your iOS/Android certs to Bitrise in the Code Signing Tab (You should have 3 provisioning profiles, 2 iOS certificates and an Android Keystore file)
  • Set up your Environment Variables as per the docs below
  • Set up your Secret Variables as per the docs below
  • Set up your Google Play API JSON File (This is required to enable builds to be sent directly to your Google Play Console. Note: This only works for updates. Your first APK file must be sent manually)

Workflows

First, login to Bitrise, find your app in the right sidebar, and click the app name. Next click Workflows. Here you will see all of your workflows, you can click any of them to see how they work.

Click Code Signing, this is where you will upload your certificates and profiles.

Provisioning Profiles

Under Code Signing, scroll down and click to add a provisioning profile. Upload your profile, and copy the ID. You will use this in your environment variables later.

iOS Certificates

Scroll down CODE SIGNING CERTIFICATES, and add your development and production .p12 files. After adding your certificate, click the eyeball icon, and enter your password, then save.

Environment Variables

Click on "Env Vars" in your workflow editor.

Add the variables described below by clicking Add New in the App Environment Variables section, and entering the name exactly as shown, in all caps.

Variable Reference

Replace variables in inputs set to true

Required for iOS development:

$APP_DEVELOPMENT_PROFILE = the ID of the development provisioning profile. Get this when you upload it, for example c302c49e-7528-469b-b49d-12f187387e47

$APP_DEVELOPMENT_TEAM = when you upload the cert, it is the characters in parentheses. For example Team: WP4, LLC (TNZ27UV2JH) would be TNZ27UV2JH. See the highlighted portion in the image below.

Required for ad hoc:

$APP_ADHOC_PROFILE = (optional if you are testing push) the ID of the ad hoc provisioning profile. Get this when you upload it, for example c301c49e-7228-469b-b49d-12f187387e47

Required for iOS app store submission:

$APP_RELEASE_PROFILE = the ID of the app store provisioning profile. Get this when you upload it, for example c301c49e-7528-469b-b49d-12f287387e47

$APP_STORE_TEAM_NAME = Go to apple dev center, click account, then membership. Under Membership Information, you can get the Team Name and Team ID fields. (not the same as development team)

$APP_BUNDLE_ID = (do not add this twice) Go to settings > App ID in the customizer, looks like com.presschat.app.

All iOS secret variables are also required, see below.

Required for Google Play submission:

All Android secret variables are required for submission.

$APP_BUNDLE_ID = (do not add this twice) Go to settings > App ID in the customizer, looks like com.presschat.app.

Keystore file

Upload under generic storage, use the name "KEYSTORE".

$BITRISEIO_KEYSTORE_URL = url to the keystore file in generic storage

Secret variables

The secret variables below are required for app store submission.

You can define these in app => workflow => Secrets.

iOS Secrets

$APP_STORE_USERNAME = app store connect username

$APP_STORE_PW = app store connect pass

$APP_SPECIFIC_PW = application specific password used to bypass 2 factor auth. See this articleImportant - when using an account that doesn't have 2 factor auth setup need this variable cleared, otherwise app store submission will fail. Visit workflows => app-store-ios workflow => Click Deploy to iTunes Connect, scroll to Application Specific Password and press Clear. Save.

Android Secrets

$KEYSTORE_ALIAS = the alias

$KEYSTORE_PW = password used for the keystore. There are 2 passwords for the keystore, they both use this same input. If for some reason someone has different passwords, you will have to change that manually in the workflow editor.

Android JSON Key

This is an API Key that allows bitrise to automatically send your production APK file to your Google Play Console. To set this up you must create this file, see this

Upload the key file to Workflows => Code Signing => Generic Storage using the name "ANDROID_JSON_KEY". 

Then, go to the play store workflow, click Deploy to Google play at the bottom left, and then click the "Service Account JSON key file path" field, and select the file you just uploaded by searching for the ANDROID_JSON_KEY.

Once the correct certs have been uploaded and these variables have been defined, everything should work automatically.