Integrating in CI/CD Environment

This topic provides details on how to integrate the Appdome flow of upload-build-context-sign-download into your CI/CD environment in order to streamline this process.

The Appdome flow is a straightforward process: after your iOS or Android app is built and ready to be deployed to an app store of your choice, you only need to make a few HTTP requests to the Appdome API.

Your app goes through the process of uploading to the Appdome platform, adding the necessary protection through the build process, adding context, signing the app, downloading the app, and proceeding to deploy to an app store.

To build and deploy an Appdome app, perfrom the following steps in the order listed below:

  • Upload an app (multiple-step process)
  • Build the app
  • Add context (optional)
  • Sign the app
  • Download the app

The entire process can be done in either of the following methods:

  • Manually via the CLI with simple curl commands
  • Packed into a script with any programming language of your choice

The following example demonstrates how to run your app through the entire process via a bash script. This script is relatively easy to integrate into multiple CI/CD environments and uses tools such as curl and jq, which are available on most Linux machines.


Appdome provides a ready python library, which is pre-populated with all these requests and can also be integrated in most CI/CD environments. For details, see Appdome's Python API Reference Guide.

Let's dive into some code

This example specifies how you would make the calls in the right order, wait where required, and proceed to the next call. As the calls are written in bash and javascript, each with its own dependencies, you must verify first that your system can run those scripts.


  • Remember to visit the platform to obtain your API key and fusion_set_id parameters. If you are working with a team you also need to get the team_id . For details, see Getting started section.
  • Note Note that the code snippets specified below only focus on performing the HTTP calls. You should bear in mind that each HTTP call can fail for multiple reasons and take such possible failure into account when writing your scripts. The code snippets do not show how to handle errors, alert your developers of such errors, or stop the process in your CI/CD environment.

Follow the steps at the recipe