Skip to content

Azure

Repository structure

GitHub Actions workflows for automated CI/CD are defined here:

  • azure-pipelines-android.yml: Handles the build and signing process for the Android APK.
  • azure-pipelines-ios.yml: Manages the build and signing of the iOS IPA.

These workflows are automatically triggered by specific repository events, such as:

Pushes to main or feature branches Pull requests targeting tracked branches You can customize the behavior of each workflow by adjusting the predefined environment variables and secrets defined in the repository settings. This allows you to tailor the CI/CD process to your app’s requirements, such as using different signing credentials, build configurations, or deployment targets.


Workflow Variables

These values must be added in Bitbucket's Repository Variables section to be used within the pipeline script.

Android

VARIABLE DESCRIPTION EXAMPLE
androidKeyAlias private key alias name Appambit
apkName Base name of the apk file (without .apk extension) app_test
typeRelease Release type (alpha, beta, release) alpha

iOS

VARIABLE DESCRIPTION EXAMPLE
typeRelease Release type (alpha, beta, release) alpha
projectPath Relative path to your iOS project's .csproj file AppMauiTestApp/AppMauiTestApp.csproj
ipaName Base name of the IPA file (without .ipa extension) com_appambit_testapp_ios

Repository variables

Step 1: Upload Secure Files

  1. Go to your repository in Azure DevOps
  2. Navigate to Pipelines > Library > Secure files
  3. Upload the required files:
    1. Android
      • The .keystore file used for signing
    2. iOS
      • The .p12 distribution certificate
      • The .mobileprovision provisioning profile

Step 2: Create Variable Groups

Navigate to Pipelines > Library and define the required variable groups. Be sure to mark all sensitive entries with “Keep this value secret.”

Android

VARIABLE DESCRIPTION
ANDROID_KEYSTORE_FILE Exact name of the .keystore file uploaded in Secure Files
ANDROID_KEYSTORE_PASSWORD Password for the keystore file
ANDROID_KEYSTORE_PASSWORD_ALIAS Password of the alias inside the keystore
ANDROID_KEYSTORE_PASSWORD_GPG Password used if the file was encrypted with GPG

iOS

SECRET DESCRIPTION
IOS_APPLE_P12_PASSWORD Password of the .p12 certificate used for signing
IOS_P12_CERTIFICATE Exact name of the .p12 certificate file uploaded in Secure Files
IOS_PROVISIONING_PROFILE Exact name of the .mobileprovision profile uploaded in Secure Files

Important

Ensure that all uploaded files have the proper permissions to be accessed during pipeline execution.

Secrets and variables

Android

SECRET DESCRIPTION
ANDROID_KEYSTORE_FILE Full contents of the encrypted .asc file (copied as plain text)
ANDROID_KEYSTORE_PASSWORD Keystore password
ANDROID_KEYSTORE_PASSWORD_ALIAS Password of the alias within the keystore
ANDROID_KEYSTORE_PASSWORD_GPG Password used to decrypt the .asc file

iOS

SECRET DESCRIPTION
IOS_APPLE_P12_PASSWORD Password of the .p12 certificate used for signing
IOS_P12_CERTIFICATE_BASE64 Base64-encoded .p12 distribution certificate
IOS_PROVISIONING_PROFILE_BASE64 Provisioning profile in Base64 format

Info

If you're not sure about having this credentials you can go to generating variables

Workflow activation

This pipeline activates automatically on pushes to the develop branch.
To activate:
1. Go to the pipelines section
2. Select Azure Git repos
3. Select your repository
4. Select an existing Azure pipelines YAML file
- Select the branch where the YAML file is located
- Select the path to the YAML file (which is in the repository root)
5. Select cotinue
6. Click on Run

Where to find the generated APK and iOS

  1. In Azure Devops, after running the pipeline, go to the corresponding run.
  2. In the Artifacts section, download the APK or IPA.

Delivering Builds with Push to AppAmbit

Once your CI/CD pipeline is configured, you’re ready to deliver builds to testers or users. Next Step: Push to AppAmbit to distribute your app directly from your CI pipeline.

Once your build setup is complete and you've pushed to AppAmbit, you can view and manage your releases directly from the dashboard. AppAmbit website Dashboard > Releases tab