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
- Go to your repository in Azure DevOps
- Navigate to Pipelines > Library > Secure files
- Upload the required files:
- Android
- The .keystore file used for signing
- iOS
- The .p12 distribution certificate
- The .mobileprovision provisioning profile
- Android
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
- In Azure Devops, after running the pipeline, go to the corresponding run.
- 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