# Updraft App Distribution Documentation

Continuous app distribution and beta testing for iOS, Android, Windows and MacOS Apps.

{% hint style="info" %}
This is the documentation for the continuous app distribution and beta testing **platform** [**Updraft**](https://getupdraft.com). If you want to try it out just register for free on [getupdraft.com](https://legacy.gitbook.com).
{% endhint %}

{% content-ref url="/pages/-LDXYj36oGfg-rCnSxa9" %}
[Welcome to Updraft!](/welcome-to-updraft)
{% endcontent-ref %}

{% content-ref url="/pages/-LEEpYxNvJygIcHlFn4t" %}
[Upload your first app versions (builds)](/quickstart/your-first-app-project/upload-first-build)
{% endcontent-ref %}

{% content-ref url="/pages/-LDXYl-PQQoN-9El1kHG" %}
[Quickstart](/quickstart)
{% endcontent-ref %}

{% content-ref url="/pages/YXugMivlEgCugB8PsETe" %}
[Security (Single Sign-On)](/dashboard/account/security-single-sign-on)
{% endcontent-ref %}

{% content-ref url="/pages/cbeypt411KnSv3kIjz8S" %}
[iOS Resigning](/your-projects/builds/build-history/ios-resigning)
{% endcontent-ref %}

{% content-ref url="/pages/7wqYU45YVS8BSEQnIyAY" %}
[Android Resigning](/your-projects/builds/build-history/android-resigning)
{% endcontent-ref %}

{% content-ref url="/pages/-LDXZ5Ofkv0pO-iC7jEz" %}
[Updraft SDK](/updraft-sdk)
{% endcontent-ref %}


# Microsoft App Center Alternative

Updraft App distribution is your Microsoft App Center Alternative Solution.

Welcome to [Updraft](https://getupdraft.com), the alternative to Microsoft App Center App Distribution! Use our App Distribution features to migrate from App Center before March 31, 2025! Updraft covers all features of Microsoft App Center and also supports you in resigning iOS or Android builds.

With Updraft you can also distribute **Windows apps** in addition to iOS and Android app distribution. [Here ](/your-projects/builds#supported-app-file-types)you can see the Windows file formats we support.

We look forward to welcoming you as new customers.

If you have any questions, please contact [info@getupdraft.com](mailto:undefined).&#x20;


# Windows App Distribution

With Updraft it's easily to distribute your Windows apps

[Updraft ](https://getupdraft.com)supports not only iOS and Android but also Windows to distribute apps. Updraft can fully replace Microsoft App Center. Updraft supports the Windows App Distribution. Projects can be created with Updraft and all apps of the different platforms (iOS, Android and Windows) can be managed within the projects. Updraft helps you to easily manage Windows apps and distribute them to your target group.

Here you can find the supported [file types](/your-projects/builds#supported-app-file-types).


# App Center Migration Tool

Use the app center migration tool to migrate all your app builds to getupdraft.com

### Overview

The **Updraft AppCenter Migration Tool** simplifies the process of migrating builds from [Microsoft App Center](https://appcenter.ms/) to [Updraft](https://getupdraft.com). With just a few steps, you can seamlessly transfer your entire build history to Updraft's app distribution platform, ensuring a smooth transition without any data loss.

### Why Use This Tool?

* **Effortless Migration** – Automates the transfer of builds from App Center to Updraft.
* **Secure & Reliable** – Ensures your builds are safely migrated.
* **No Manual Work** – Avoids the hassle of downloading and re-uploading files manually.
* **Preserve Build History** – Retain access to all previous builds in your new Updraft environment.

### How It Works

The migration tool interacts with both Microsoft App Center and Updraft APIs to fetch and transfer build artifacts. The process involves:

1. **Authentication** – Authenticate with both App Center and Updraft using API tokens.
2. **Fetching Build Data** – The tool retrieves all available builds from App Center.
3. **Uploading to Updraft** – Each build is automatically uploaded to Updraft, maintaining metadata such as versioning and release notes.
4. **Verification** – The tool ensures each build is successfully migrated.

### Need Help?

If you run into any issues or have questions, check out the [GitHub repository](https://github.com/appswithlove/updraft-appcenter-migration-tool) or reach out to our support team at [Updraft](https://getupdraft.com).

###


# Welcome to Updraft!

Say hello to Updraft!

Welcome to [Updraft](https://getupdraft.com), a platform as a service for continuous mobile app distribution and beta testing. Easy distribute your iOS beta, Android beta, Windows or MacOS apps to your product managers, testers or designers within your organization and get as early as possible feedback to your beta app. Remove bugs and improve your product to get the highest quality. Resign your .ipa with new certificates and provisioning profiles, resign your .aab package, connect your app or playstore. Continuous app distribution and bug reporting has never been easier!

You can integrate Updraft completely in your development workflow.&#x20;


# What is Updraft?

[Updraft](https://getupdraft.com) is created by [app development](https://appswithlove.com) agencies with the objective to create an app distribution tool that addresses the needs of developers, project managers, QA-staff and comms-people alike. It integrates with your IDE but is also easy to use if you just want to simply and quickly distribute a new beta-release for iOS, Android or Windows apps.


# Quickstart


# Register your Organization

Register for free on getupdraft.com/signup. There is no trial, no time limitation, no creditcard required.

## Register for [FREE](https://getupdraft.com/signup)

You can register for free on [getupdraft.com/signup](https://getupdraft.com/signup). No creditcard is required for signup.&#x20;

### Google Registration

The easiest way to create an Updraft Account is to register with Google. Click on the Google Icon and choose your desired account - everything else we do directly for you.

### Registration

The other option is to register via the Reigstrations form.

1. Type in your e-mail adress
2. your first and last name
3. you can chose your workspace domain (if you are not sure, no worries you can adjust it later in your account).
4. You can type in a Company Name (it's the name of your Updraft Organization)
5. You can chose a password
   1. Your password has to be at least 8 characters with one uppercase and one special symbol
6. Within check the checkbox you will agree to the Terms of Condition and Privacy Policy of Updraft (GDPR conformal as well as supporting the Swiss Privacy Law)
7. SignUP!
8. You will get a verification e-mail and as soon you verified your account you will be ready to start!

![SignUp for free. ](/files/-LynL7L8BaqojpNjLTYR)


# Your first app project

Before you can upload your first builds and send them to your testers you need to create a project.

### **Step 1: Create your first app project**

Before you can upload your builds to your iOS, Android or Windows app you need to create an app project first.

{% hint style="info" %}
**App Project:** An App project is a container for all of your apps across platforms: Android and iOS. It supports sharing features such as Release Management, Feedback Management and Environment Config across your apps.
{% endhint %}

1. On the Updraft dashboard, click **Create New Project.**&#x20;
2. If you clicked on Create New Project you can enter a **project title and a description of your project.** Both you can edit late&#x72;**.**
3. By clicking on the **Save** button, your project will be created

![Create new Updraft App Project](/files/-Lme_voT2JO2PBynJeMe)

### **Step 2: Add your first App to your app project**

After you created your app project you can add your first app to it.

1. Chose on the empty project screen the OS- platform of your first app (iOS, Android or Windows).

![Chose the OS- platform of your app](/files/-Ly9R3LucEmxtqwBHqpK)

### **Step 3: Chose your app title and the deployment environment**

After you created your project and selected the OS platform of your app you can chose an app title as well as the name for the deployment environment.&#x20;

1. Type in an **app title**
2. Select a name for your deployment environment from the dropdown list or chose a custom name for your **deployment environment.** If you let it empty we will name it default 'Test'. You have the possibility to adjust later the name of your app and of your environment. By clicking on **Create App** you will create your first app within your project and you will be redirected to the Application Overview.
3. You can choose if your app is [public or private](/your-projects/app-overview/security). Per default an app is private. You can change this setting after the creation of your app.

{% hint style="info" %}
**Deployment Environment:** in computer science it's described as a system in which a computer program is deployed and executed. Depending on the development progress of a program or an application, we made a distinction between different environments such as: Development, Build, Test, QA, Staging, Production
{% endhint %}

![Deployment Environment suggestion list](/files/-Ly9R_m8Od0EeZOwE6Px)


# Upload your first app versions (builds)

Upload your first app versions for your iOS, Android or Windows applications

Once you created your first app project and added your first app to it, you are able to upload your first app versions.&#x20;

You can upload your app versions:

* manually by drag & drop&#x20;
* manually by chosing it from your folder
* you can use one of our [Plugins](/integrations)
* or you have the possibility to upload your builds via the [API/ Curl](/api/curl)

We recommend to use one of our provided plugins - it's that simple!

## **Upload your first app version (build)**&#x20;

#### Step 1 Go to the build section

Uploading new builds to your app is really simple. Just go to the build tab on the left side bar and click on **Upload new build**. Be aware that you are staying in the right app.

![Empty Build](/files/-LmeemTd31ZXbKjvgeLU)

#### Step 2 Chose your build to upload

Drag & Drop or chose your build (.ipa, .apk file, .aab or Windows file) from the folder. As soon you selected your app file, the file will be uploaded to Updraft.

![Upload your build manually](/files/-Lmeh5HzChAtN11Vt5mk)

#### Step 3 Overview about your uploaded build

As soon you have successfully uploaded you see an overview about your uploaded file. You see the file name and you can delete it which redirects you back to the upload screen. You will see the app title and the environment name to which you are uploading your build. If you want you can add release notes. Such notes your testers will see, as soon they install your application. If you click on save your build will be uploaded to the displayed App & Environment and you will be redirected to the Build History.

![Overview about uploaded build](/files/-LmejcKmS97eCruQrJ9b)


# Install your app

Install your first app- yay!

After you have created your first project and uploaded your first build you want to see your app on your device.&#x20;

## Step 1 Select your uploaded build & install it

1. Select your uploaded build with the Build History
2. You see on the right context field all extracted information of your uploaded file
3. At the bottom of the right context field you will have such possibilities to install easily your uploaded file:
   1. Public Installation URL- just copy to clipboard the URL and send it to your device
   2. You can enable the QR-Code - just scan the QR-Code and you will be redirected to the mobile installation page to download & install your uploaded filed
   3. Send to me - you will receive a notification email with detail information about downloading your uploaded file

![Build Detail Information](/files/-Ly9OJSO9ta75pVpTJ45)

If you want to distribute your build to your Testers & Groups will find all information about this topic [here](/your-projects/distribution).


# Dashboard

## Contents

{% content-ref url="/pages/-Lzc74yDV0lpR6vq8eZA" %}
[Create Projects](/dashboard/create-projects)
{% endcontent-ref %}

{% content-ref url="/pages/-Lzc7F\_A-sorvdX2CUP4" %}
[Latest received Feedbacks](/dashboard/latest-received-feedbacks)
{% endcontent-ref %}

{% content-ref url="/pages/-Lzc7PnA-07zypi6zC\_f" %}
[Documentation](/dashboard/documentation)
{% endcontent-ref %}

{% content-ref url="/pages/-MUxrGmR00J3zkADQfun" %}
[Usermanagement](/dashboard/usermanagement)
{% endcontent-ref %}

{% content-ref url="/pages/-LmenhTS\_YKmfShD6-61" %}
[Profile & User Account](/dashboard/account)
{% endcontent-ref %}


# Create Projects

Manage and create your app projects

### **Step 1: Create new app project**

Before you can upload your builds to your iOS, Android, Windows or MacOS app you need to create an app project first.

{% hint style="info" %}
**App Project:** An App project is a container for all of your apps across platforms: Android and iOS. It supports sharing features such as Release Management, Feedback Management and Environment Config across your apps.
{% endhint %}

1. On the Updraft dashboard, click **Create New Project.**&#x20;
2. If you clicked on Create New Project you can enter a **project title and a description of your project.** Both you can edit late&#x72;**.**
3. By clicking on the **Save** button, your project will be created

![Create new Updraft App Project](/files/-Lme_voT2JO2PBynJeMe)

### **Step 2: Add your first App to your app project**

After you created your app project you can add your first app to it.

1. Chose on the empty project screen the OS- platform of your first app.

![Chose the OS- platform of your app](/files/-Ly9R3LucEmxtqwBHqpK)

### **Step 3: Chose your app title and the deployment environment**

After you created your project and selected the OS platform of your app you can chose an app title as well as the name for the deployment environment.&#x20;

1. Type in an **app title**
2. Select a name for your deployment environment from the dropdown list or chose a custom name for your **deployment environment.** If you let it empty we will name it default 'Test'. You have the possibility to adjust later the name of your app and of your environment. By clicking on **Create App** you will create your first app within your project and you will be redirected to the Application Overview.

{% hint style="info" %}
**Deployment Environment:** in computer science it's described as a system in which a computer program is deployed and executed. Depending on the development progress of a program or an application, we made a distinction between different environments such as: Development, Build, Test, QA, Staging, Production
{% endhint %}

![Deployment Environment suggestion list](/files/-Ly9R_m8Od0EeZOwE6Px)

### Apps are private by default

During the creation of a new app a user is able to choose if the app is public available or not. Per default an app is set as private. This setting can be later adjusted on the app overview page under the section Security (see also [Security](/your-projects/app-overview/security))


# Latest received Feedbacks

On the dashboard page you see a list of latest received feedbacks by using the Updraft SDK.


# Documentation

On the dashboard you can see the latest documentation of Updraft and all of his integrations.


# Usermanagement

What user administration in Updraft looks like

## Creating an organization

Once you have registered on getupdraft.com, you will automatically create a new organization.

## Organization roles & user roles

These are the three roles within an organization:

{% hint style="info" %}
**Owner** - Can view and edit all data of all app projects of his organization. Owner can create users and distribute all apps. Owner has access to the account settings and to plan & billing.

**Admin -** Can view and edit all data of projects where he has project access. Admin can add members and distribute apps.

**Tester** - Tester is a viewer user-role, can view and install all apps and related app versions where he has project access.&#x20;

**Mobile-User** - Can only install apps he has project access to it. Can only login on the mobile web app and not on desktop.&#x20;
{% endhint %}

<table><thead><tr><th width="187">User role /  feature</th><th>Owner</th><th>Admin</th><th>Tester</th><th>Mobile-User</th></tr></thead><tbody><tr><td><strong>Manage all projects</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td><strong>Manage all Users and Access</strong></td><td>Yes</td><td>No, only on project-level</td><td>No</td><td>No</td></tr><tr><td><strong>Price Plan &#x26; Billing</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td><strong>Manage Organization Account Settings</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td><strong>Create Projects</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td><strong>Add new apps to projects</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Manage App Settings</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Invite Project Members</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Manage App Access</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>App version installation</strong></td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes, only on Mobile  Web or Updraft App</td></tr><tr><td><strong>App version add/delete</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>App version history</strong></td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr><tr><td><strong>Resign binaries</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Distribute single app version</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Distribute beta app versions</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Add testers and groups to project</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Distribute to App Stores</strong></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td></tr><tr><td><strong>Add Play Store Account</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td><strong>Add App Store Connect</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr><tr><td><strong>SSO Integration</strong></td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr></tbody></table>

A user role is a collection of different permissions. During [adding a new member](/your-projects/project-settings/user-and-permissions) to your project you can choose a user-role. You grant that member all permissions which this user-role contains as soon you added the member to your project.&#x20;

## Adding users to an organization

There are two ways to add users to an organization:

**Directly to the organization:**

1. On the left side navigation, select the user's page
2. Click on add new user
3. Type the user's email address and the name of the user
4. Add the user

This gives the user access to the organization. Per-Default with Admin-user role rights. However, they won't see any of the app projects listed in the organization unless they're explicitly invited to the app project as a member or if they create their own app project from the dashboard page. As soon as you have create your new user they will get an invitation e-mail to verify their account.

**Directly within an existing project as a project member:**

1. Select your app project
2. Go to Project Settings
3. Select [Users & Permission](/your-projects/project-settings/user-and-permissions) (Project Members)
4. Invite new project member
5. Type the user's email address and select the user-role
6. Select the applications of your project where your user should get access
7. Invite him

If the newly added member is already a user within your organization he will now have access to your app project with the given user-role.

If the new added member is not already a user of your organization, he will get an invitation e-mail from Updraft, after verifying his account he is able to see the app project where he was invited to.

## Advanced access Organization level

#### Managing user access to app environments

As an organization Owner , you can control user access to specific app environments within an app project. Here's how to manage access:

**Steps to Manage Access**

1. **Disable Access to a Single App Environment:**
   * Owner can disable a user's access to a specific app environment, preventing them from viewing or interacting with it.
2. **Enable Access to a Single App Environment:**
   * Owner can grant a user access to a specific app environment of a project.
3. **Enable Access to Multiple App Environments:**
   * Owner can enable access for a user to multiple app environments simultaneously.

**Additional Guidelines**

* **Dashboard Visibility:**
  * If a user has project access but no access to any app environments within it, the project will not be visible on their dashboard.
* **Direct URL Access:**
  * Users without access to a specific app environment cannot access it via direct URL in the dashboard.
* **Admin Role Access:**
  * When adding a user with the Admin role to a project, no specific apps need to be selected. Admins of a project automatically have access to all app environments in the project.
* **Tester/Mobile-User Role Access:**
  * When adding users with the Tester or Mobile-User role to a project, you can select which apps they can access.

**Adding a New Member**

When adding a new member to a project, owner and admin  can define their access to specific apps/environments in a second step, ensuring precise control over user permissions.

## List of Users of an organization

As the owner of your organization, you can view all the users in your organization. To do this, simply click on the Users page in the navigation bar.

### Editing user role per project <a href="#removing-users-from-an-organization" id="removing-users-from-an-organization"></a>

As an Owner of an organization, you have the possibility to edit the user role per project per user (project access).&#x20;

### Remove user role from project <a href="#removing-users-from-an-organization" id="removing-users-from-an-organization"></a>

As an Owner of an organization, you have the possibility to remove a user from a project.&#x20;

Select the user you would like to edit, select the project, click on the 3 dots and then remove it from the project.&#x20;

### Removing users from an organization <a href="#removing-users-from-an-organization" id="removing-users-from-an-organization"></a>

As an Owner you have the possibility to remove users from your organization. If you do so, they will lose all access to your organization account.

1. On the left side navigation, select the page Users
2. Select User from the list
3. Click on the 3 dots
4. Click **on delete**
5. Confirm

### Transfer account owner rights <a href="#removing-users-from-an-organization" id="removing-users-from-an-organization"></a>

Only one person can have the rights of the account owner. A user with account owner privileges can transfer their account owner privileges to another user within their organization. As soon as an account owner has transferred his rights to another user, this user receives the user role 'Admin' and no longer has access to the projects of the organization.

#### Steps to transfer account owner

1. Login as account owner
2. Go to usermanagement page
3. Select the user you would like to transfer your owner account&#x20;
4. Click on the 3 dots
5. Confirm it with your password

<figure><img src="/files/FgQBDrWHWtQwm4PC5npK" alt=""><figcaption><p>Transfer Ownership</p></figcaption></figure>

### Disable 2FA / Enforce 2FA for single users  <a href="#removing-users-from-an-organization" id="removing-users-from-an-organization"></a>

As an Owner you can always see the status of 2FA for all users from your organization.&#x20;

You can manage the 2FA for specific users by:

1. On the left side navigation, select the page Users
2. Select User from the list
3. Check the status of 2FA
4. Disable it / enforce it


# Permission Groups

Manage large group of Updraft users with permission groups

Updraft clients with a large group of Users often face the challenge of managing large teams within their Identity Providers (IdPs) like Okta or Active Directory (AD). For big organizations with thousands of testers, it is impractical to manually assign users and groups to individual projects in Updraft. Manually adding users to each project becomes a time-consuming task, especially for large enterprises.

To address these challenges, we are introducing **Permission** **Group Management** in Updraft to streamline user and group assignments across Updraft projects.

## Group Management Overview

* A **Permission Group** is a collection of Updraft users who can be collectively assigned to projects.
* Users can belong to one or more permission groups within Updraft.
* Groups can be assigned to projects, eliminating the need to add individual users manually.

## Assigning permission groups to projects

* Organization owners can invite permission groups to projects via a group invitation mechanism.
* When adding a group to a project, the user must define the group's **maximum user-role** in that project (e.g., Admin, Tester or Mobile-User).
* The maximum user-role defines the highest access level any user in the group can obtain for that project.

## View project members source

Project membership origin: For clarity, Updraft shows all sources of membership for each project member. If a project member has multiple sources of membership, each instance is shown and counted separately in the list of the project members. For example, when a project member is added to a group directly and also through inheritance, they appear twice in the project member list, each entry indicating a different source, and are counted as two distinct project members.

* When a project member is added directly the source is: direct.
* When a project member is added by permission group the source is: the name of the permission group.

### Create permission groups

On the permission group page an Owner of an organization can create new permission groups.

1. Create a new group
2. Add a name
3. Save it

### Add permission groups to users

There are two possibilities to add permission groups to an Updraft user:

1. On the Users page, the Owner of an Organization is able to select permission groups for each user
2. SSO: When SSO users log in via an SSO integration (e.g., Okta, AD), Updraft automatically discovers their group memberships from the IdP.
   1. Newly detected permission groups are automatically added to the User, simplifying group management for large organizations.
   2. When you are using SSO and you would like to mapping SSO groups with Updraft permission groups, create first the permission groups in Updraft, so that the mapping works correctly.&#x20;

### Assign permission group to project(s)

1. Click on the 3 dots next to your created permission group
2. Select the projects and related applications to which your permission group should get access
   1. you can set indivual access on app level
3. Select the user-role (The maximum user-role defines the highest access level any user in the group can obtain for that project)
4. Add to project

## Mapping SAML groups to Updraft permission groups

In certain situations, you may need to align the SAML groups from your Identity Provider (IdP) with the group names used in Updraft. This is an optional process, required only if your IdP does not provide the actual group names, but instead sends an ID linked to the group in the IdP. You can configure this in the Settings of each SAML setup by using key/value pairs.

Updraft will automatically assign users to the right permission group.&#x20;

It is important that the groups are created in Updraft (it is sufficient to enter the name of the permission group). The group mapping can then be carried out in the SAML provider. As soon as a user logs in via SSO, their group is then dedected and the user is assigned to the permission group in Updraft. This allows you to make fine granular settings for permissions down to app level - for example, you can only give your SSO user access to your test app via SSO mapping, but not to the productive app.&#x20;


# Tester Dashboard

With the Tester Dashboard, we enable our customers to make the software testing of applications even more efficient.

As an Updraft user with the "[tester](/dashboard/usermanagement#organization-roles-and-user-roles)" user role, you have the ability to view and install the apps to which you have been granted access. This guide explains how these apps are displayed on your dashboard and how you can interact with them.

## Tester Dashboard Access&#x20;

When you log in and navigate to the `/dashboard` page, you will see a list of all the apps that you have access to. This list is specifically tailored to the tester user role and provides key information about each app to facilitate easy installation and usage.

### App listing by project

* All apps that you have access to are listed on the dashboard.
* The apps are sorted alphabetically by the project title from A-Z, making it easy to locate the app you need.

### App environment name display

* Each app listing on the dashboard includes the name of the environment (e.g., development, staging, production) associated with that app.
* This helps you identify the context in which the app is being used.

### Latest app and build versions

* For each app, the dashboard displays the latest app version along with the corresponding build version.
* This ensures that your users with the user-role 'testers' are always aware of the most recent updates and can install the latest version of the app they have access to.

### Detailed app view

* You have the option to expand each app listing to view all relevant details of the app.
* The expanded view may include additional information such as release notes, installation instructions, and other metadata that might be useful during testing (OS Version, release notes).


# Profile & User Account

Here you find all information about your personal profile settings and your user account.

## What you’ll find in Profile Settings

Need to change some of your profile details, such as your name, email address, password? Open the Profile of your Updraft Account by clicking on the profile icon on the left sidebar.

* [Profile Preferences](/dashboard/account/profile-preferences)
* [Personal Token](/dashboard/account/personal-token)
* [Notifications](/dashboard/account/notifications)

## What you’ll find in Account Settings

Need to change your organization name, your subdomain, your organization Icon or you would like to upgrade to the paid plan? Open the Account Section of your Updraft Account by clicking on the profile icon on the left sidebar.

* [Account Overview](/dashboard/account/account-overview)
* [Plan & Billing](/dashboard/account/plan-and-billing)
* [Security](/dashboard/account/security-single-sign-on)
* [Developer Accounts](/dashboard/account/developer-accounts)

###


# Profile Preferences

### **Profile Preferences**

Here you can change your E-Mail Address, your name and your password.

![Preferences](/files/-M6np8-Vb5U-V8mdFiNC)

### **Change your account e-mail**

If you would like to change your account e-mail address proceed following steps:

1. Go to your profile preferences page
2. Change your e-mail address
3. Save
4. Go to your e-mail account
5. Verify your new e-mail address
6. After you verified your e-mail address successfully you are able to login with your new set e-mail address


# Two-factor authentication

## Two-factor authentication

Two-factor authentication (2FA) provides an additional level of security to your Updraft account.&#x20;

Once 2FA has been configured for your user account, you will be prompted to enter the code generated by your one-time password app after entering your email address and password.

Once 2FA is enabled, it is only possible to log in to your account if the email address, password and one-time code are available.

2FA is available for Owner & Admin Users. Mobile-Users can't enable themself 2FA.

However, if an organisation [enforces](/dashboard/account/profile-preferences/two-factor-authentication#enforcing-2fa) 2FA, the users with the user role 'mobile user' can also configure 2FA before they can log into the mobile dashboard.

### Overview

Updraft supports devices as the second factor of authentication. After you enabled 2FA, in addition to your username and password to sign in, you’re prompted to type in the one-time code from your 2FA app. If 2FA is enforced by an Owner of an organization you will be prompted to activate your 2FA device when trying to sign in which performs then a secure authentication on your behalf.

{% hint style="info" %}
Don’t forget to back up your recovery codes!
{% endhint %}

### Enabling 2FA

Updraft supports one-time password authenticator applications.

#### Step 1 enable 2FA in Updraft:

1. Login to your Updraft account
2. Go to your User Profile Settings
3. Go to Preferences
4. Click on Enable-2FA

#### Step 2 install a 2FA application on your device

1. Install a compatible application, like:
   * [Google Authenticator](https://support.google.com/accounts/answer/1066447?hl=en)
   * [Microsoft Authenticator](https://www.microsoft.com/en-us/account/authenticator)
   * [LastPass Authenticator](https://lastpass.com/auth/)
   * [SailOTP](https://openrepos.net/content/seiichiro0185/sailotp)
2. In your 2FA application:
   1. Scan the QR-code in Updraft with your device’s camera to add the entry automatically.
   2. Enter the details provided in Updraft (URL & key) to add the entry manually into your authenticator application.

![Enable 2FA](/files/-MdWVnGxAkJU-fUivi4B)

#### Step 3 back in Updraft

1. Enter the six-digit pin code from the 2FA application on your device into the **Pin code** field.
2. Click on Enable

If the pin code you entered was correct, you will be forwared the list of the recovery codes. Download them and keep them safe. After you close the recovery code page you will see a message displaying that you successfully enabled 2FA.

### Recovery codes

Each recovery code can be used only once to sign in to your Updraft account.

Once two-factor authentication has been successfully configured, you will be prompted to save or download the recovery codes displayed. If you ever lose access to your one-time password authenticator or lose your device, you can use one of these recovery codes to log in to your Updraft account.

![Recovery Codes](/files/-MdXYJq5ttJP8Kx7VS_h)

### Signing in with 2FA Enabled

Logging in with 2FA is slightly different from logging in normally. Once you have configured 2FA, the next time you log in, after entering your username (email address) and password, you will be prompted to enter your 2FA authenticator app code. Once you have entered the code, you will be redirected to the Updraft dashboard.

#### Sign in by using a one-time password

When asked, enter the code from your one- time password authenticator’s application or a recovery code to login in.

### Disabling 2FA <a href="#disabling-2fa" id="disabling-2fa"></a>

If you ever need to disable 2FA:

1. Go to your User Profile Settings
2. Go to Preferences
3. Click on Disable 2FA

This clears all your two-factor authentication configurations.

{% hint style="info" %}
IF 2FA is enforced by an Organization you will not be able to disable 2FA yourself. You need to get in contact with the Owner of your Organization.
{% endhint %}

### Recovery options <a href="#recovery-options" id="recovery-options"></a>

To disable two-factor authentication on your Updraft account (for example, if you have lost your 2FA code generation device) you can:

* Use a saved recovery code or
* regenerate 2FA recovery codes

#### Saved recovery codes <a href="#regenerate-2fa-recovery-codes" id="regenerate-2fa-recovery-codes"></a>

Enabling and the configuration of two-factor authentication for your account generates several recovery codes. Such recovery codes needs to be saved. You can use one of them to sign in into your account again.&#x20;

You can use a recovery code after you typed in your username and password when prompted to type in the pin code from the 2FA authenticator application.&#x20;

As soon you used one of your recovery codes you can't use them again, but you can still use all other recovery codes you saved<br>

#### Regenerate 2FA recovery codes <a href="#regenerate-2fa-recovery-codes" id="regenerate-2fa-recovery-codes"></a>

To regenerate 2FA recovery codes, you need to login into your Updraft account at your desktop:

1. Go to your User Profile Settings
2. Go to Preferences
3. Click on Regenerate Recovery Codes
4. You need to confirm if you really want to regenerate recovery codes
5. Click **Regenerate recovery codes**
6. **Save or download the new recovery codes**

{% hint style="info" %}
If you regenerate 2FA recovery codes your previous recovery codes will not longer work. Save them!
{% endhint %}

#### Ask an Updraft account owner to disable two-factor authentication on your account <a href="#ask-a-gitlab-administrator-to-disable-two-factor-authentication-on-your-account" id="ask-a-gitlab-administrator-to-disable-two-factor-authentication-on-your-account"></a>

If you cannot log in after you have already enabled 2FA, ask the Updraft Owner of your organisation for help. An owner of an updraft organisation can temporarily disable 2FA for each user in their organisation. Once an owner has disabled this, you can then reconfigure 2FA.

### Enforcing 2FA

As the owner of an Updraft organisation, you can push 2FA for all your users.

#### Enforce 2FA

To enforce 2FA:

1. Go to your User Profile Settings
2. Go to your Account Settings
3. Enable enforcing for all users

Once this is enforced, your organisation's users will need to configure 2FA on their next login before being redirected to the Updraft dashboard. They will need to either scan the QR code or manually add the key to their Authenticator app. Once configured, they must log in and will be asked for the PIN code.

As the owner, you always have an overview of which users have 2FA configured and you can also disable 2FA in the user view. Just click on your user.

If 2FA is forced, your users cannot disable 2FA independently.

### Enforcing 2FA for single users

An Owner of an organization is able to enforce 2FA for single users of his organization.&#x20;

#### To enforce 2FA for a single user:

1. Go to the [Usermanagement](/dashboard/usermanagement)Page
2. Select the user you would like to enforce 2FA
3. Enforce 2FA

If an Owner enforces 2FA for a single user, the user is not able to deactivate 2FA himself and if a user has 2FA already activated, the Owner is still able to enforce 2FA for this user.

#### Disable 2FA for a single user:

1. Go to the [Usermanagement](/dashboard/usermanagement)Page
2. Select the user you would like to disable from 2FA
3. Disable enforce 2FA

If an owner disables "enforced 2FA" for a user, 2FA stays enabled until the user disables it by himself.


# Personal token

### **Profile Personal Token**

If you would like to upload your apps with the help of the API Upload or if you are using one of our plugins to distribute your apps, you will find your API Token in the section Personal Token. There you will also find the SDK Token to use our open-source SDK.

![Personal Token](/files/-M6npbjMwdISLJdNdCGY)

###


# Notifications

### **Profile Notifications**

Within the section notifications you can enable or disable if you would like to receive notifications from Updraft.&#x20;

![Notifications](/files/-M6nq3X3mNdpA0wdKG5Y)

##


# Organizations

## Organizations

In the Organizations section you can see all Updraft App Distribution Organizations to which you have access. You can open them directly or select which organization is your default organization.

![List of Organizations](/files/8U9w0nG1RFnEzcuUXvNo)


# Account Settings

## **Account Overview**

Here you can edit all your account details. All account settings are only manageable by the [Owner](/dashboard/usermanagement#organization-roles-and-user-roles) of the account.

![Account Overview](/files/-M6nr8TsMLp4nIEvM-2u)

* **Change Organization Name**: You can adjust your organization name
* **Change Subdomain**: You can simply edit your subdomain
* **Change Organization Icon**: You can upload a new organization icon
* Enforce 2FA for all users of your Organization
* Enable Custom SMTP (Enterprise Plan)
* Enable Custom Storage (Enterprise Plan)
* **DANGER ZONE**: You can delete your Account by clicking on the button. You need to confirm your the deletion of the account with your password

### Custom SMTP

Use your own SMTP server - this feature is available within the enterprise plan only.

By default, getupdraft.com takes care of your email delivery. However, you can send mail through your own SMTP server if you’d rather use your own service.

To set it up:

1. Go to your Account Settings
2. Enable Custom SMTP
3. Provide a From E-Mail
4. Provide a Reply-To E-Mail
5. Add the SMTP Host and the Port
6. Add the authentication
7. Enable SSL/TLS

As soon you have added all configs you can send a test mail to check if the the added SMTP service works.&#x20;


# Plan & Billing

### Plan & Billing

Here you can adjust your billing information or change your plan. At the same time, you have an overview about some usage statistics of your organization and the invoice history.

### Usage Statistics

All data at one place. Here you can see all the statistical data of your organization.

![Usage Statistics](/files/-M6nuUGeMOXR15ZZJqbD)

### Upgrade Price Plan

If you would like to upgrade your plan just click on the Upgrade button and you will be guided through the steps to add your creditcard. Everything about the pricing you can find on the [Pricing Page](https://getupdraft.com/pricing) as well in the [FAQs](/faq).

![](/files/-M6nuz0HhbMLNVONOK-W)

### Invoice History

At the end of each month we will charge your creditcard and send you an invoice to the Owners Account e-mail adress. At the same time you find an Overview about all Invoices within your Account. Just scroll down a bit.

![Invoice History Updraft](/files/-M6nvPcFYhEOs7fZz58B)

### Downgrade Price Plan

You can downgrade your Pay-As-You-Go plan at any time.

If you want to switch from a Pay As You Go plan to a Free plan, you must meet the Free plan limit. We will also let you know what changes you need to make before you can switch it to the free plan (you need to delete app versions and projects).

To change the Price Plan, follow the steps below:

* Open your account as Owner
* Switch to your profile
* Click on Change Plan
* Select the Free Plan
* Click on Downgrade

At the time of downgrade, the exact time will be registered and the storage space will be charged as well as the basic fee for the current month. The downgrade takes place immediately and cannot be reversed after Confirmation (The downgrade takes place immediately after Confirmation).


# Free Plan

**You will get almost all features for Updraft, for free. All you need to get started is an email address.**

### What can I do with a Free Updraft account?

* **1 Project**: You can create one project
* **3 Apps:** You can upload 3 Apps / Builds
* **500 MB of storage**: You have 500 MB of Storage&#x20;

And the following features you get on top:

* ✔  Employees & Testers: unlimited
* ✔  Distribution: Public Link, QR Code, E-Mail, Enterprise Web-App Store
* ✔  SDK Integration
* ✔  Automatic Updates
* ✔  Feedback & Bug Reporting
* ✔  Custom Domain
* ✔  Open API Access
* ✔  3rd party integrations
* ✔  Build History
* ✔  Release History


# Paid Plan (Pay-As-You-Go)

**You will get all features for Updraft, for a small amount of 5 dollars per month plus the used storage calculated down to the minute per month with a price of 5$ / GB. All you need to get started is an email address.**

### What can I do with a Paid Plan Updraft account?

* **Projects**: You can create as many projects as you want
* **Apps:** You can upload and store as many apps and versions of your apps as you want
* **500 MB of storage**: You are not limited in the size of your apps. Every MB over the free plan limitation of 500 MB is calculated with a price of 5 $ / Gigabyte/ month.&#x20;

And the following features you get on top:

* ✔  Employees & Testers: unlimited
* ✔  Distribution: Public Link, QR Code, E-Mail, Enterprise Web-App Store
* ✔  SDK Integration
* ✔  Automatic Updates
* ✔  Feedback & Bug Reporting
* ✔  Custom Domain
* ✔  Open API Access
* ✔  3rd party integrations
* ✔  Build History
* ✔  Release History

### How can I subscribe to a paid plan?

1. Login into your Updraft Account as an Owner
2. Go to the Profile Section / Plan & Billing
3. Click on the upgrade button and add your credit card information

### How much does a paid plan subscription cost?

You can subscribe to a paid plan for $5 per month plus the calculated costs for the used storage above 500 MB.

You can downgrade at any time back to the free plan. The current billing period will stop and we will charge your credit card with the basic fee of 5 $ and your used storage within the period.


# Security (Single Sign-On)

Within the account settings of an organization you are able to set up SSO for your organiziation.

SAML 2.0 is the most recent iteration of the Security Assertion Markup Language as established by the OASIS organization. This standard facilitates the exchange of authentication and authorization information across different security domains.

SAML 2.0 operates as an XML-based protocol that utilizes security tokens with assertions to relay data about a principal (typically an end user) between a SAML authority (identity provider or IdP) and a SAML consumer (service provider or SP).

## SAML Authentication Workflow

1. The user navigates to your Updraft subdomain and clicks the LOGIN with SSO button.&#x20;
2. The user is then redirected to your Identity Provider (IdP) login page.&#x20;
3. Using the IdP's web-based authentication system, the user logs in, and the IdP sends a SAML Response to the Updraft callback endpoint.&#x20;
4. If the user is authenticated and has the necessary permissions in Updraft, they are granted access to the Updraft Organization where only authorized apps are visible.
   1. New Accounts in Updraft are created (no e-mail invitation or activation is sent)
   2. Owner or Admin is after the first login of the user able to add it to the Updraft projects

## SAML Authentication Workflow Group Mapping

Sometimes, it’s very helpful to align SAML group names from your Identity Provider (IdP) with the actual group names in Updraft ([Permission Groups](/dashboard/usermanagement/permission-groups)). This step is optional and only required if your IdP doesn’t send the actual group name, but instead provides an ID associated with the group in the IdP. You can set up this group mapping in the settings for each SAML configuration provider, using key/value pairs. Map the Permission Groups you set in Updraft with the groups in your SAML configuration.

Updraft will automatically recognize new groups with each authentication and add user to the permission group in Updraft. After that you can assign the permission groups to your app projects.

This approach makes it possible to carry out almost all user management outside Updraft.&#x20;

{% content-ref url="/pages/APVq0XiTub0iEAqRG3If" %}
[Single Sign-On with Okta](/dashboard/account/security-single-sign-on/single-sign-on-with-okta)
{% endcontent-ref %}

{% content-ref url="/pages/vQcHwK3Wrg7A1zd6F7dZ" %}
[Single Sign-On with Google Worspace](/dashboard/account/security-single-sign-on/single-sign-on-with-google-worspace)
{% endcontent-ref %}

{% content-ref url="/pages/0QXUdkGOuT2ox9RbkRq9" %}
[Single Sign-On with Microsoft Entra](/dashboard/account/security-single-sign-on/single-sign-on-with-microsoft-entra)
{% endcontent-ref %}

{% content-ref url="/pages/sw5w7BqccH0i4OZDDH17" %}
[Single Sign-On with JumpCloud](/dashboard/account/security-single-sign-on/single-sign-on-with-jumpcloud)
{% endcontent-ref %}

{% content-ref url="/pages/qTb1XqL36zOmSGv32QzS" %}
[Single Sign-On with Ping Identity](/dashboard/account/security-single-sign-on/single-sign-on-with-ping-identity)
{% endcontent-ref %}

{% content-ref url="/pages/51oc0oYKbte29TLz4HBd" %}
[Custom SSO (SAML)](/dashboard/account/security-single-sign-on/custom-sso-saml)
{% endcontent-ref %}


# Single Sign-On with Okta

In this tutorial, you will learn how to integrate your Updraft Organization with your Okta Users Directory through SAML. Please follow the next steps.

## Step 1 - Obtain the SAML Provider Details from Updraft

> Only Owner of an Updraft Organization is able to add an SSO Integration

1. Open your Account Settings as an Owner
2. Go to the Security Page
3. Click Add SSO
4. You will see now your SAML configuration
5. Store them

<figure><img src="/files/irjeJLtPlecOtNLuvE67" alt=""><figcaption></figcaption></figure>

## Step 2 - Add a New App in Okta Identity Provider

1. Open the Admin Dashboard of Okta: <https://login.okta.com/>
2. Click on **Add an app** to use Single Sign-On

<figure><img src="/files/0sgGINBgdA9aGHM17hyR" alt=""><figcaption></figcaption></figure>

## Step 3 - Create a New App

1. Click on Create New app within the Catalog

<figure><img src="/files/XH06Z9keXpQE4NXKpyU6" alt=""><figcaption></figcaption></figure>

## Step 4- Create a new App Integration

1. Select in the next pop-up SAML 2.0

<figure><img src="/files/lkkcPYhpEB3qriKUUICM" alt=""><figcaption></figcaption></figure>

## Step 5- Create SAML Integration: General Settings

In the next step the General Settings of the SSO Integration is made.

1. You can Add an App Name: My Updraft App
2. You can optional upload an image
3. You can set if the app icon should be visible to your users&#x20;

<figure><img src="/files/uow0GOMN6Y2N694W0zEm" alt=""><figcaption></figcaption></figure>

## Step 6- Create SAML Integration: Configure SAML

In the next step the **Single sign-on URL** and Audience URI is set.&#x20;

1. Set the Single sign-on URL to: <https://getupdraft.com/saml2\\_auth/acs/>
2. Audience URI: getupdraft
3. Name ID format: Unspecified
4. Application username: Okta username
5. Update application username on: Create and Update

<figure><img src="/files/0KVfmd5RxIUguRPxLcM8" alt=""><figcaption></figcaption></figure>

## Step 7- Create SAML Integration: Configure Attribute Statements

1. Scroll down on the Configure SAML page
2. Add following "Attribute Statements":

* email = user.email
* username = user.email
* first\_name = user.firstName
* last\_name = user.lastName&#x20;

<figure><img src="/files/m6Ef7SaAY4DXQSnkQSyC" alt=""><figcaption></figcaption></figure>

## Step 8- Create SAML Integration: Configure Group Attribute Statements

{% hint style="info" %}
This Setting is needed if you want to use [Permission Groups](/dashboard/usermanagement/permission-groups)
{% endhint %}

1. Scroll down on the Configure SAML page
2. Add following "Groupe Attribute Statement":

* Name = groups\
  Name format = Unspecified\
  Filter Matches regex = .\*

<figure><img src="/files/YkclBljQHJERiPYY0YQR" alt=""><figcaption></figcaption></figure>

3. Click on Next Button
4. You will be redirected to the created application page

## Step 9- Create SAML Integration: Get your XML file from Okta an upload it to Updraft

To download the XML file, click on "View IdP metadata" and copy the XML Content to a new XML file.&#x20;

1. Scroll down to the Section 'SAML Signing Certificates'
2. Click on Actions for the SHA-2 xml.file
3. Click on View IdP metadata
4. The .xml file will be opened in a new browser-tab
5. Download the .xml file

{% hint style="info" %}
When you visit the page of the .xml file, you can right click -> "Save as" and save it on your machine. It seems to keep formatting that way as is in the original.
{% endhint %}

## Step 10- Invite your users to your newly created SSO App in Okta

#### 1.  Go to admin.okta.com/admin/dashboard

1. Go to admin.okta.com/admin/dashboard
2. Go to the page Directory
3. Select People
4. Click on Add Person

   <figure><img src="/files/5GACSx3J496d8xZWvsjb" alt=""><figcaption></figcaption></figure>
5. Fill out the First name, Last name and Username (=E-Mail Adress)

   <figure><img src="/files/vHn5cjhdok0lrjAplFhg" alt=""><figcaption></figcaption></figure>
6. Click on Save
7. User will get an e-mail notification to activate his Okta account
8. As soon the user has activated his account, you can Assign the User to the Updraft SSO Application

## Step 11- Assign your users to your newly created SSO Updraft App in Okta

1. Click on the user&#x20;
2. Click on Assign Applications

   <figure><img src="/files/AkJWM3nGyJ0hV8gRrcuX" alt=""><figcaption></figcaption></figure>
3. Assign SSO Updraft App to the User

   <figure><img src="/files/fhvtUjfiaZRil4c8Mk5p" alt=""><figcaption></figcaption></figure>
4. Click on Assign and then Done.

## Step 12- Upload the .xml metadata to your Updraft Organization

1. Go back to your Updraft Organization
2. Account Settings
3. Security Page
4. Click on Add Okta
5. Upload the obtained .xml file
6. Save it
7. Done!

## Step 13 - verify the integration

After following all the above steps, log in to your Updraft account to verify that you are now able to sign in with Okta.&#x20;

If the integration was successful:

1. If you are opening your subdomain.getupdraft.com/login page you will see the Login with SSO Okta Button
2. When your assigned Users click on the Login with SSO Button they will  be redirected to the Okta login page
3. upon successful authentication with Okta, your users will be logged into Updraft automatically and redirected to the dashboard page of Updraft
4. A new account for your uses will be created in Updraft after they logged-in the first time
5. Now you can assign projects and apps to your users.

&#x20;If you encounter any issues, please refer back to the previous steps or reach out to the support team for assistance.


# Single Sign-On with Google Worspace

In this guide, you will learn how to set up Single Sign-On (SSO) between Google Workspace and Updraft. This integration allows your users to seamlessly sign in to Updraft using their Google Workspace credentials.

#### Prerequisites

## Prerequisites

* **Google Workspace**: An active Google Workspace account with administrator rights.
* **Updraft Account**: Owner access to your Updraft organization account.

## Step 1: Configure Google Workspace as Identity Provider

### **1.1 Access Google Admin Console**

* Sign in to the Google Admin console.
* Navigate to *Security* > *Set Up Single Sign-On (SSO)*.

### **1.2 Create a SAML Application**

* Click on *Add App* and select *Add Custom SAML App*.
* Enter a custom name for the application, such as "getupdraft".
* Optionally, add a custom logo.

### **1.3 Configure SAML Settings**

* **SSO URL**: Enter the SSO URL provided by Updraft, available from your Updraft account: <https://getupdraft.com/saml2\\_auth/acs/>
* **Entity ID**: Enter the Entity ID provided by Updraft: getupdraft
* **Certificate**: Download the .XML certificate and save it, as it will be needed later in Updraft.

### **1.4 Assign User Attributes**

* Configure the user attributes to be passed to Updraft, such as `email`, `first_name`, and `last_name`.

<figure><img src="/files/d1gCunJh7pH5Xdsnwuwq" alt=""><figcaption></figcaption></figure>

* Save the settings and enable the SAML app.

## Step 2: Configure SSO in GetUpdraft

### **2.1 Access Account Settings**

* Sign in to your Updraft account and navigate to the account settings.
* Open the Security Page

### **2.2 Enable SAML SSO**

* Click on Add new *SSO*.
* Upload the .XML certificate you downloaded from Google Workspace.
* Save the settings.

## Step 3: Test the SSO Connection

### **3.1 Create a Test User**

* Create a test user in Google Workspace or use an existing one.
* Grant this user access to the Updraft SAML app.

### **3.2 Test Sign-In**

* Open a new browser or incognito window and navigate to the Updraft sign-in page (mydomain.getupdraft.com/login).
* Select the *Sign in with Google* option.
* Ensure the user can successfully access Updraft using Google Workspace credentials.


# Single Sign-On with Microsoft Entra

In this tutorial, you will learn how to integrate your Updraft Organization with your Microsoft Entra Users Directory through SAML. Please follow the next steps.

## Step 1 - Obtain the SAML Provider Details from Updraft

> Only Owner of an Updraft Organization is able to add an SSO Integration

1. Open your Account Settings as an Owner
2. Go to the Security Page
3. Click Add SSO
4. You will see now your SAML configuration
5. Store them

## Step 2 - Configure your Identity Provider Microsoft Entra

Now that you have your Service Provider information, it’s time to configure it.

## Step 3 - Create your SSO identity Provider Microsoft Entra app

1. Login to your [Azure Portal](https://portal.azure.com/#home)
2. Go to All Services
3. Search for 'Enterprise Applications'
4. Select Enterprise Applications
5. Click on New Application
6. Click on Create your own application
7. Type in a name
8. Select: Integration any other application you don't find in the gallery (non-gallery)

## Step 4 - Configure your SSO identity Provider Microsoft Entra app

1. Click on Set up Single Sign On Button

![](/files/RQBzLt91WcOIn4X8wKb8)

2. You will be redirected to the SSO with SAML Page

## Step 5 - Basic SAML Configuration

1. Click on Edit
2. Add Entity ID: getupdraft
3. Add Reply URL: [https://getupdraft.com/saml2\_auth/acs/](https://u2.getupdraft.com/saml2_auth/acs/)
4. Click on Save

## Step 6 - Attributes & Claims

Add attributes and claims

1. Name ID = user.userprincipalname

Additional claims:

<figure><img src="/files/OQmfwoalK8sIKelNbkUq" alt=""><figcaption></figcaption></figure>

Save.

## Step 7- Create SAML Integration: Get your XML file from Microsoft Entra&#x20;

1. On the SAML-based Sign-on page go to step 3: Saml certificates
2. Click on download the Federation Metadata XML

## Step 8- Upload the .xml metadata to your Updraft Organization

1. Go back to your Updraft Organization
2. Account Settings
3. Security Page
4. Click on Add Microsoft Entra
5. Upload the obtained .xml file
6. Save it
7. Done!

## Step 9 - verify the integration

After following all the above steps, log in to your Updraft account to verify that you are now able to sign in with Microsoft Entra.&#x20;

If the integration was successful:

1. If you are opening your subdomain.getupdraft.com/login page you will see the **Login with Entra Button**
2. When your assigned Users click on the Login with SSO button they will  be redirected to the Microsoft login page
3. Upon successful authentication with Microsoft, your users will be logged into Updraft automatically and redirected to the dashboard page of Updraft
4. A new account for your uses will be created in Updraft after they logged-in the first time
5. Now you can assign projects and apps to your users.

&#x20;If you encounter any issues, please refer back to the previous steps or reach out to the support team for assistance.


# Single Sign-On with JumpCloud

In this tutorial, you will learn how to integrate your Updraft Organization with your JumpCloud Users Directory through SAML. Please follow the next steps.

## Step 1 - Obtain the SAML Provider Details from Updraft

> Only Owner of an Updraft Organization is able to add an SSO Integration

1. Open your Account Settings as an Owner
2. Go to the Security Page
3. Click Add new SSO
4. Click CUSTOM SSO
5. You will see now your SAML configuration
6. Store them

<figure><img src="/files/zjcQQyqG6E7z2glsXQzN" alt=""><figcaption></figcaption></figure>

## Step 2 - Add a New App in JumpCloud Identity Provider

1. Open the Admin Dashboard of JumpCloud: <https://console.jumpcloud.com/login/admin>&#x20;
2. Click on **SSO Application.**
3. Click on the circular **+** button, or, if this is your first application, click **Get Started**.

<figure><img src="/files/okp9hx2oxawzv4RkenQa" alt=""><figcaption></figcaption></figure>

4. At the bottom of the screen, click **Select** in the Custom Application tile. Then, click **Next**.

<figure><img src="/files/hR8AjFvsOPg6n3iy4zDs" alt=""><figcaption></figcaption></figure>

5. On the **Select Options** tab, select the following.&#x20;
   * **Manage Single Sign-On (SSO)**
   * **Configure SSO with SAML**
6. Click **Next**.

<figure><img src="/files/WsauPJyvK4rp7XvQvcLG" alt=""><figcaption></figcaption></figure>

7. On the **Enter** **General Info** tab:

   a. Add a name for the **Display Label**.

   b. Click **Save Application**.

<figure><img src="/files/9LzO09XnDo9sIOTh0Xjc" alt=""><figcaption></figcaption></figure>

8. After your application is saved, click **Configure Application**.

<figure><img src="/files/pMM2UAIZ7Hp75WNPgdyN" alt=""><figcaption></figcaption></figure>

9. On the **SSO** tab of the configuration modal:

   a. Enter "getupdraft" in the **SP Entity ID** field.

   b. Copy the **Assertion Consumer Service URL** from Updraft that you saved earlier and paste it into the **ACS URL** field. (<https://getupdraft.com/saml2\\_auth/acs/>)

<figure><img src="/files/kYvjt34ljvxWMQ2qq1Vf" alt=""><figcaption></figcaption></figure>

c. Leave the **SAML Subject NameID** set to **username**.

d. In the **SAMLSubject NameID-Format** field, select **urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified** from the dropdown menu.

e. Set the **Signature Algorithm** to **RSA-SHA256**.

f. Select **Sign Assertion and Response**.

g. Select Checkbox **Declare Redirect Endpoint**

<figure><img src="/files/a7fRSmxp0N1lijlrTIsa" alt=""><figcaption></figcaption></figure>

h. Add the following **User Attributes**:

* email = email
* username = email
* first\_name = firstname
* last\_name = lastname

i. Activate **Group Attributes** and enter "groups"

<figure><img src="/files/HiQBkE9kVwXQhijgSQyQ" alt=""><figcaption></figcaption></figure>

10. Download the **Metadata XML File**
11. Click **Save**

<figure><img src="/files/nJPUiDW7VkWAncJJfvAm" alt=""><figcaption></figcaption></figure>

12. On the **User Groups** tab:
    * Add a user group to the SSO application. If you want to restrict who can access the SSO app, create another user group in your JumpCloud console and assign it to the SSO app.&#x20;

<figure><img src="/files/Gx49iqiPm4KnOyWqWjLz" alt=""><figcaption></figcaption></figure>

## Step 3 `-` Upload the .xml metadata to your Updraft Organization

1. Click **Choose File** and select your **Metadata XML file**
2. Click **Save**

<figure><img src="/files/zLNqTkV2wOVjhdhTkRdW" alt=""><figcaption></figcaption></figure>

## Step 4 - verify the integration

After following all the above steps, log in to your Updraft account to verify that you are now able to sign in with your Custom SSO (JumpCloud).&#x20;

If the integration was successful:

1. If you are opening your subdomain.getupdraft.com/login page you will see the Login with Custom SSO Button
2. When your assigned Users click on the Login with SSO Button they will  be redirected to the JumpCloud login page
3. upon successful authentication with JumpCloud, your users will be logged into Updraft automatically and redirected to the dashboard page of Updraft
4. A new account for your uses will be created in Updraft after they logged-in the first time
5. Now you can assign projects and apps to your users.

&#x20;If you encounter any issues, please refer back to the previous steps or reach out to the support team for assistance.


# Single Sign-On with Ping Identity

In this tutorial, you will learn how to integrate your Updraft Organization with your Ping Identity Users Directory through SAML. Please follow the next steps.

## Step 1 - Obtain the SAML Provider Details from Updraft

> Only Owner of an Updraft Organization is able to add an SSO Integration

1. Open your Account Settings as an Owner
2. Go to the Security Page
3. Click Add new SSO
4. Click **CUSTOM SSO**
5. You will see now your SAML configuration
   1. Ensure the **ACS URL is set to**: `https://getupdraft.com/saml2_auth/acs/`
6. Store them

<figure><img src="/files/yHrhOCwTn0xUtR0N1EIk" alt=""><figcaption></figcaption></figure>

## Step 2 - Add a New App in Ping Identity

1. Login to your [Ping Identity Console](https://signon.pingidentity.com/davinci/policy/5447db4173e2cd3139ba8e633817677e/authorize?client_id=b91b7752f23e20d56c8623aca138ead8\&response_type=code\&scope=openid\&redirect_uri=https://www.pingidentity.com)
2. Click on **Applications.**
3. Then select the Application section and click on the blue circular **+** button at the top of the page.
4. Enter your Application Name, select **SAML Application**, and click the **Configure** button when available.

<figure><img src="/files/Osv0KDuRog1B89xD2CYK" alt=""><figcaption></figcaption></figure>

5. From the SAML Configuration, select **Manually Enter**, then enter your Single Sign On URL and Audience Restriction from Step 1.
6. Click the **Save** Button.

<figure><img src="/files/eFtGRsGwe3rDLRg7RcXg" alt=""><figcaption></figcaption></figure>

## Step 3 - Configure Ping Identity Single Sign-On with SAML

1. From the Applications page, locate and select the application you just created, then enable the toggle switch.

<figure><img src="/files/RsAtT1IDQ6ztkZqgvG92" alt=""><figcaption></figcaption></figure>

2. Select the application and go to the Attribute Mapping tab. Click the pencil icon to edit the mappings.
   1. For the **saml\_subject** attribute, select **Email Address** from the PingOne Mappings drop-down and click **+ Add**.
   2. Next, add **email** to the Attributes field, select **Email Address**  from the drop-down, and click **+ Add**.
   3. Next, add **frist\_name** to the Attributes field, select **Given Name** from the drop-down, and click **+ Add**.
   4. Then, add **last\_name** to the Attributes field, choose **Family Name** from the drop-down, and click **+ Add**.
   5. Then, add **username** to the Attributes field, choose **Email Address** from the drop-down, and click **+ Add**.
   6. Finally, add **groups** to the Attributes field, select **Group Names** from the drop-down, and click **+ Add**.
3. Once configured, click the **Save** Button.

<figure><img src="/files/cJEVXCAlp5CSmo0Ri48Q" alt=""><figcaption></figcaption></figure>

4. On the **Access** tab:
   * If you want to restrict who can access the SSO app, create another user group in your Ping Identity console and assign it to the SSO app.

<figure><img src="/files/5HlxYfbaLeOxBFLdAjmQ" alt=""><figcaption></figcaption></figure>

## Step 4 - Download the Metadata XML file from Ping Identity

1. Select the **Configuration** tab and click the pencil icon to edit the configuration. Choose the **Sign Assertion & Response** option, then click Save to apply your changes.&#x20;

<figure><img src="/files/iuDi68L9irn6L1SmOmJZ" alt=""><figcaption></figcaption></figure>

2. Once the configuration is complete, you will need to click on the **Download Metadata** button, as this will download the **Metadata XML** to complete the integration in Updraft.

<figure><img src="/files/cUnh3goMG3XpBStYBEI5" alt=""><figcaption></figcaption></figure>

## Step 5 `-` Upload the .xml metadata to your Updraft Organization

1. Click **Choose File** and select your **Metadata XML file**
2. Click **Save**

<figure><img src="/files/zLNqTkV2wOVjhdhTkRdW" alt=""><figcaption></figcaption></figure>

## Step 6 - verify the integration

After following all the above steps, log in to your Updraft account to verify that you are now able to sign in with your Custom SSO (Ping Identity).&#x20;

If the integration was successful:

1. If you are opening your subdomain.getupdraft.com/login page you will see the **Login with Custom SSO Button**
2. When your assigned Users click on the Login with SSO Button they will  be redirected to the Ping Identity login page
3. upon successful authentication with Ping Identity, your users will be logged into Updraft automatically and redirected to the dashboard page of Updraft
4. A new account for your uses will be created in Updraft after they logged-in the first time
5. Now you can assign projects and apps to your users.

&#x20;If you encounter any issues, please refer back to the previous steps or reach out to the support team for assistance.

## Error handling

### **Required Attributes for Updraft SSO**

Updraft requires specific attributes to be included in the **SAML assertion** from your Identity Provider (IdP). If any of these attributes are missing or incorrectly mapped, authentication will fail.

| **Attribute Name** | **Required?**        | **Expected Value** | **Description**                                        |
| ------------------ | -------------------- | ------------------ | ------------------------------------------------------ |
| `saml_subject`     | ✅ Required           | Email Address      | Used as the unique identifier for user authentication. |
| `email`            | ✅ Required           | Email Address      | Must be present and **case-sensitive**.                |
| `first_name`       | ✅ Required           | Given Name         | The user's first name.                                 |
| `last_name`        | ✅ Required           | Family Name        | The user's last name.                                  |
| `username`         | ✅ Required           | Email Address      | Used for internal user management.                     |
| `groups`           | ✅ Required (if used) | Group Names        | Used for **role-based access control (RBAC)**.         |

#### **🔍 Troubleshooting Missing Attributes**

* **Error:** *User is not found in Updraft*
  * **Fix:** Ensure that the `email` and `saml_subject` attributes are correctly mapped in your IdP.
* **Error:** *SSO login succeeds, but user has no permissions*
  * **Fix:** Check if the **`groups`** attribute is included in the SAML assertion and mapped correctly in Updraft.

### **Case Sensitivity for Email Addresses**

Updraft **treats email addresses as case-sensitive**. If the email address in the **SAML assertion does not match the case exactly as stored in Updraft**, authentication may fail.

#### **🔍 Common Case Sensitivity Issues**

| **Issue**                                | **Example**                                     | **Fix**                                                                      |
| ---------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------- |
| Email in SAML does not match stored case | `John.Doe@company.com` ≠ `john.doe@company.com` | Ensure the **email attribute is consistently formatted** in the IdP.         |
| User exists but cannot log in            | `User Not Found` error despite correct email    | Normalize email casing in the IdP **or update the stored email in Updraft**. |

#### **🔍 Recommended Fix**

* Configure **Ping Identity or other IdPs** to always send emails in **lowercase** to Updraft.
* Ensure that user records in Updraft **match the exact email case** as sent in SAML.

***

### **Assertion Consumer Service (ACS) URL Mismatch**

The **ACS URL** tells the IdP where to send the authentication response. If this URL is incorrect, SSO will fail.

#### **🔍 Fixing ACS URL Errors**

| **Error Message**            | **Cause**                                                  | **Fix**                                                                    |
| ---------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------- |
| `Invalid ACS URL`            | The IdP is sending the SAML response to the wrong URL.     | Ensure the **ACS URL is set to**: `https://getupdraft.com/saml2_auth/acs/` |
| `Audience Restriction Error` | The **SAML Audience does not match** what Updraft expects. | Ensure the `saml:Audience` value matches `https://getupdraft.com/`.        |

***

###


# Custom SSO (SAML)

The Updraft platform supports integration with any SAML 2.0-compliant Identity Provider (IdP). This feature is available with the **Enterprise Plan** and enables you to configure a custom SAML provider for seamless single sign-on (SSO) functionality.

Since different Identity Providers have varying setup processes, the following instructions provide the general configuration requirements and fields you will need to complete.

***

#### **Steps to Configure SAML with Updraft**

1. **Sign in to Your Identity Provider (IdP)**\
   Log in to the administrative interface of your Identity Provider. Refer to the IdP’s documentation for specifics about where to configure Service Provider (SP) details.
2. **Service Provider (SP) Information**\
   Use the following information when adding Updraft as the Service Provider:
   * **SP Entity ID:**\
     Enter the following value:\
     `getupdraft`
   * **Assertion Consumer Service (ACS) URL:**\
     Copy and paste the following URL:\
     `https://getupdraft.com/saml2_auth/acs/`
3. **NameID and Format**\
   Configure the NameID settings as follows:
   * **SAML Subject NameID:**\
     Set this to `username`.
   * **SAML Subject NameID Format:**\
     Select:\
     `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`
4. **Signature Algorithm**\
   Set the Signature Algorithm to:\
   `RSA-SHA256`
5. **User Attribute Mapping**\
   Map the following user attributes to ensure proper synchronization between the IdP and Updraft:

| **User Attribute** | **Value** |
| ------------------ | --------- |
| email              | email     |
| username           | email     |
| first\_name        | firstname |
| last\_name         | lastname  |

***

#### **Testing the Integration**

Once the configuration is complete, test the SSO functionality:

* Attempt to log in to Updraft using the configured SSO provider.
* Ensure user attributes (email, username, first\_name, and last\_name) are correctly populated in Updraft.

***

#### **Troubleshooting Tips**

* Double-check the SP Entity ID and ACS URL for typos or errors.
* Confirm that your IdP supports RSA-SHA256 as a signature algorithm.
* Ensure the attribute mapping aligns with the user directory in your IdP.

***

#### **Frequently Asked Questions**

**What if my IdP doesn't support RSA-SHA256?**

Most modern IdPs support RSA-SHA256. If yours does not, consult the IdP's documentation or contact their support for alternative algorithms.

**Can I configure additional attributes?**

Yes, additional attributes can be configured in your IdP. Updraft currently requires the four specified attributes (email, username, first\_name, last\_name) to function properly.

**Where can I get support for custom SAML integration?**

For support, reach out to the Updraft technical team via your Enterprise support portal.

***

This documentation provides the general setup for integrating Updraft with your custom SAML Identity Provider. If additional assistance is required, refer to your IdP’s documentation or contact Updraft support (<support@getupdraft.com>).


# Developer Accounts

Here you will find Information to the [App Store Connect API](/dashboard/account/developer-accounts/app-store-connect-api)

{% content-ref url="/pages/NWVgNgFPrev5CFCW2egf" %}
[App Store Connect API](/dashboard/account/developer-accounts/app-store-connect-api)
{% endcontent-ref %}


# App Store Connect API

With the App Store Connect API you can automate tasks you perform on the Apple Store Connect website.

{% hint style="info" %}
This feature will be available soon
{% endhint %}

With Updraft you can distribute your iOS builds to TestFlight easily. To make this possible, you need to add an Apple Connect Key to your project.&#x20;

#### **Requirements:**

* Be an Admin or Account Holder on the App Store Connect website
* Be an Owner of the Project on Updraft

### Create a App Store Connect API Key

1. Log in to [App Store Connect](https://appstoreconnect.apple.com/)
2. **Check if the correct Team is selected in the top right corner**&#x20;
3. Select *Users and Access*.<br>

   <figure><img src="/files/57tcOm89xZqXOgLUXjzg" alt=""><figcaption></figcaption></figure>
4. Go to the *Integrations* tab.
5. Click on the Add (**+**) button.
6. Enter a name for the key. The name is for your reference only and is not part of the key itself.
7. Under *Access*, select the **role for the key**. The roles that apply to keys are the same roles that apply to users on your team.
8. Click *Generate*. The new key’s name, key ID, a download link, and other information appears on the page.
9. **Download and Store the Private Key**.&#x20;

{% hint style="warning" %}
The private key is available for download **only once**. Apple does not keep a copy of the private key. Store your private key in a safe place!
{% endhint %}

### Add the API Key to Updraft

1. Login with an Owner Account on [Updraft](https://u2.getupdraft.com/login)
2. Go to the *Profile* section on the left and then *Developer Accounts*<br>

   <figure><img src="/files/SrMUOvNOgtkbZGpNBnUg" alt=""><figcaption><p>The Integrations tab under Profile > Developer Accounts</p></figcaption></figure>
3. Now click on *App Store Connect API* under *new Integration*
4. Upload your **.p8** file which you just downloaded from the [App Store Connect page](https://appstoreconnect.apple.com/access/integrations/api)
5. Insert the Key Name, Issuer ID and Key ID from the [same App Store Connect page](https://appstoreconnect.apple.com/access/integrations/api)
6. Press Save

That's it, well done!&#x20;


# Google Play Developer API Integration Guide

This guide walks you through integrating your project with the Google Play Developer API, enabling automated management of your Android applications on the Google Play Store.

{% hint style="info" %}
This feature is included in the [Pay-as-you-go and Enterprise plan](https://docs.getupdraft.com/~/changes/hCUa1az9yKp7rsxQS8yk/dashboard/account/plan-and-billing)
{% endhint %}

### Prerequisites

Before you begin, ensure you have:

* A **Google Play Developer account**.
* Access to the **Google Cloud Console**.
* An **Updraft account**.

### Create a Google Cloud Project

1. Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
2. Click on the project dropdown and select **New Project**.
3. Enter a project name and click **Create**.

### Enable the Google Play Developer API

1. In the Google Cloud Console, go to **APIs & Services > Library**.
2. Search for **Google Play Android Developer API**.
3. Click on it, then click **Enable**.

### Create a Service Account

1. In the Google Cloud Console, navigate to **IAM & Admin > Service Accounts**.
2. Click **+ CREATE SERVICE ACCOUNT**.
3. Provide a name and description for the service account.
4. Click **Create and Continue**.
5. Assign the **Service Account User** role.

### Generate a JSON Key for the Service Account

1. In the **Service Accounts** list, click on the newly created service account.
2. Navigate to the **Keys** tab.
3. Click **Add Key > Create New Key**.
4. Select **JSON** and click **Create**.
5. Securely store the downloaded JSON key file; you'll need it for integration.

### Grant Access in the Google Play Console

1. Go to the [Google Play Console](https://play.google.com/console/).
2. Navigate to **Users and permissions**.
3. Click **Invite new user**.
4. Assign the necessary permissions, such as:
   * **View app information**
   * **Manage production releases**
   * **Manage testing track releases**
   * **Edit store listing, pricing & distribution**

### Integrate with Updraft

1. Log in to [Updraft](https://getupdraft.com/login).
2. Navigate to **Profile > Developer Accounts**.

<figure><img src="/files/zWxLpLIR6kfreL0rpCxf" alt=""><figcaption><p>The Integrations tab under Profile > Developer Accounts</p></figcaption></figure>

1. Click **Connect Google Play**.
2. Upload the JSON key file you downloaded earlier.
3. Click **Save** to complete the integration.


# Your Projects

If you have create [your first app project](/quickstart/your-first-app-project) you will be redirected to the [App Overview Page](/your-projects/app-overview). From there you have the possibility to switch between following tabs within your project:

* [Project Settings](/your-projects/project-settings)
* [Builds](/your-projects/builds)
* Feedback
* [Distribution](/your-projects/distribution)

At the same time if you have create more than one project you can search for them with the header search bar.


# Project Settings

Edit all information about your app project

On the project settings of your app project you can manage:

* [General Project Information](/your-projects/project-settings/overview#overview)
* [Integration](/your-projects/project-settings/integration-1)
* [User & Permissions](/your-projects/project-settings/user-and-permissions)


# Overview

Overview about your app project settings

## Overview

If you created at least one app project you can manage everything within the tab Project Settings.

Within the project settings you are able to:

* Adjust the project title
* Adjust the description of your project
* Adjust the app titles of all your apps
* Adjust the environment tag of all your apps
* Chose default app icon
* Delete a project

![Project Settings](/files/-Lmj9O3V442PUeu9rgkD)

## Edit your app title

If you want to edit the App title or adjust the environment just select your app and click on the icon edit. Don't forget to save your changes.

![Edit your App title](/files/-LmjAFIKyvQzU-uh-fTO)

## Select your app icon (dashboard)

If you have more than one app of your project or different app icons for iOS, Android and Windows or all your environments you can easily define which app icon is shown to your users on the dashboard desktop and the dashboard mobile.&#x20;

1. Go to the project settings
2. Define from which app of your project you would like to show the app icon
3. Check the checkmark


# Automatically clean up build binaries

Automatically clean up app binaries.

{% hint style="info" %}
This feature is only available in the **Enterprise Plan**.&#x20;
{% endhint %}

You know how it is, your disk space is getting tight, every build and all binaries are filed and saved - no problem Updraft helps you with that.

## Activate and deactivate auto-delete

By default, the clean option is disabled. You can easily enable it in the project settings. There are two ways how you can optimize the storage of your builds: With a timestamp of 30, 60 or 90 days or over the total number of builds you want to save.

<figure><img src="/files/0oqtPRzDjCMnritDBLWQ" alt=""><figcaption><p>Auto Delete App Binaries</p></figcaption></figure>

## Delete builds and binaries by time

You can make this setting in the project settings and have the app binaries automatically deleted after a certain number of days.&#x20;

You can make the following settings:

* 30 days
* 60 days
* 90 days

Updraft System tracks the exact date and timestamp of each uploaded binary (created at). Once the set days for deleting is reached, the binary will be deleted.

If a binary was changed using the Exchange File functionality, the exact timestamp is also registered here.

## Delete builds and binaries by number

You can make this setting in the project settings and have the app binaries automatically deleted after a certain number of binaries is reached per app environment.

The oldest build gets automatically deleted when a build is uploaded and the count exceeds the chosen max number of available builds.

Example:

Set the  max number "10". Then 10 builds are getting uploaded for this app / environment-> nothing gets deleted. Then a developer adds a new build "Number 11" -> the first uploaded build "Number 1" gets deleted within this app. Now available are build number 2-11.&#x20;

## Autocleanup with Custom S3

If you have set up a custom S3 bucket to store your app binaries it will work with the feature Autoclean up. Build binaries will automatically be delete in your S3 bucket if you have activated the Autoclean up.


# Notification Integrations

Tool integration with Updraft.

Here you can find the following information about possible integration with Updraft:

{% content-ref url="/pages/-LDXYpcbcyKTAdVmwyNy" %}
[Slack integration](/your-projects/project-settings/integration-1/slack)
{% endcontent-ref %}

{% content-ref url="/pages/-MJvIYYYk46d\_mxpNJUM" %}
[Webhook integration](/your-projects/project-settings/integration-1/webhook-integration)
{% endcontent-ref %}

{% content-ref url="/pages/-MPYtp1K7u1cDuIR7ffp" %}
[Microsoft Teams integration](/your-projects/project-settings/integration-1/microsoft-teams)
{% endcontent-ref %}

{% content-ref url="/pages/kkAWGOmXoN3Jkl14yN5Z" %}
[Discord integration](/your-projects/project-settings/integration-1/discord-integration)
{% endcontent-ref %}

{% content-ref url="/pages/I96KyRgbjOyqFRUrUwHK" %}
[WebEx integration](/your-projects/project-settings/integration-1/webex-integration)
{% endcontent-ref %}


# Slack integration

Slack is a popular team-based chat application that has revolutionized the way that development teams communicate.

Now you can integrate Updraft with Slack and start receiving notifications in when the following events take place:

* A **new build** of your app has been uploaded or an update is available
  * A slack notification always redirects to the specific build to download it
* A **new feedback** of your app has been received **by your app testers**

{% hint style="success" %}
Integrate Updraft in your Slack in your team is quite simple and the configuration will take you less than 1 minute.&#x20;
{% endhint %}

![Updraft Slack Message for new app version](/files/-LKW0lPpjZ8J3TgwWvJQ)

![New received feedback](/files/-MJvMZGRCOEPehJz4H0U)

Updraft will send an HTTP POST payload to the configured Slack URL. The Slack integration can be configured under the project settings page of your specified app project.

## **Add Slack to your app project**

1.Go to the **project settings and select integration**

2\. Click on a Add to Slack button

![Add to Slack](/files/-MJvKVlTWRCOkJJNFoMj)

3\. And then press **Add to Slack** Button.

&#x20; You will see the Slack modal view screen and you’ll need to click "Add to Slack".

**4.** Sing in to your slack team by enter your team **slack domain**. Then click **Continue**.

![](/files/-LE9mJkrwdGH1k9c7wtT)

**5.** After selecting your slack team Slack you need to authorize with your **e-mail** and **password**.

![](/files/-LE9lrtz6xZ0ykUcQNGv)

**6.** On the last step you can select your slack c**hannel**, **User** or **Bot** you want notifications to be posted to. Press **Authorize** to finish your slack integration.

![Select your slack channel](/files/-LE9jyTLpztXOCyyyAfe)

7\. Back in Updraft you see your configured Slack URL

![Slack Integration Overview](/files/-MJvLIV8vcaleB8YRfkV)

Here you can choose again which trigger events you want to have configured and you also have the possibility to set if the slack integration should be active. You can also edit all settings at a later time.

8\. Done by clicking on **Save**

As soon as you click on Save, you will receive a message in the selected slack channel that the Updraft-Slack Integration has been added to the channel.


# Webhook integration

Webhooks are designed to automate messages when a certain event is triggered.

## Webhook for app distribution

Webhooks are automated messages that are sent from other applications to your desired application when something happens. The main target of webhooks is that information from [Updraft](https://getupdraft.com) can be sent to users without that they have to visit Updraft and the portal and dashboard all the time to check if something changed.

Updraft's Webhook integration allows you to receiving notifications when the following events take place:

* A **new build** of your app has been uploaded or an update is available
* A **new feedback** of your app has been received **by your app testers**

Updraft will send an HTTP POST payload to the configured Webhook URL. The Webhook integration can be configured under the project settings page of your specified app project.

## **Add a Webhook to your app project**

1.Go to the **project settings and select integration**

2\. Click on a Add **Webhook** button

![Add/ Edit your webhook for app distribution](/files/-MJvuyeqvF6PWza-DLMT)

3\. Add a **name** for your Webhook

4\. Add your **Webhook URL** where you would like that Updraft should send notifications. You can get the webhook URL from your integrated app (Microsoft Teams, Zapier, Zammad etc.)

5\. Chose your App from which you would like to get notifications

6\. Select the event triggers

7\. You can enable if the new webhook integration should be active or not

8\. **Save and your are Done!**

If now a new event happens, Updraft will send the notifications which are configured into your integrated app. For example how it could look like:

![Webhook notification](/files/-MJvwEQndJKjaJWmTj4N)

### Disable a Webhook

If you would like to change your configured webhook just follow the steps:

1. Open your App Project
2. Go to Project Settings
3. Click on Integration
4. Select your active Webhook Integration by clicking on the pen
5. Disable the Webhook by clicking on the switcher
6. Save

### Delete a Webhook

If you would like to delete your configured webhook just follow the steps:

1. Open your App Project
2. Go to Project Settings
3. Click on Integration
4. Hover over the active weebhook in the list
5. Click on the trash icon on the right side
6. A pop-up will appear where you need to confirm it

### Example Webhook notification about new build

**When a new build of your app is uploaded a webhook message will look like this:**

```
{
  "attachments": [
    {
      "actions": [
        {
          "url": "https://getupdraft.com/getapp/7e2ff3544387477e87606969fa93e757",
          "type": "button",
          "style": "primary",
          "text": "Install"
        }
      ],
      "fields": [
        {
          "title": "Project",
          "short": false,
          "value": "test"
        },
        {
          "title": "Environment",
          "short": true,
          "value": "Test"
        },
        {
          "title": "OS",
          "short": true,
          "value": "iOS"
        },
        {
          "title": "Build version",
          "short": true,
          "value": "20200129.1142"
        },
        {
          "title": "Version",
          "short": true,
          "value": "1.0"
        }
      ],
      "color": "#f6b33e",
      "fallback": "*New version of test available.*\nEnvironment: Test\nOS: iOS\nInstall: https://getupdraft.com/getapp/7e2ff3544387477e87606969fa93e757",
      "text": "A new version of your app is available."
    }
  ]
}
```

### Example Webhook notification about new received feedback or bug

**The webhook message will look like this:**&#x20;

```
{
 "id": 23,
 "url": "",
 "id_in_org": 7,
 "image": null,
 "timestamp": "2020-08-21T12:04:20.667207Z",
 "tag": "design",
 "description": "Test feedback",
 "email": "test@appswithlove.com",
 "build_version": "1.2.1",
 "system_version": "iOS 10.0",
 "device_name": "iPhone 6",
 "device_uudid": "QWEFD123341QWE",
 "navigation_stack": "LoginViewController/OnboardingViewControlle/MainViewContoller",
 "priority": 2,
 "status": 1
}

```


# Microsoft Teams integration

Updraft integrates with Microsoft Teams seamlessly. Integrate Microsoft Teams and get notified about new available app versions or new received feedbacks.

### Microsoft Teams for app distribution

With just a few steps you can integrate Microsoft Teams into your app distribution process with Updraft and be informed about the latest app versions at any time and install them directly.

{% hint style="warning" %}
Microsoft is retiring the Office 365 Connectors feature from Microsoft Teams. The original retirement was announced for August 2024 and has been extended to **December 2025**. If you still have a legacy Connector *Webhook URL* configured in Updraft, replace it with a Power Automate **Workflow URL** before the cutoff — otherwise notifications will stop. This documentation has been updated for Workflows.
{% endhint %}

**Prerequisites:**

To integrate Updraft with Microsoft Teams, you need at least one channel in Teams and need to be able to create a Workflow for this Channel. Furthermore, your Updraft Account needs to be a Project-Admin.

#### 1. Create a Workflow for your Channel

1. Press the three dots on the left Sidebar of Teams.
2. If you do not see the App *Workflows*, search it.

<figure><img src="/files/4Bu5yMdwF3qZV3XkFg5u" alt="" width="375"><figcaption><p>Press on Workflows to continue</p></figcaption></figure>

3. Then you can press on *New flow* and either use the *Post to a channel when a webhook request is received* or create a flow from blank.

<figure><img src="/files/wpLtdHfoAaVVU1TtiBMV" alt=""><figcaption><p>Select the template or create a flow from blank.</p></figcaption></figure>

4. Lets say you decide to use the template from Microsoft
5. Give this flow a name and if you are connected to teams, press on next.
6. Select your Teams Team and Teams Channel in which you want to post a message. Press on *Create a flow.*
7. Great! Now copy the URL of the Workflow and switch to Updraft.

<figure><img src="/files/LlFbTOZriFyia13B3E7L" alt=""><figcaption><p>Copy this URL, you will need it later</p></figcaption></figure>

{% hint style="info" %}
Updraft accepts Workflow URLs on the `*.powerplatform.com` and `*.logic.azure.com` domains. Legacy `*.webhook.office.com` Connector URLs are no longer accepted.
{% endhint %}

#### 2. Add a Integration to Updraft

1. Select the Organization and Project. Then navigate to the *Project Settings*
2. Go to the *Integration* tab and add a Microsoft Teams Integration.

<figure><img src="/files/ZsocAZN5WVq7qX4hHymh" alt=""><figcaption><p>Add a Microsoft Teams Integration. </p></figcaption></figure>

3. Add a name and the URL from the Teams Workflow.
4. If you want to configure the Workflow only for a specific App, select it.
5. Press on *Save* and navigate to the *Builds* of your Project.

#### 3. Test the Integration of the Workflow.

1. On the *Builds* page, upload a new Build.
2. After a new build was uploaded, switch to Teams again and check your configured Channel.

<figure><img src="/files/f7MBxmLYwageUCGjVP27" alt=""><figcaption><p>A automated Post was send via Workflows, perfect!</p></figcaption></figure>

Great, now you will get a message via Workflows every time you upload a build from Updraft.

**Message format**

Notifications are delivered as an Adaptive Card (full-width in the Teams chat) with project, app, environment, feedback, and device facts, plus the Description rendered as its own wrapped block so long text stays readable. A **Feedback** button links back to Updraft.

{% hint style="info" %}
If you do not want to have the little message that this Workflow uses a template, you will have to create a flow from blank in step 1.4.
{% endhint %}


# Discord integration

## Discord Notifications for app distribution

Updraft's Discord integration allows you to receiving notifications when the following events take place:

* A **new build** of your app has been uploaded or an update is available
* A **new feedback** of your app has been received **by your app testers**

Updraft will send an HTTP POST payload to the configured Discord URL. The Discord integration can be configured under the project settings page of your specified app project.

## **Add a Discord Webhook to your app project**

1. Go to the **project settings and select integration**
2. Click on a Add **Discord** button
3. Add a **name** for your Discord Integration
4. Add your **Webhook URL** from Discord where you would like that Updraft should send notifications.&#x20;
5. Chose your App from which you would like to get notifications
6. Select the event triggers
7. You can enable if the new Discord integration should be active or not
8. **Save and your are Done!**


# WebEx integration

## WebEx Notifications for app distribution

Updraft's WebEx integration allows you to receiving notifications when the following events take place:

* A **new build** of your app has been uploaded or an update is available
* A **new feedback** of your app has been received **by your app testers**

Updraft will send an HTTP POST payload to the configured WebEx URL. The  integration can be configured under the project settings page of your specified app project.

## **Add a WebEx to your app project**

Requirements:

1. Go to [Webex App Hub](https://apphub.webex.com/)
2. Connect a new Webhook: <https://apphub.webex.com/applications/incoming-webhooks-cisco-systems-38054-23307-75252>
3. Define a Webhook Name
4. Select a Space
5. Click on Add
6. Copy your Webhook URL

<figure><img src="/files/iSLS8K1reZcXewYxtATO" alt=""><figcaption><p>Webhook for WebEx Space</p></figcaption></figure>

Go to the **project settings in Updraft and select integration**

1. Click on a Add **Discord** button
2. Add a **name** for your Discord Integration
3. Add your **Webhook URL** from Discord where you would like that Updraft should send notifications.&#x20;
4. Chose your App from which you would like to get notifications
5. Select the event triggers
6. You can enable if the new Discord integration should be active or not
7. **Save and your are Done!**

<figure><img src="/files/13WX78vZSW4oMY72v8AN" alt=""><figcaption><p>Notifications in WebEx Space from Updraft</p></figcaption></figure>


# User & Permissions

Use the page User & Permissions to manage membership roles for your project.

## Manage project members

Adding members to your app project allows you to collaborate across your development team or organization employees. You have the possibility to assign each member a user role based on the level of access the member needs for your project.&#x20;

You can add members of a project directly on project level. So it is easy to decide who should have access to a project and to invite existing Updraft users to a project.

### Add a member

To add a member to your app project:

1. Sign in to [getupdraft.com/login](https://getupdraft.com/login).
2. Chose your project. Select **Project Settings**
3. Go to the page **User & Permissions**
4. On the User & Permissions page, click **Add member**.
5. In the overlay, enter the e-mail adress, the first and last name of your member and select a user-role for the new member
6. You can select now the applications of your project where your user should have access
   1. Your user either has access to all applications in your project or only to selected apps.
7. Then click **Invite to project**.

{% hint style="info" %}
If your added member uses already Updraft, they will have the possibility to collaborate as soon you added them as a new member.
{% endhint %}

### Pending Invitation

If it's a new user to updraft they will get an e-mail from Updraft to verify their account and set a password first before the can login.&#x20;

{% hint style="warning" %}
As long as your newly created users have not accepted and verified their account, they won't be able to login to Updraft.
{% endhint %}

You can resend the invitation all the time.&#x20;

### Change user role of a member

You can change the user role you assigned to your member.

1. Sign in to [getupdraft.com/login](https://getupdraft.com/login).
2. Chose your project.&#x20;
3. Select **Project Settings**
4. Go to the page **User & Permissions**
5. On the User & Permissions page, select your member which you would like to edit.
6. Click on **Edit**
7. Change [User-Role](/dashboard/usermanagement#organization-roles-and-user-roles)
8. Save

### Remove a member

You can remove a member from a project.

1. Sign in to [getupdraft.com/login](https://getupdraft.com/login).
2. Chose your project.&#x20;
3. Select **Project Settings**
4. Go to the page **User & Permissions**
5. On the User & Permissions page, select your member which you would like to remove.
6. Click on **remove.**

Removed member is only removed from this project and still have access to login into your Updraft organization. To completely remove a user from an organization get in contact with the owner of your organization or see the documentation about [removing a user from the organization](/dashboard/usermanagement#removing-users-from-an-organization).

### E-Mail notification for existing Updraft users

If an existing user of Updraft is added to a project, he/she receives an e-mail notification with the information and the project to which he/she has been added.


# App Overview & App Settings

On the app overview and app settings page you can manage all your app settings.

As soon you created your first app project and added your app you will be redirected to the App Overview. Here you find all information about your Application as well you can add new apps to your project.&#x20;

### App title

The app title is shown when installing your application. You can adjust the title of your app within the project settings.

#### Edit app title

1. Go to the project settings
2. Select your app
3. Click on edit
4. Change your app title

### Deployment environment

{% hint style="info" %}
**Deployment environment:** in computer science it's described as a system in which a computer program is deployed and executed. Depending on the development progress of a program or an application, we made a distinction between different environments such as: Development, Build, Test, QA, Staging, Production
{% endhint %}

The name of the environment you can choose during the creation of a new app, if you want to edit your environment, you can do it within the project settings. Such environment name we use as a tag, so you can easily switch between your environments in your project by choosing the environment in the header dropdown.

![Switch between your environment within your project](/files/-LmjHPsf-PG0kGGFPSbL)

### Custom app icon

Updraft automatically extracts the app icons from your uploaded files and displays them to you and your app testers. You can always manually change your app icon on the app overview page, which can be very helpful for your testers, as you can customise the app icon yourself with, for example, the deployment environment. This way, your testers can always see which app they are testing. Proceed as follows:

1. choose your app
2. go to the app overview
3. click on the edit icon below the app icon
4. upload your new app icon

{% hint style="info" %}
The requirements for the app icon are as follows: Maximum size 5 MB and file format .jpg or .png.
{% endhint %}

### App key

For each created app Updraft creates an app key. The app key identifies your App in getupdraft.com. If you are using the Updraft SDK, the CURL Upload or a provided plugin, Updraft then knows exactly to display the right information at the right place.&#x20;

### CURL

You can easily upload your files to Updraft by using the CURL command. Copy the CURL command to the clipboard and adjust the path to the file. Everything else you find [here](/api/curl).

### Auto Update / in-app notification

If you integrated the SDK into your app you can enable the Auto Update functionality. Everytime you upload a newer app version / build your testers and end-users will be notified via in-app notification to update their current installed version. The complete documentation you can find [here.](/updraft-sdk/ios-autoupdate)

### Installation&#x20;

You can deactivate the download option for any app you like.&#x20;

App available for download:

* Yes - the app can be downloaded by using all installation links (E-mail, QR-Code, Public Link)
* No - the app can't be downloaded anymore by using installation links (E-mail, QR-Code, Public Link)

Once you have deactivated your app, your users and end-users will no longer be able to download and install your app. You can always reactivate your app and your users can download it again with the same installation/ download-URL they already received previously.


# Notifications

There are several possibilities to notify your team about new uploaded app versions.

### Notifications

On the app Overview page you are able to:

1. Enable notification about new app versions for project members
2. Enable notification about new app versions for testers and groups

{% hint style="info" %}
The settings for the notifications are made at app level. This means that if you have several deployment environments, you can set for each deployment environment of your app whether the project members and/or the testers and group should be notified about newly available app versions.
{% endhint %}

![Configure your app notifications](/files/-MUxq0BSSo2OJ5toPXmE)

### Notifications for testers & groups

You can set for each app whether your testers and groups on your distribution list should receive an automatic notification when a new app version is uploaded to your app. If you have activated the automatic notification, all your testers and groups on the distribution list will receive an email with the possibility to download and install the last uploaded app version (build).

### Notifications for project members

You can set for each app whether your project members should receive an automatic e-mail notification when a new app version is uploaded to your app. If you have activated the automatic e-mail notification, all your project members will receive an email with the possibility to download and install the last uploaded app version (build).


# Security

Set if an app is private or public.

## Set if an app is private or public

An app can be set as **Private**. Once an app is set as private, it can only be installed by authorized users and users who have access to the project. All the configuration can be done on the App Settings/ App Overview page. The configuration can be set by an Owner of an Organization or a project admin.

1. **Public**: Per default an app is public. **No** authentication or login is needed to install the app if a user has access to the public installation link or the QR-Code of the app.
2. **Private**: Authentication or login is needed to install the application with the public installation link or the QR-Code.&#x20;

{% hint style="info" %}
1\) If an app is set as private and an unathorised user which has no access to the app project (project permissions) opens the app installation link or scans the QR-Code an error message will appear.

2\) If an app is set as private and an authorised user which has project access but is not logged in opens the app installation link, he will be redirected to the login-page. After the successfull login he will be able to install the app with his mobile-phone.

3\) If an app is set as private and an authorised user which is already logged-in opens the app installation link he will be redirected to the installation page of the app.
{% endhint %}

## Distribution

If an app is set as private, it cannot be distributed via the distribution. Apps that have already been distributed and uploaded and the corresponding installation links show an error message after being called up by a user.


# Last uploaded build

Download & install your latest uploaded app version / build on the app overview page.

### Information about the latest uploaded build

As soon as you have uploaded your very first build to your app, you will see the main information of your latest uploaded build on the App Overview page.&#x20;

![Latest Build](/files/-LvuQ-zdJ9d34_AwPpyV)

You can download and install the uploaded build via its public link or by scanning the QR code.

![Install latest uploaded build](/files/-LvuQJuct24yucOj8pUL)

Each build generates a unique, static URL. Sharing this URL gives others access to *that specific build version*. Uploading a new build will generate a *new* URL — previous links will still point to their original builds, not the latest one.


# Add another app to your project

{% hint style="info" %}
**App Project:** An App project is a container for all of your apps across platforms: Android and iOS.&#x20;
{% endhint %}

### **Add another App to your project**

If you have created already an app with the environment called 'Test' within your project you can add another app with a new environment called for example Production.&#x20;

1. On the App Overview of your Project, click **Add App.**&#x20;
2. On the next step you see the OS platform options Android and iOS. Select your platform
3. On the last step of adding a new app you can chose your App Title as well as the name of the Environment.&#x20;
4. If you click on **Create App you** have successfully create a new app and added it to your existing project

![Added Apps](/files/-LmjpUbnaR3PzDTLgams)


# Android App Bundle (AAB)

Updraft supports Android App Bundle for app distribution.

The file format .aab is the new, official publishing format of Android with which your end-users can install your apps even more efficiently and user-friendly.

## Android App Bundle - Updraft

The Google Play Store uses the app bundle file to generate and deliver optimized APKs for each device configuration, so that only the Android code and resources needed for a particular device of your end user is downloaded for them. Updraft is not able to provide this feature because we do not have a reliable way with Updraft app distribution tool to detect the hardware and device information of the end user's device that is required for generating an optimized a perfect APK file.

Updraft takes advantage of Android App Bundle features to generate Universal APKs files that contain all the data needed to install your Android apps on any device. This means that some Android App Bundle features cannot be fully supported by Updraft, such as Dynamic Delivery, which allows for smaller app sizes and feature-based delivery.

Updraft uses the [Android App Bundle tool](https://developer.android.com/studio/command-line/bundletool) provided by Android when generating the .apk files from the uploaded .aab file.

## Default Android App Bundle Settings

{% hint style="info" %}
Per default the default android app bundle key settings are activated per app.
{% endhint %}

### Deactivate Default Android Bundle Key

Per default the provided android bundle key from getupdraft.com is set. To deactivate it:

1. Go to the application settings of your app
2. Deactivate the AAB Default Key

## Configuration Android App Bundle Settings

### Add your aab Settings

First of all, you need to add you .aab settings.

1. Go to your app project
2. Select your android app
3. Head over to the application overview / application settings
4. Chose aab settings
5. Add all necessary information

![Android App Bundle Settings](/files/-MjAA6-VOFVfeDqczbyH)

**Keystore**: deployment keystore (`.jks` file) used to sign the `APKs file`

**Keystore password:** It's the password - can be added as plain text.

**Keystore alias:** It's the alias - can be added as plain text.&#x20;

**Key:** Specifies the password for the signing key - can be added as plain text.&#x20;

### Upload your .aab file

As soon if you have added your .aab settings you can upload your .aab file. The upload is the same as for .apk or .ipa. You have the 3 options to upload the .aab file:

1. Just go to your builds / app version of your app and upload your .aab file manually
2. Use the Upload API
3. or you can use one of our CI plugins

#### Error with uploading aab. file

If you got an error while upload the .aab file please re-check your .aab settings on the application overview/ app settings page.

### Download your .aab file

Once you have uploaded the .aab file, Updraft will convert your .aab file to an .apk using the Android App Bundle tool. So the download for your end users is exactly the same and does not need any additions.&#x20;

You can always see in the build history that you initially uploaded an .aab file and you can even download it - we store it securely and encrypted in the cloud. This means you can also manage & version your .aab files with Updraft.

## Resign .aab&#x20;

When uploading an .aab file to Updraft, the file will be automatically re-signed with either the default key or your custom key specified by the developer. This process ensures that the app maintains its integrity and security, aligning with the key management practices established by the developer.

For more information check out the resigning .aab part:

{% content-ref url="/pages/7wqYU45YVS8BSEQnIyAY" %}
[Android Resigning](/your-projects/builds/build-history/android-resigning)
{% endcontent-ref %}


# Builds and App versions

A build is a synonym for a version of your app.

## Upload a new app version

Upload your application binary package to Updraft before you release it to your testers. Updraft supports package uploads for Android (.apk) and iOS (.ipa) apps.

## Uploading the package

To upload a new package to Updraft, go to the build page of your selected app project and switch with the help of the dropdown in the header to your app you want to upload a new package.&#x20;

### Upload your build / app version

Once you created your first app project and added your first app to it, you are able to upload your first builds.&#x20;

You can upload your builds:

* manually by drag & drop&#x20;
* manually by chosing it from your folder
* you can use one of our [Plugins](/integrations)
* or you have the possibility to upload your builds via the [API/ Curl](/api/curl)

We recommend to use one of our provided plugins - it's that simple!

### 1 Step Go to the build section

Uploading new builds to your app is realy simple. Just go to the Build tab on the left side bar and click on **Upload new build**. Be aware that you are staying in the right app.

![Upload first build](/files/-LmeemTd31ZXbKjvgeLU)

### 2 Step chose your build / app version to upload

Drag & Drop or chose your build from the folder. As soon you selected your file, the file will be uploaded to Updraft.

![Upload your build manually](/files/-Lmeh5HzChAtN11Vt5mk)

### 3 Step Overview about your uploaded build / app version

As soon you have successfully uploaded you see an overview about your uploaded file. You see the file name and you can delete it which redirects you back to the upload screen. You will see the App title and the Environment Name to which you are uploading your build. If you want you can add Release Notes. Such release notes your testers will see, as soon they install your application. If you click on Save your build will be uploaded to the displayed App & Environment and you will be redirected to the Build History.

![Overview about uploaded build](/files/-LmejcKmS97eCruQrJ9b)

{% hint style="info" %}
Release Notes can be added as plain text as well with line breaks.
{% endhint %}

### Upload app version with another package name or bundle ID

Updraft will alert you if you upload an app that uses a different bundle ID or package name than the previously uploaded files (iOS and Android).

### Supported app file types

With Updraft you can upload different app file types from iOS, Android or Windows.

Following app file types you can upload:

* .ipa
* .apk
* .aab
* .msix
* .msixbundle
* .misxupload
* .zip
* .msi
* .appx
* .appxbundle
* .appxupload


# Build history / app version history

Manage all uploaded builds within the build history

## Build history overview desktop

As soon you have uploaded your builds to your app you will see them in the Build History.

![Build History](/files/-Ly9N5oAtC7FLHYwmW6o)

Following Information you will see within the app version build history:

* Uploading Date
* Version of your build
* the size of your build
* the numberof Downloads of your build
* the type 'how' the build was uploaded to Updraft
* and you see the Release Notes

&#x20;If you want to see more detail information about a build just select them by clicking on it.

## Detail information of a build / app version

If you have selected your app build you see more information about it on the right context field.&#x20;

![](/files/-MdaEmWyp_FeVeOfd68P)

We also extract the following information from the uploaded .ipa file:

* The Version
* The Build Version
* The Bundle ID
* The minimum OS-Version the app is built for
* The Certificate Name
* The Team IDENTIFIER
* The UDIDs of your ad-hoc certified .ipa

For Android we extract the following information from the .apk file:

* The [Version Name](/android/android-faq#what-is-the-android-version-name)&#x20;
* The [Build Version](/android/android-faq#what-is-the-android-version-code) (Version Code)
* The [Package Name](/android/android-faq#what-is-the-android-package-name)
* The minimum OS-Version the app is built for

## Build history overview mobile-web-app

If a user opens the mobile-web-app of getupdraft.com he is able to install all previously uploaded app versions.&#x20;

![Mobile app version build history](/files/-MZJ2gtleSVI8c-jHprS)

If your app projects has more than one deployment environment your users can change them.&#x20;

By clicking on the expand icon you can see further app version details and also download the selected app version.


# iOS Resigning

With Updraft you can resign a your iOS Builds. It allows you to change attributes in of your App which you uploaded.

#### Requirements

* The correct App selected
* A build in your build history

## Resign your app

To start resigning your app, go to your build history and press on the build you wish to resign.&#x20;

Then, you can press on the *Resign this build*-Button on the appeared Dashboard.

<figure><img src="/files/r1nxspIHAOcJrgzxBzlB" alt=""><figcaption><p>Build Dashboard under Apps > Builds</p></figcaption></figure>

Now you will see a form with different input fields (*Optional* / **Required\***):

* *Display Name:* The Name of the App which the User will see on his Homescreen.
* *New Version Number:* Change the version
* *New Build Number:* Change the build number
* **Entitlements\*:** Here you can select the source of your Entitlements. An entitlement is a right or privilege of your iOS app. An example is the *Push Notification Entitlement.* To send push notifications from your app, you need to configure the entitlement so your app can has the rights to send notifications. With Updraft you have 3 options to configure entitlements:&#x20;
  * Use the *entitlements from your provisioning profile*: Default, the source of your entitlements is the provisioning profile.&#x20;
  * *Combine App Entitlements:* Entitlements are merged from the .ipa into the uploaded provisioning profile.
  * *New app entitlements:* Here you can upload a new entitlements.plist file to override all existing entitlements.
  * **Distibution Certificate\*:** Upload your .p12 certificate with which you want to resign your app.
  * *Certificate Password:* If your Distribution Certificate is password protected, add it here. If not, leave blank
  * **Distribution Identity Name\*:** To distribute an app on the App Store, you need a Apple Distribution code-signing identity. The Input should look like this: `Apple Distribution: <Team Name> (<Team ID>)`, where `<Team Name>` and `<Team ID>` identifies your team. You can get this e.g. from your provisioning profile.
  * **Provisioning Profile\*:**  To resign your app, Updraft requires an app record registered with an explicit App ID. This is included in the provisioning profile.&#x20;

<figure><img src="/files/oLGGf29OF04yJFHOmDwg" alt="" width="563"><figcaption><p>The Resign Build form</p></figcaption></figure>

After you filled all needed fields out, press on *Resign build.* After that you can see a new entry in your build history, with the *Build is resigned* flag on "Yes". Perfect! &#x20;


# Android Resigning

With Updraft you can resign a your Android Builds. It allows you to change attributes in of your App like the Package Name and Version Code.

## Requirements

* The correct App version is selected
* A build in your build history

## Resign your app

To resign your Android app, go to your build history and press on the build you wish to resign.&#x20;

Then, you can press on the *Resign this build*-Button on the appeared Dashboard.

<figure><img src="/files/FFcoFKgydm4E78LMS1R8" alt=""><figcaption><p>Build Dashboard under Apps > Builds</p></figcaption></figure>

Now you can see different input fields:

* Package Name: Here you can change the package name. Attention: If you want to upload the .aab file to the Playstore, the **package name must be the same** as the one on the play store.&#x20;
* Version Name: This is the version that the user sees. Should but does not have to follow the `<major>.<minor>.<point> <string>` convention. The version name can be any string.
* Version Code: This Number is used by Android to determine the newest version. If a apk should be published, always increment the version code.&#x20;
* Keystores: To upload your app to the Play Store, you will need a keystore key.&#x20;

  * .aab default key: Updraft provides a default keystore. This key you will **not be able to upload** a signed .aab file to the Play Store.
  * .aab my own signing key: To Upload a build, you need to add your own keystore in the *application overview settings* (Apps > Application Overview > *Use AAB default key >* off ).

  <figure><img src="/files/XdQuhwsKrVoJsRj2NdPi" alt=""><figcaption><p>The Resign Build form</p></figcaption></figure>

Now press *Resign build* and you will see your resigned build in the build history. &#x20;

## Handling .aab resigning issues

When you upload an already signed .aab file, Updraft removes the existing keystore from the file and ensures the .aab file is correctly signed with the new keystore.  Your .aab file will be re-signed with the keystore stored in Updraft (either the default or a custom keystore).&#x20;

**Error Message:** "The Android App Bundle was signed with multiple certificate chains.


# Release Notes

Release notes helps your app testers to understand the details of your distributed app version and the changes.

## Release Notes

Release notes are shown:

* Within the app build history
* Withing the e-mail notification if new app versions are uploaded
* On the mobile download page of your app

There are several ways to manage release notes of an app version / build.&#x20;

### Upload new app version (build)

When you upload a new app version you can add your release notes.&#x20;

![Upload a new build](/files/-Mgu_gyAdoPuTdnYmpII)

### Edit release notes

If you would like to change release notes of an already uploaded app version/ build you can select your app version within the app build history and click on edit release notes.

![Edit release notes](/files/-MguavgYBh-5AU9e6MqB)

### Release Notes Slack notification

If you have integrated [Slack](/your-projects/project-settings/integration-1/slack) for your app, the release notes of your new uploaded app version will also appear in the Slack notification.


# Exchange already uploaded app version

Exchange an already uploaded app version.

Sometimes it makes sense to replace an already uploaded app version without changing the chronology in the app version history.

1. Go to the build history / app version history page
2. Select your app version you would like to exchange
3. Click on exchange file button
4. Upload your new app file
5. Add a comment
6. Click on save

The newly uploaded app file will be exchanged and a change history will be added to the specific app version details with information about the user who changed the file, the added comment, and the timestamp of the file exchange.

{% hint style="info" %}
If an app file is replaced, only the app file and the meta-information extracted change, the previously provided public installation link will redirect the user to the new app file.&#x20;
{% endhint %}

## Exchange the already uploaded app version with CURL

The exchange with CURL needs to steps:

1. First, you need to upload your app version to the server
2. Secondly you need to replace an existing app version

First of all you need to pre-upload the new app version to the Updraft server:

## Pre-upload new app version

<mark style="color:green;">`POST`</mark> `POST https://getupdraft.com/api/applicationadd/?preload=1&app={{ AppID }} (content-type: multipart/form-data) app={{ BuildFile }}`

#### Headers

| Name          | Type   | Description         |
| ------------- | ------ | ------------------- |
| content-type  | object | multipart/form-data |
| Authorization | object | Authorization Token |

{% tabs %}
{% tab title="200 " %}

```
{“preload_path”: {{ preload_path }},
“title”: {{ AppTitle }},
“version”: “1.1",
“build_version_number”: “4",
“version_exist”: true
}
```

{% endtab %}
{% endtabs %}

## Replace existing app file

<mark style="color:orange;">`PUT`</mark> `Put PUT https://getupdraft.com/api/versions/{{ buildID }}/ (content-type: application/json) {“preload_path”: {{ preload_path }}, “comment”:“”}`

#### Headers

| Name          | Type   | Description         |
| ------------- | ------ | ------------------- |
| Authorization | object | Authorization Token |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}


# Distribute and install a pre-release version of your app

Distribute an app to your testers in a few seconds

## Distribute and install a build

You can distribute and install every build version of your app you uploaded to Updraft. Just select your specific app build and scroll down on the right context field.

At the bottom of the right context field within the [Build History](/your-projects/builds/build-history) you will have different possibilities to distribute and install easily your uploaded binaries:

* Public installation link
* QR-Code
* E-Mail notification with installation link and QR-Code

{% hint style="info" %}
On the installation page of your app and in the email notification, you can see all the information about the release notes, the app version and the build version. So it is always clear which app you are about to download.
{% endhint %}

### Public Link - distribute your app with the public installation link

Public Installation URL- just copy to clipboard the URL of your app and send it to your devices. After that you will be redirected to the web-app to download it.&#x20;

The Link is available for everyone if you share it within Slack or via E-Mail - be careful.

### QR-Code - install your app within seconds by using the QR- Code

You can enable the QR-Code for every uploaded app version within the Build History.&#x20;

1. Just click on Enable the QR-Code as soon you have selected your app version you would like to install on your device.
2. Scan the QR-Code and you will be redirected to the mobile web-ap to download & install your uploaded app.&#x20;

> The QR-Code feature improves our app testing and app distribution process as hell. This I would call a real process improvement!

### E-Mail Notification - distribute an app to your e-mail

You can easily send your self every app version you or your team members uploaded. Just click on the send to me -button of your selected app version and check your e-mail inbox.

1. Send to me - you will receive a notification email with detail information about downloading your uploaded file

![E-Mail notification with install possibilities](/files/-MKkA_3e0Hb4z63IDTJ3)

{% hint style="info" %}
If you want to manage all you app distribution just visit the chapter [Distribution](/your-projects/distribution). There you can manage all your testers and groups to distribute your app in a managed way.
{% endhint %}


# App download page

App distribution download page

## App download page Desktop

We are often asked what the download page looks like. It's simple, as soon as one of your users opens the installation link to your app on the desktop, he sees all the information about your app:

* App icon
* App title
* App version
* Build version
* Environment
* Date of Upload
* Release Notes

Your users will have the possibility to either download the .apk, .abb or .ipa file or scan the QR-code to be redirected to the mobile app download page.

![App downloadpage desktop](/files/coniVSrsLsRF7DOjdWvy)

## App download page mobile

All information about installing an app on your mobile phone you can find directly [here](/your-projects/distribution/install-a-build).

### Enterprise certificate expired

Updraft App Distribution shows an information to your users if the apple enterprise certificate has expired. They will not be able to download the app.

### Minimum OS not supported

Updraft App Distribution shows an information to your users if the minimum OS of your distributed app doesn't match with the required OS from your device. They will not be able to download the app.


# Feedback

Implement the open-source SDK from Updraft and get even better feedback from your beta testers. App distribution done right.

## Get better feedback from your beta testers

Getting feedback by your testers was never easier you just need to  includ the [opensource SDK from Updraft](/updraft-sdk) into your code.

The Updraft SDK will help to take your apps to the next level of quality.&#x20;

The SDK will support you during your [alpha and beta testings](https://getupdraft.com/blog/what-beta-testing-and-how-can-you-test-your-alpha).

### Some of the **features** included within the SDK

* Identifying testers and device information
* Auto-Updates, to make sure your testers testing the latest version of your app
* Your testers simply need to shake their device or take a screenshot to send a feedback or a bug straight from the app to Updraft.
* Your testers can draw relevant information onto the screenshot &#x20;
* Your testers can add all necessary information about your feedback and just click on send

![In-app user feedback](/files/-Lc_tyZWJFXM7L9aCBUw)

## Manage all received feedbacks from your testers

Prioritize and manage all your Feedbacks

* Manage all received Feedbacks with the help of the Feedback Dashboard within the Updraft toolpage
* Close or re-prioritize your feedbacks
* Export your feedbacks
* Allow Feedback or disable it for a while if your testing ends or you don't wanna have any feedback

![](/files/-M4ckOB3QTvl_ROiD9DP)


# App Distribution

Easily distribute your app to your end-users, testers and groups.

With **Updraft** App distribution you can manage quickly all your release to your end users. You have the opportunity to add Testers or Groups to the distribution list and then create new app releases. While creating a new app release you can choose which build you want to distribute, you can change or add a release notes, you have the option to customize the Testers and Groups, and before you send the release, you will have a complete overview about your app release. And last but not least, you can enable the tutorial that shows your Testers how to install Enterprise Apps on their mobile device while installing the app.

## Distribute your apps to your testers

Distributing a new app releases with Updraft is easy and your testers or groups do not have to register an account first.

### 1 Create a project

Before you can start to distribute your apps you need to [Create your first project ](/quickstart/your-first-app-project).

### 2 Upload a .ipa or .apk file

As soon as you have your project created you can upload your first builds/ versions of your app: [Upload your first build](/quickstart/your-first-app-project/upload-first-build).

### 3 Add Testers & Groups

Add testers or groups to your app is quite easy. You just need to add their e-mail adress - they don't need to register:  Add [Testers or Groups](/your-projects/distribution/tester-groups) on the Distribution Page

### 4 Distribute your build to your Testers & Groups

[Distribute your build to your Testers or Groups](/your-projects/distribution/release-a-build) .

After you have distributed a new release, Updraft sends an email to the users and the distribution groups on your distribution list and notifies them that a new build is available to download & install.

### 5 Install your build

Install the release on your device by clicking on the link in the email you got.

##


# Testers & Distribution Groups

With Updraft you can easily manage your app testers and your distribution groups.

{% hint style="info" %}
All your testers and groups you add to your app project **do not have to register first**
{% endhint %}

## Testers

You can manage all your testers on the **Tester & Distribution Groups** page within the Distribution page of your App project.

On the **Tester & Distribution Groups** page you can:

* Add new testers with their e-mail adress
* Import Testers from a .csv file

### Add new testers

1. Open your App
2. Go to the Distribution Page
3. Click on Tester & Distribution Groups
4. Select the Tester tab
5. Type in your Tester e-mail address
6. Click on enter

Your testers e-mail address is now successfully added to your testers distribution list.&#x20;

![Tester and Groups page](/files/-MPTaRajNf7CRj1-i0e5)

### Import testers with .csv file

You can easily add a bunch of testers with the help of a .csv file., either as single testers or add them straight to your distribution group.&#x20;

The .csv file must contain the tester's email address only.&#x20;

#### Example of a .csv file

```
test@getupdraft.com;
test+1@getupdraft.com;
test+2@getupdraft.com
test+3@getupdraft.com
```

All added Testers are automatically added to your distribution list of your app project.

### Remove a Tester

If you would like to remove a tester from your distribution list:

1. Open your App
2. Go to the Distribution Page
3. Click on Tester & Groups
4. Click on the 3 dots next to the tester e-mail address you would like to delete
5. Click on delete

![Delete a tester](/files/-MPTbFr6qUKjbQMHIZ3-)

Your Tester e-mail address is no deleted.

## App distribution groups

You can manage all your distribution groups on the **Tester & Groups** tab within the Distribution page of your app project.

A distribution group is a set of different testers and all of them will have access to install a distributed release. An example of a distribution group can be a team of users like Projectmanager, Marketing, QA-Team or external testers.

### Creating a distribution group

1. To create your first distribution group go to the **Tester & Groups** page
2. Click on **Add Group**
3. **Give a Name** to your Group and click **Save**
4. **Add your testers** to the group by typing in their **e-mail adress** and click **enter**

All added Testers within your Group are automatically added to your distribution list of your app project.

### Remove a distribution group

1. Open your App
2. Go to the Distribution Page
3. Click on Tester & Groups
4. Click on your Group
5. Click on the 3 dots next to the group name you would like to delete
6. Click on delete

### Rename a distribution group

1. Open your App
2. Go to the Distribution Page
3. Click on Tester & Groups
4. Click on your Group
5. Click on the 3 dots next to the group name you would like to rename
6. Click on rename
7. Enter the new name and submit

<figure><img src="/files/BYEPKeLuz20c2cTjBVZz" alt=""><figcaption><p>Delete or rename a group</p></figcaption></figure>


# Distribute your app

Distribute an app version to your testers and groups.

## Distribute an app to your testers and distribution groups

To distribute a new app to your testers and groups you need to click on the **Distribute** button at the top of the distribution page of your app project. You will be guided through the release steps.&#x20;

![Single or Beta Release](/files/-MPTnK87uPM5NVgyeazg)

There are two possibilities to create and distribute an app release:

{% content-ref url="/pages/-MPTcvmyYj\_YUDzg86lA" %}
[Single Release](/your-projects/distribution/release-a-build/single-release)
{% endcontent-ref %}

{% content-ref url="/pages/-MPTgjt3cqelADvhB6uA" %}
[Beta Release (one link two apps)](/your-projects/distribution/release-a-build/beta-release-one-link-two-apps)
{% endcontent-ref %}

{% hint style="warning" %}
Beta Releases are available in the paid plan only ($5 / month)
{% endhint %}

### &#x20;<a href="#releasing-a-build-to-a-distribution-group" id="releasing-a-build-to-a-distribution-group"></a>


# Single Release

Single App Release. Create and distribute a specific app version to your testers and groups.

{% hint style="info" %}
Single App Release lets you send a very specific app version of your desired OS and deployment environment to your testers and groups.
{% endhint %}

### Step 1 Select your specific app version

On the first step of the distribution of an app, you have the possibility to select your app version which you want to distribute. All uploaded app versions of your app will be shown by selecting the dropdown.&#x20;

1. Chose your App and your Deployment Environment
2. Chose your App version
3. Click on **Next**.

![Select your app and your app build version](/files/-MPTee1TXMyWFT-xPeLa)

### Step 2 Add release notes

On the second step of distributing a new app release, you have the possibility to adjust the Release Notes. The Release Notes will be shown to your testers and groups within the e-mail notification and the web-installation page. Click **Next**.

![App release notes](/files/-MPTetxBegHzK345_c1_)

### Step 3 Tester & Groups

On the third step of distributing new app release, you have an overview of all testers and groups on your distribution list. You can still deselect testers and groups if you want. If everything is fine click on **Next**.

![Tester and Groups Overview](/files/-MPTf2nfTfDMO0tIsS3x)

### Step 4 Review your app release&#x20;

On the fourth step of distributing a new app release, you have all information together. You see again which build you will distribute, you see the release notes as well to how many testers you will distribute your app release. By clicking on **Distribute** all added users & groups will get notified by e-mail to install your app.

![](/files/-MPTfFlyZrt5qQkIBU4t)

#### Tutorial

{% hint style="info" %}
Are you annoyed to explain to your testers again and again how to install enterprise apps and how to accept unknown sources first?
{% endhint %}

If you have enabled the Tutorial switcher,  Updraft displays your testers a tutorial about **how to install Enterprise certified Apps while the download of the app is in progress.**

#### **One-Time-Link**

You can choose before sending your app release if the installation link your testers receive should be a one-time link. If it is a one-time link, your testers can only select the link once for the app installation. As soon as they will try to select the link a second time, an error message will appear and the app **cannot be downloaded again.**

### E-mail notification & app installation

If you click on **Send release button** all your testers and groups you added to your app release will get notified by e-mail. The will get an e-mail from Updraft with all configured information you did. They can just click on the installation button within the e-mail or scan the QR-Code to install your app.&#x20;


# Beta Release (one link two apps)

Beta App Release. Create and distribute two app versions at the same time.

{% hint style="info" %}
**One link two apps**. Beta App Release lets you send two specific app versions of both OS (iOS and Android) and deployment environment to your testers and groups.
{% endhint %}

With beta-releases, you have the possibility to send two apps at the same time. Updraft generates **one installation link** for your testers. So you don't **need to worry about the OS-system** of your testers. Updraft detects the OS-system of your testers and displays only the app accordingly the OS.&#x20;

### Step 1 Select your iOS app version

On the first step of the distribution of an app, you have the possibility to select your iOS app version which you want to distribute. All uploaded app versions of your app will be shown by selecting the dropdown.&#x20;

1. Chose your App and your Deployment Environment
2. Chose your App version
3. Click on **Next**.

![Beta Release: Chose your iOS App Version](/files/-MPTi5JWiw0f_eDxJHp3)

### Step 2 Select your Android app version

On the second step of the distribution, you have the possibility to select your Android app version which you want to distribute. All uploaded app versions of your app will be shown by selecting the dropdown.&#x20;

1. Chose your App and your Deployment Environment
2. Chose your App version
3. Click on **Next**.

![Beta Release: Chose your Android App Version](/files/-MPTiPj-7S0jzv4NTh4L)

### Step 3 Add release notes

On the third step of distributing a new beta app release, you have the possibility to adjust the Release Notes. The Release Notes will be shown to your testers and groups within the e-mail notification and the web-installation page. Click **Next**.

### Step 4 Tester & Groups

On the fourth step of distributing new beta app release, you have an overview of all testers and groups on your distribution list. You can still deselect testers and groups if you want. If everything is fine click on **Next**.

### Step 5 Review your app release

On the last step of distributing a new beta app release, you have all information together. You see again which build you will distribute, you see the release notes as well to how many testers you will distribute your app release. By clicking on **Distribute** all added users & groups will get notified by e-mail to install your app.

![Beta Release Overview](/files/-MPTjVH9AVh-E8el26p6)

[Tutorial](/your-projects/distribution/release-a-build/single-release#tutorial)

[One-Time-Link](/your-projects/distribution/release-a-build/single-release#one-time-link)

#### Detection of Testers OS-System

When you send out a beta release, you don't have to worry about your testers' OS system. We only show your testers the app that matches the OS system.


# Store

With Updraft you can distribute your app version to the integrated app store and play store account

[App Store Distribution](/your-projects/distribution/release-a-build/store/app-store-distribution)

[Play Store Distribution](/your-projects/distribution/release-a-build/store/play-store-distribution)


# App Store Distribution

With Updraft you can directly upload a build to the App Store Connect.

{% hint style="info" %}
This feature is available with the Resign-Plan & Enterprise Plan
{% endhint %}

### Requirements:&#x20;

* An [App Store Connect Integration](https://docs.getupdraft.com/~/changes/hCUa1az9yKp7rsxQS8yk/dashboard/account/developer-accounts/app-store-connect-api) is configured
* Be an Owner or Admin
* You have already created an app within your Play Store Account
* have already created an app within your Play Store Account once

{% hint style="info" %}
iOS file is uploaded per default to Testflight only
{% endhint %}

## Upload to the App Store Connect with Updraft

To start uploading a build to the Appstore Connect, go to the Distribution page under *Apps* > *Distribution*.&#x20;

1. press on the green *Distribute*-dropdown on the top right and select *App Store.*&#x20;
2. Now you can select an App Store Integration, which you want to use to publish your build and then press on *Next.*&#x20;
3. The next step is to select the App which you want to distribute.&#x20;
4. Press on next and Updraft will check if your app exists on the App Store Connect portal. If Updraft found an App, you can proceed.&#x20;
5. Now to the fourth page. Here you have an overview with information. Select your build ( default is the newest ) and upload an [AppStoreInfo.plist](https://help.apple.com/xcode/mac/current/#/deva1f2ab5a2) file. If all info's are correct, you can proceed again.&#x20;
6. The last step is to press on the *Send Release-*&#x62;utton. With that, Updraft will upload the build to the App Store Connect portal.&#x20;

Great!&#x20;


# Play Store Distribution

With Updraft you can directly upload a build to the Google Play Store.

{% hint style="info" %}
This feature is available with the Resign-Plan & Enterprise Plan
{% endhint %}

## Requirements

* An [Google Play Integration](https://docs.getupdraft.com/~/changes/hCUa1az9yKp7rsxQS8yk/dashboard/account/developer-accounts/google-play-connect-api) is configured
* Be an Owner or Admin
* You have already created an app within your Play Store Account once

{% hint style="info" %}
.aab file is uploaded to the internal testing track within the integrated Play Store account
{% endhint %}

## Upload to the Play Store with Updraft

1. Press on the green *Distribute*-dropdown on the top right and select *App Store.*&#x20;
2. Now you can select the Google Play Integration, which you want to use to publish your build and then press on *Next.*&#x20;
3. The next step is to select the App which you want to distribute.&#x20;
4. Press on next and Updraft will check if your app exists on the Play Store Account. If Updraft found an App, you can proceed. &#x20;
5. Select the track you want to distribute the app on (production/beta/alpha/internal). You can see the status of the tracks and the latest release version on that track
6. Now to the fifth page. Here you have an overview with informations about your upload. Select your build ( default is the newest ). If all info's are correct, you can proceed again.&#x20;
7. The last step is to press on the *Send Release-*&#x62;utton. With that, Updraft will upload the build to the Google Play Store.&#x20;

### Internal testing track

Internal testing allows quick distribution of app builds to a small group of testers.

This test is used for initial QA checks. You can distribute your app to up to 100 invited testers. Feedback from these testers won’t affect your app’s public rating and is only visible to the Developer Account.

After publishing the internal test for the first time, it may take a few days for the test link to become available. After that, any new release will be available within a few hours. This build can be tested directly without a review.

For paid apps, testers can install the application for free.

### Closed testing track (Alpha)

Closed testing allows distribution of pre-release builds to a controlled group of testers for broader QA before opening to the public.\
This test is used for deeper functional testing and early feedback collection. You can invite testers via email lists or Google Groups. Feedback from these testers won't affect your app's public rating and is only visible to the Developer Account.\
After publishing the closed test for the first time, the build goes through a Google Play review that can take a few hours up to seven days. Subsequent releases are typically available within a few hours.\
For paid apps, testers can install the application for free.

### Open testing track (Beta)

Open testing allows distribution of pre-release builds to anyone who joins the test, providing real-world feedback before production release.\
This test is used for late-stage validation and gathering broad user feedback. Anyone can opt in via a public link or the Play Store listing. Feedback from these testers won't affect your app's public rating and is only visible to the Developer Account.\
After publishing the open test for the first time, the build goes through a Google Play review that can take a few hours up to seven days. Subsequent releases are typically available within a few hours.\
For paid apps, testers must purchase the application normally.

### Production track

The production track is the public release available to all users on the Google Play Store.\
This is the final, stable build distributed to your target audience. It is visible to anyone browsing or searching the Play Store and contributes directly to your app's public rating and reviews.\
Each production release goes through a Google Play review that can take a few hours up to seven days, sometimes longer for first submissions or major updates. Staged rollouts can be used to release progressively to a percentage of users.\
For paid apps, the standard pricing applies.


# Release History

See all distributed app releases

## Release History

As soon you have distributed your first app builds you will see that onto the Release History. You see the date of the distribution, the distributed app version, the release notes, the environment and the OS-Platform of your app.&#x20;

![Release History Overview](/files/-MPTl5Asibt-p2jDJno-)

### Details of a distributed release&#x20;

If you need to know to who you sent your release you can select an app release. On the right side, you will see all detail information of your distributed build as well you will see all e-mail addresses of your users.

![Distributed beta app release](/files/-MPTllEZcO6cw54xaIqc)

### Delete an app release

You can delete an app release.

1. Hover over the list of the distributed release
2. Click on the 3 dots on the right side of the release you would like to delete
3. Click on delete
4. Confirm it

Your release will not be any more available for your testers.

{% hint style="info" %}
If you delete an already distributed release, your testers will see an information if they click on the installation link: The beta testing is finished.
{% endhint %}

### Disable an app release

You can disable an app release for a while.

1. Hover over the list of the distributed release
2. Click on the 3 dots on the right side of the release you would like to disable
3. Click on disable

Your app release will not be any more available for your testers.

### Enable an app release

You can enable an app release again.

1. Hover over the list of the distributed release
2. Click on the 3 dots on the right side of the release you would like to enable again
3. Click on enable

Your app release will be available for your testers again.

### Edit release notes

You can also edit the release notes if you distributed a single or beta release.

![Edit release notes](/files/-Mgubbit3r9opEwyukM8)


# Install an app distributed from Updraft

Installation of app version distributed with the Updraft App Distribution platform is really easy for your team members or your beta testers.

## Step 1: Check your inbox&#x20;

Installation of an application being distributed by Updraft begins with an email. Within such e-mail you will see an installation button and a QR-Code.&#x20;

![E-Mail Notification Desktop](/files/-MKkCs6y3boh0p-IQern)

![E-Mail Notification Mobile](/files/-MKkDQ1uUVxzQskSP1V6)

## Step 2: Scan the QR-Code or click on the install button

If you click on the install button you will be redirected to the mobile web page of Updraft where you will be guided through the installation of your app.

![Mobile web page](/files/-MKkDazdydlQaa_Hvv3g)

## &#x20;Step 3: Install your app

While downloading and installing your app, your testers and team members will see a progress bar.

![App download progress](/files/-MKkE90muoCvnNS0R2fV)

![Download of your app successful ](/files/-MKkELidE_i7E9v7GD9v)


# Integrations

There are a few integrations available to automate your app distribution process.

### Notification Integrations

{% content-ref url="/pages/-LDXYpcbcyKTAdVmwyNy" %}
[Slack integration](/your-projects/project-settings/integration-1/slack)
{% endcontent-ref %}

{% content-ref url="/pages/-MJvIYYYk46d\_mxpNJUM" %}
[Webhook integration](/your-projects/project-settings/integration-1/webhook-integration)
{% endcontent-ref %}

{% content-ref url="/pages/-MPYtp1K7u1cDuIR7ffp" %}
[Microsoft Teams integration](/your-projects/project-settings/integration-1/microsoft-teams)
{% endcontent-ref %}

### Developer Integrations&#x20;

{% content-ref url="/pages/NWVgNgFPrev5CFCW2egf" %}
[App Store Connect API](/dashboard/account/developer-accounts/app-store-connect-api)
{% endcontent-ref %}

{% content-ref url="/pages/W1GVoizsvMpZLNnnuFV3" %}
[Google Play Developer API Integration Guide](/dashboard/account/developer-accounts/google-play-developer-api-integration-guide)
{% endcontent-ref %}

### Continuous Integrations

{% content-ref url="/pages/-LDXYtyiccPApvbQnkUe" %}
[Fastlane](/integrations/fastlane)
{% endcontent-ref %}

{% content-ref url="/pages/-LDXYxGAw\_KA368ocua8" %}
[Gradle](/integrations/gradle)
{% endcontent-ref %}

{% content-ref url="/pages/-LcWczDh5RuP1njva43P" %}
[Teamcity](/integrations/teamcity-1)
{% endcontent-ref %}

{% content-ref url="/pages/-LDXZ2GVaonPfQ1PGROW" %}
[Teamcity with Gradle (Android)](/integrations/teamcity-gradle)
{% endcontent-ref %}

{% content-ref url="/pages/-LeCYs7059a55D8ZmL3f" %}
[GitLab CI/CD](/integrations/gitlab-ci)
{% endcontent-ref %}


# Jenkins Plugin Updraft

Jenkins Updraft publisher

This plugin allows to upload built binary files (.apk/.ipa) directly to [www.getupdraft.com](https://getupdraft.com/).

You find all information & documentation here: <https://plugins.jenkins.io/updraft-publisher>.


# Fastlane

Updraft now supports even faster and easier application deployment with our new Fastlane Plugin.

If you are into iOS development, you have probably heard of [Fastlane](https://fastlane.tools/), the handy tool suite that allows you to script everything from generating screenshots and running tests to deploying your app to the App Store.&#x20;

There are a number of sub-sections on this page:

* [Installation ](/integrations/fastlane#installation)
* [Importing Actions for Updraft Fastlane](/integrations/fastlane#importing-actions-for-updraft-fastlane)
* [Configuration](/integrations/fastlane#configuration)
* [Available Actions](/integrations/fastlane#available-actions)

## Installation&#x20;

Make sure you have the latest version of the Xcode command line tools installed:

```
xcode-select --install
```

### Choose your installation method:

| [Homebrew](http://brew.sh/)  | Installer Script                                                                                                                       | Rubygems                                |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
| macOS                        | macOS                                                                                                                                  | macOS or Linux with Ruby 2.0.0 or above |
| `brew cask install fastlane` | [Download the zip file](https://download.fastlane.tools/). Then double click on the `install` script (or run it in a terminal window). | `sudo gem install fastlane -NV`         |

### Importing Actions for Updraft Fastlane

Once you have set up Fastlane for your project, Import the available actions into your Fastfile by adding`import_from_git(url: "https://github.com/appswithlove/fastlane_tools.git", version: "~>1.0.0")` to the top of your existing Fastfile. <https://github.com/appswithlove/fastlane_tools>

## Configuration

Store all your configuration values in `.env` files. These files can be named to suit your needs, e.g. `.env.appstore` Then call fastlane with the env parameter, e.g. `fastlane deploy_appstore --env appstore`

## Available Actions

#### ensure\_appstore\_environment

```
fastlane ensure_appstore_environment
```

Makes sure the current environment values match the necessary values for an App Store build

#### ensure\_correct\_branch

```
fastlane ensure_correct_branch
```

Ensure the user is on the correct git branch, otherwise prompt to change it

#### ensure\_correct\_version

```
fastlane ensure_correct_version
```

Ensure the version number is correct, otherwise prompt the user and change it

#### Fastlane Updraft

```
fastlane updraft
```

Upload a release produced by Gym to Updraft for testing

#### post\_build\_notification

```
fastlane post_build_notification
```

Send local and Slack notification for uploaded builds

#### finish\_release

```
fastlane finish_release
```

Prompts the user to tag and push the release accordingly

More information about fastlane can be found on [fastlane.tools](https://fastlane.tools/). The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools/).<br>


# Gradle

This is a gradle plugin for automated Updraft upload.

Updraft allows even faster application deployment with the Updraft Gradle Plugin. Android Studio uses Gradle, a build toolkit to automate and manage the entire build process. Gradle can be flexibly expanded and configured by yourself.\
Integrate the Gradle Updraft plugin into your Android code. The tested and signed builds are then uploaded directly to Updraft where you can easily manage the distribution of the beta app to your beta-testers.

There are a number of sub-sections on this page:

* [Instruction to integrate Updraft Gradle](/integrations/gradle#instructions)
* [Usage of Gradle Plugin](/integrations/gradle#usage-of-gradle-updraft-plugin)

## Instructions 🚀

1. Add the code below to you `build.gradle` file in the `app` folder.

```
buildscript {
 repositories {
   ...
   mavenCentral()
 }
 
 dependencies {
   ...
   classpath 'com.appswithlove.updraft:updraft:2.1.5'
  }
 }
```

2\. Apply the plugin in `build.gradle` in `app` folder (same file as before).

```
apply plugin: 'updraft'
```

3\. Add one or multiple `updraftUrls['YOURPRODUCTFLAVOUR']` wrapped in `updraftExtension` to the file. \
\
In order to get the needed url, go to the Edit Panel of your Updraft App and get the *https\:// url* part of the `curl` command. (e.g. <https://getupdraft.com/api/app_upload/.../.../>).&#x20;

The part `YourBuildVariant` should be replaced by the exact name your build variant. For example:

```
updraftExtension {
  updraftUrls['YourBuildVariant'] = [".../your/staging/url/"]
  updraftUrls['ProdRelease'] = [".../your/prod/url/", ".../your/prod2/url/"]
}
```

4\. Done!

## Usage of Gradle Updraft Plugin

After installing the plugin, you should be able to find the Gradle Updraft tasks in Android Studio. The naming is always `updraft` + buildVariant. The appropriate url will be choosen as destination. There is 1 task for every available buildVariant.\
&#x20;`"Gradle Project" Window -> Tasks -> Other -> updraft... (e.g. updraftStagingRelease)`\
&#x20;In order to use them, make sure that you build the project *before*.

Otherwise, you can call the gradle tasks via command:

```
./gradlew updraftStagingRelease
```

Or combined with clean + assemble:

```
./gradlew clean assembleStagingRelease updraftStagingRelease
```

## Get the Updraft Gradle Plugin

You can find the plugin on our Github Page: <https://github.com/appswithlove/updraft-plugin-android>


# Teamcity with Gradle (Android)

TeamCity can be used to deploy Android and iOS apps to Updraft.

## **With Updraft Gradle Plugin (Android)**

If the [Updraft Gradle Plugin](/integrations/gradle) is included in the Android project, the setup on TeamCity only uses a few steps. First, a new **build step** of type **“Gradle”**&#x73;hould be added after assembling & building the app.&#x20;

![Add a new build step](/files/-LcWcPYU151C7gF6sOv-)

In the build step, add the appropriate updraft Gradle task to **Gradle task**. In our case, this is **updraftRelease**.

![Add appropriate gradle task](/files/-LcWcalTSt9ZWQeyKxAd)

After saving the task, the Gradle plugin should locate the app files and upload them automatically to updraft.


# Teamcity

TeamCity can be used to deploy Android and iOS apps to Updraft.

## Uploading a build to [Updraft](https://getupdraft.com) with Teamcity

If you want to upload the app without including the updraft gradle plugin, you can do this by using the CURL link provided on Updraft. In order to set this up, first go to your project and open the desired application. On there, go to the Application Overview

On the Application Overview, click on **Copy CURL to Clipboard** in order to copy the executable command to upload the app.

The CURL will have a format like this:&#x20;

> curl -X PUT -F ‘app=@/PATH/TO/FILE’ [https://app.getupdraft.com/api/app\_upload/123456/23456/](https://medium.com/r/?url=https%3A%2F%2Fgetupdraft.com%2Fapi%2Fapp_upload%2F99c2f0f6b85d462daea5f8d9f062d346%2F65ae1e0f4b1f4b1898c9c956c4486289%2F)

After copying the CURL, head over to TeamCity.

**Create a new Build Step** which should be executed after building your app (when the .apk or .ipa file is ready).&#x20;

Select **Command Line** as the Runner type.

![Select Command Line as the Runner type](/files/-LcWd_GdJe-CqxHd9_Of)

After that, you can paste the CURL to the field **Custom script**.&#x20;

![Copy & paste Updraft CURL Link to the custom script](/files/-LcWdiHcg3fs0iZxLPUp)

**Note:** Be sure to replace the **-F app=@/PATH/TO/FILE** argument with a path to your own APK or IPA.

After setting up everything correctly in this build step, the app should be uploaded to Updraft appropriately.


# GitLab CI/CD

Use Gitlab CI to deploy iOS & Android apps to Updraft and to distribute them to your testers.

GitLab CI/CD is a tool built into Gitlab for software development through the [continuous methodologies](https://docs.gitlab.com/ee/ci/introduction/index.html#introduction-to-cicd-methodologies).&#x20;

## Deployment with [Updraft](https://getupdraft.com)&#x20;

To deploy with Updraft you can add a job to your .gitlab-ci.yml configuration using Fastlane or API Upload.&#x20;

## See how it works

[**Gitlab CI/CD iOS with Fastlane**](/integrations/gitlab-ci/gitlab-ios-with-fastlane)

[**Gitlab CI/CD iOS app distribution**](/integrations/gitlab-ci/gitlab-api-upload)

[**Gitlab CI/CD Android app distribution**](/integrations/gitlab-ci/gitlab-app-distribution-for-android-builds)

##


# GitLab iOS with Fastlane

Gitlab CI/CD can be used to deploy iOS apps with Fastlane to Updraft.

## Uploading a build to [Updraft](https://getupdraft.com) with Gitlab

In order to build and upload your iOS apps with GitLab CI, you need to set up [Fastlane](/integrations/fastlane) first. Once you are able to build and upload your app locally using Fastlane, setting up GitLab CI is just a matter of running Fastlane from your `.gitlab-ci.yml` script.

## Quick Start&#x20;

Below you can see an example `.gitlab-ci.yml` File. If you just want to get your build up and running, follow these steps:&#x20;

* Copy the `.gitlab-ci.yml` File to your project root&#x20;
* Copy the `Gemfile` example from below to your project root&#x20;
* Make sure you have set up Fastlane with a lane called `build_updraft`
* Ensure that for Fastlane you use an environment file called `.env.updraft`&#x20;
* Set up a GitLab CI build agent that can handle iOS builds (more on this below)

Once you fulfill these requirements, pushing to the `develop` branch should automatically trigger a build and upload the finished app to Updraft.&#x20;

If you want to take a deep dive and customize your build, here's an overview over the different components of the `.gitlab-ci.yml` setup.

## EXAMPLE `.GITLAB-CI.YML`&#x20;

{% tabs %}
{% tab title=".gitlab-ci.yml" %}

```
stages:
  - build_updraft

variables:
  LC_ALL: "en_US.UTF-8"
  LANG: "en_US.UTF-8"

before_script:
  - gem install bundler
  - bundle install

build_updraft:
  dependencies: []
  stage: updraft_staging
  script:
    - fastlane deploy_updraft --env updraft
  tags:
    - ios-dev
  only:
     - develop
```

{% endtab %}
{% endtabs %}

## Detailed Discussion&#x20;

First you declare your build stages (just `build_updraft` in this case). Think of these like different Lanes in Fastlane. You could set up different build stages for different branches, or run multiple build stages in succession. We recommend starting with just one stage, you can always set up more builds later, for example if you want to build your app for both a staging and production CMS at the same time.&#x20;

The next interesting part is `before_script`. Here you can set some shell commands to be run before any of the build stages. In this case, we want to make sure that the build runner ("agent") where the actual build will happen has the necessary dependencies, most likely Fastlane and Cocoapods. These commands simply tell the machine to install any Gems specified in the `Gemfile`. You can just place the `Gemfile` from the example below in your project directory.

## EXAMPLE `GEMFILE`

{% tabs %}
{% tab title="gemfile" %}

```
source "https://rubygems.org"

gem "fastlane"
gem "cocoapods"
```

{% endtab %}
{% endtabs %}

`build_updraft` is where the rest of the magic happens. The important part is the `script` tag where all we do is call Fastlane, which will handle the rest of the build and upload process. Notice we have a lane in our Fastfile called `deploy_updraft` and we are using a file named `.env.updraft` where we set all the variables that Fastlane needs.&#x20;

Again, if you are unsure on how to do this, check out the [Fastlane](/integrations/fastlane) setup guide. The `tags` section is used to select the correct build agent. Since you only want build runners that can handle iOS (i.e. macOS machines with Xcode installed) to run your build, you need to set this tag on both your build stage and during the setup of your build runner. The last section, `only`, makes sure that the branch is run only when pushing to the `develop` branch. You can adapt this to your branching setup or remove it entirely if you want to build from all branches. You can even use a Regex Syntax, for example `/^release\/.*$/` to build from any release branch.

## Setting up a Build Runner&#x20;

A build runner is a physical or virtual machine that has the necessary tools to run your builds. As an iOS Dev, you probably know you need a macOS Machine with Xcode Tools to build your iOS apps. In our Office, we use Mac Minis for this.&#x20;

Once you have a machine that can handle iOS Builds, you can follow the steps in the [GitLab Documentation](https://docs.gitlab.com/runner/install/osx.html#homebrew-installation-alternative) to set up your own runner. Make sure to specify the same `tag` as you used in your `.gitlab-ci.yml` file to restrict the runner to accept only iOS Builds.&#x20;

If you've read until here, you have earned our respect! We hope our guide has been helpful to you. If you have any questions, feel free to contact our support.


# GitLab app distribution for iOS builds

GitLab CI/CD can be used to deploy iOS apps with the API Upload (curl) to Updraft.

## Preconditions

### Setting up a Build Runner

A build runner is a physical or virtual machine that has the necessary tools to run your builds. As an iOS Dev, you probably know you need a macOS Machine with Xcode Tools to build your iOS apps. In our Office, we use Mac Minis for this.&#x20;

Once you have a machine that can handle iOS Builds, you can follow the steps in the [GitLab Documentation](https://docs.gitlab.com/runner/install/osx.html#homebrew-installation-alternative) to set up your own runner. Make sure to specify the same `tag` as you used in your `.gitlab-ci.yml` file to restrict the runner to accept only iOS Builds.&#x20;

If you've read until here, you have earned our respect! We hope our guide has been helpful to you. If you have any questions, feel free to contact our support.

## Quick Start&#x20;

* Login into Updraft Toolpage [getupdraft.com/login ](https://getupdraft.com/login)
* Go to your Profile within the Sidebar
* Copy your **API Key** as well as the **App Key** of your App&#x20;
  * Your API Key you find in your Profile. The App Key you will find on the application overview. The App key differs for each environment.
* Go to your Project Settings in Gitlab and select CI/CD

![Gitlab CI/CD Variables Settings](/files/-LtKzDBeiri4itYZJnO_)

* Expand your Variables
* **Give a name for your API Key: UPDRAFT\_API\_KEY**
* Paste your Updraft API Key in the Input Value field and click on **Save Variable**
* **Give a name for your App Key: UPDRAFT\_APP\_KEY**
* Paste your Updraft App Key in the Input Value field and click on **Save Variable**

![Updraft API Key and Updraft App Key](/files/-LtL3ZqLFCpYhiVUUWW8)

## Add a job to your `.gitlab-ci.yml`

To deploy to [Updraft](https://getupdraft.com), add a job to your `.gitlab-ci.yml` configuration.

## Example of .gitlab-cy.yml file for iOS app distribution

```
stages:
  - build_updraft

deploy:
  stage: build_updraft
  only:
  - release
  script:
  - |
    curl \
      -F whats_new="Gitlab build" \
      -F "app=@android.apk" \
      -X PUT https://getupdraft.com/api/app_upload/$UPDRAFT_APP_KEY/$UPDRAFT_API_KEY/

```

### Repository

Example how the root file repository should look like.

![](/files/-LvABi2csgIt60sMbNm0)


# GitLab app distribution for Android builds

GitLab CI/CD can be used to deploy Android apps with the API Upload (curl) to Updraft.

## Quick Start&#x20;

* Login into our app distribution tool [getupdraft.com/login ](https://getupdraft.com/login)
* Go to your Profile within the sidebar
* Copy your **API Key** as well as the **App Key** of your App&#x20;
  * Your API Key you find in your Profile.&#x20;
  * The App Key you will find on the application overview. The App key differs for each environment.

### **Configure Gitlab CI/CD Settings & Variables**

As soon you have your Updraft account created, you are ready to configure the CI/ CD pipeline with GitLab.

1. Open your Gitlab Project
2. Go to the Settings
3. Select CI/CD
4. Go to the section Variables
5. Add your Variables from Updraft (API key and App Key) in two separate fiels

### **Add .gitlab-ci.yml file for Android app distribution**

1. Head over to the root directory (files) of your Android app project in GitLab.&#x20;
2. Add a new file your .gitlab-cy.yml file
3. Copy the below example of .gitlab-ci.yml file

## Example of .gitlab-ci.yml file for Android app distribution

```
stages:
  - build
  - updraft

buildProd:
  stage: build
  only:
    - release
  script:
    - ./gradlew app:assembleProdRelease
  artifacts:
    paths:
      - app/build/outputs/apk/prod/release/*.apk

deploy:
  stage: updraft
  only:
  - release
  script:
  - |
    curl \
      -F whats_new="Gitlab build" \
      -F "app=@app/build/outputs/apk/prod/release/android.apk" \
      -X PUT https://getupdraft.com/api/app_upload/$UPDRAFT_APP_KEY/$UPDRAFT_API_KEY/

```


# Bitrise

Bitrise - Updraft integration

{% embed url="<https://bitrise.io/integrations/steps/deploy-to-updraft>" %}

## Updraft Integration with Bitrise

This guide outlines the steps to integrate **Updraft** into your **Bitrise CI/CD Workflow** for automated builds and deployments.

### Prerequisites

Before you begin, ensure the following prerequisites are met:

* An **Updraft** account with the appropriate permissions to upload builds.
* A **Bitrise** account with an existing project integrated into Bitrise.
* API and App keys for **Updraft**
  * **Each app has his own App key in Updraft**

## 1. Prepare Your Bitrise Project

### 1.1. Set Up the Workflow

1. Log in to your Bitrise account and navigate to your project.
2. From the left-hand menu, select the **Workflow Editor**.
3. Create a new workflow or select an existing workflow where you want to integrate Updraft build step: <https://bitrise.io/integrations/steps/deploy-to-updraft>

## 2. Add the Updraft Step

### 2.1. Add Step to Workflow

1. In the **Workflow Editor**, click the **+** button to add a new step.
2. Search for the **Updraft** build step&#x20;

### 2.2. Add app token in Bitrise project

#### Now it’s time to paste your **Updraft  App Token** in Bitrise.io <a href="#step-5--setup-your-app-token-in-the-bitrise-project" id="step-5--setup-your-app-token-in-the-bitrise-project"></a>

Go to the menu of the Bitrise.io dashboard and select the **Secrets** menu option. Click the **Add New** button and add the API key in the  input field and paste your Updraft API Key  and click “Save”.

## 3. Test the Workflow

1. Save your changes in the Workflow Editor.
2. Trigger a new build in Bitrise to test the workflow.
3. Check the build logs to ensure the upload of the artifacts to Updraft was successful.
4. Verify that the build artifact is available in Updraft.

## 4. Troubleshooting

If issues arise during the integration, check the following:

* **API and App Key**: Ensure the API key and the App key is correct and valid.
* **Build Artifact Path**: Make sure the path to the build artifact is correctly specified.
* **Network Access**: Verify that network access from Bitrise to Updraft is not blocked.


# API

Use the open API from Updraft to upload your apps/ builds or interact with the API to automate your CI process.


# Upload API

Streamline your app build process and upload your .ipa and .apk app builds directly to Updraft and distribute them.

## **Upload**

<mark style="color:orange;">`PUT`</mark> `https://app.getupdraft.com/api/app_upload/YourEnvironmentAppKey/YourAPIkey/`

**App Upload**<br>

#### Path Parameters

| Name                                                    | Type   | Description                                                                                                                                                                                                            |
| ------------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| YourEnvironmentAppKey<mark style="color:red;">\*</mark> | String | Your **App key/ token**. You find it in 'Edit App'. Added directly to request URL.                                                                                                                                     |
| YourAPIKey<mark style="color:red;">\*</mark>            | String | <p><strong>/ token</strong>. You find it in your profile: <a href="https://getupdraft.com/dashboard/profile/tokens"><https://app.getupdraft.com/dashboard/profile/tokens></a></p><p>Added directly to request URL.</p> |
| App                                                     | String | Your app file                                                                                                                                                                                                          |

## Parameters

| Name                  | Required | Description                                                                                                                                                                                                                        |
| --------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| YourEnvironmentAppKey | Yes      | Your **App key/ token**. You find it in 'Edit App'. Added directly to request URL.                                                                                                                                                 |
| YourAPIKey            | Yes      | <p>Your <strong>API key/ token</strong>. You find it in your profile: <a href="https://getupdraft.com/dashboard/profile/tokens"><https://app.getupdraft.com/dashboard/profile/tokens></a></p><p>Added directly to request URL.</p> |
| app                   | Yes      | Application file attached to the request (ipa or apk)                                                                                                                                                                              |
| whats\_new            | No       | Additional release notes for this uploaded build. This text will be added to all email notifications.                                                                                                                              |
| build\_type           | No       | You can also specify the type of assembly.                                                                                                                                                                                         |
| custom\_branch        | No       | You can also specify name of your branch you deployed your build.                                                                                                                                                                  |
| git\_tag              | No       | You can add your Git tag                                                                                                                                                                                                           |
| git\_commit\_hash     | No       | You can add your Git commit hash                                                                                                                                                                                                   |
| git\_url              | No       | You can add the URL to git                                                                                                                                                                                                         |

### Error Codes

In the case of an error, Updraft will return a JSON with `status` => `fail` and `code` with one of the values in the list below.&#x20;

| Error Code | **Description**                                                                                  |
| ---------- | ------------------------------------------------------------------------------------------------ |
| 1          | Incorrect file                                                                                   |
| 2          | This version of your build already exists                                                        |
| 3          | There is already a newer version uploaded, this version you are trying to upload is older.       |
| 4          | This is another application and doesn't match with the application in your project               |
| 5          | This is a different platform type of your application                                            |
| 6          | Your storage space is full. Please upgrade your priceplan.                                       |
| Warning    | You are uploaded an already existing build to your project (same version and same build version) |

###


# Upload Apps with CURL

You can easily upload all your apps with the help of the CURL and the command line to Updraft.

You can easily upload your iOS and Android apps to Updraft using the CURL command to quickly distribute your apps to your testers and team. Just integrate the CURL into your CI pipeline or upload your apps via the command line.

### Step 1 Create your app project

Go to [Updraft](https://getupdraft.com) and create your [app project](/quickstart/your-first-app-project)

### Step 2 Copy the CURL of your app to the clipboard

You can find the CURL of your app on the app overview page.&#x20;

#### CURL Upload example

```
curl -X PUT 
https://app.getupdraft.com/api/app_upload/YourEnvironmentAppKey/YourAPIKey
-F app=@/Users/Admin/Downloads/yourapp.apk
-- http1.1 
```

#### CURL Upload with parameters example

If you upload your apps using the CURL command, you can also add customized parameters which will be displayed in the build history of your app in Updraft. Some examples of parameters can be found [here](/api/curl#parameters).

```
curl -X PUT 
https://app.getupdraft.com/api/app_upload/YourEnvironmentAppKey/YourAPIKey
-F app=@/Users/Admin/Downloads/yourapp.apk
-F whats_new=ReleaseNotes
-F custom_branch=Develop
-F git_commit_hash=f6ef9eff9f3b3863546b4555584d0d35bbe88b28
-F bundle_version=1.0.20201015.1430
-F git_url=sh://git@gitlab.appswithlove.net:11111/mytestproject
- http1.1
```

#### CURL Upload with parameters version and build version (Windows)

```
curl -X PUT 
-F 'app=@/Users/Admin/Downloads/yourapp.apk'
-F 'version=1.0'
-F 'build_version=1'
- https://app.getupdraft.com/api/app_upload/YourEnvironmentAppKey/YourAPIKey
-- http1.1
```

#### CURL Upload with parameters if using spaces in file names

If you are using an app file name with space in it, use please the CURL command with apostrophe.

```
curl -X PUT 
-F 'app=@/Users/Admin/Downloads/yourapp.apk'
-F 'whats_new=ReleaseNotes'
-F 'custom_branch=Develop'
-F 'git_commit_hash=f6ef9eff9f3b3863546b4555584d0d35bbe88b28'
-F 'bundle_version=1.0.20201015.1430'
-F 'git_url=sh://git@gitlab.appswithlove.net:11111/mytestproject'
- https://app.getupdraft.com/api/app_upload/YourEnvironmentAppKey/YourAPIKey
-- http1.1
```

### Where can I find my API Key?

You can find your API Key in your Profile.

### How can I create a new API Key?

You can, just click on the link 'generate new API Key'.

### What's the App Key?

The App Key is the exact identifier of your app.&#x20;

### Can I add other parameters?

Yes you can add release notes, build type, your development branch or even your git-tag. More information you can find [here](/api/curl#parameters).


# Rest API

This is the documentation for the Updraft REST API.

## About

This API allows the developer to access and interact with Updraft data remotely.

### Getting started

Getting started with the REST API of Updraft is easy, and can be done via the command line interface.

The user authentication token is required for all requests below.

## Get Authorization token

<mark style="color:green;">`POST`</mark> `https://app.getupdraft.com/api/user/login/`

This endpoint allows you to get an authorisation token.

If 2FA code is required for login, it can be sent with Token, which is an optional parameter.&#x20;

#### Body data/JSON

| Name                                       | Type   | Description           |
| ------------------------------------------ | ------ | --------------------- |
| username<mark style="color:red;">\*</mark> | string | Organisation email    |
| password<mark style="color:red;">\*</mark> | string | Organisation password |
| token                                      | string | 2FA token             |

{% tabs %}
{% tab title="200 Authorisation token." %}

```json
{
    "token": "authorization token"
}
```

{% endtab %}
{% endtabs %}

## Get list of Apps

<mark style="color:blue;">`GET`</mark> `https://mydomain.getupdraft.com/api/applications/?title=&org={id}`

This endpoint allows you to get a list of  apps within your organisation.

#### Path Parameters

| Name       | Type   | Description     |
| ---------- | ------ | --------------- |
| Org`={id}` | string | Organisation id |

#### Headers

| Name          | Type   | Description                                                                 |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

{% tabs %}
{% tab title="200 List of Apps." %}

```javascript
{
    "id": 1687,
    "project_title": "title",
    "ipa_app": 1716,
    "apk_app": 1705,
    "first_app_id": 1705,
    "env_details": [{
        "id": 1705,
        "environment": "Staging",
        "app_type": 0,
        "title": "title"
    }, {
        "id": 1706,
        "environment": "Production",
        "app_type": 0,
        "title": "title"
    }, {
        "id": 1707,
        "environment": "Store",
        "app_type": 0,
        "title": "title"
    }, {
        "id": 1716,
        "environment": "Staging",
        "app_type": 1,
        "title": "title"
    }, {
        "id": 1743,
        "environment": "Production",
        "app_type": 1,
        "title": "title"
    }],
    "icon": "/media/icon/2020-01-14%2009%3A52%3A20.781544__ic_launcher.png",
    "user_detail": [{
        "user_id": 602,
        "username": "email",
        "first_name": "test",
        "last_name": "test"
    }],
    "users": [602]


```

{% endtab %}
{% endtabs %}

## Get list of Users

<mark style="color:blue;">`GET`</mark> `https://mydomain.getupdraft.com/api/profiles/`

This endpoint allows you to get a list of users within your organization.

#### Headers

| Name          | Type   | Description                                                                 |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

{% tabs %}
{% tab title="200 " %}

```
{
    "user_id": 4,
    "username": "username,
    "first_name": "Max",
    "last_name": "Cake",
    "email": "email",
    "profile": {
        "is_subscribe": true,
        "is_firstlogin": false,
        "is_show_demotour": true,
        "gender": null,
        "sending_emails": false,
        "enable_instruction": false,
        "last_mobile": 1,
        "last_whatsnew": 5
    }
```

{% endtab %}
{% endtabs %}

## Delete an app version (build)

<mark style="color:red;">`DELETE`</mark> `https://mydomain.getupdraft.com/api/versions/{id}/`

User can delete an already uploaded build from an application.&#x20;

#### Path Parameters

| Name | Type    | Description                                         |
| ---- | ------- | --------------------------------------------------- |
| id   | integer | A unique integer value identifying your app version |

#### Headers

| Name          | Type   | Description                                                                 |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

{% tabs %}
{% tab title="204 No Content " %}

```
```

{% endtab %}
{% endtabs %}

## Create new App project

<mark style="color:red;">`POST`</mark> `https://mydomain.getupdraft.com/api/applications/`

#### Headers

| Name          | Type   |                                                                             |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

#### Body data/JSON

```json
{
    "id": null,
    "title": "",
    "project_title": "App Project name",
    "organization": {Organisation id},
    "slack_webhook": "",
    "app_type": null,
    "slack_channel": "",
    "ready_to_sale": true,
    "base_app": null,
    "environment": "",
    "description": "",
    "project_app": null,
    "is_public_app": true
}
```

## Get last version of the app

<mark style="color:red;">`POST`</mark> `https://mydomain.getupdraft.com/api/get_last_version/`

#### Headers

| Name          | Type   |                                                                             |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

#### Body data/JSON

```json
{
"sdk_key": "Organisation SDK key",
"app_key": "Project App key"
}

```


# Distribution group and Permission group API

This is the documentation for the Updraft REST API.

## Create a new Distribution group

<mark style="color:green;">`POST`</mark> `https://app.getupdraft.com/api/group-testers/`

&#x20;This endpoint allows you create new Distribution group.

#### Body data/JSON

| Name  | Type   | Description                 |
| ----- | ------ | --------------------------- |
| app   | int    | ID of App project           |
| title | string | Name for distribution group |

#### Headers

| Name          | Type   | Description                                                                 |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | String | Authentication token, note: might require adding "Token" to the value field |

#### Responce

```json
{
    "id": group_id,
    "testers_count": 0,
    "testers": [],
    "title": "group_name",
    "app": project_id
}
```

## Add testers to a Distribution group

<mark style="color:green;">`POST`</mark> `https://app.getupdraft.com/api/testers/`&#x20;

This endpoint allows you add new testers to a Distribution group.

#### Body data/JSON

| Name   | Type        | Description           |
| ------ | ----------- | --------------------- |
| email  | string      | Email of tester       |
| app    | null        | Should be set as null |
| groups | list of int | List of group IDs     |

#### Headers

| Name          | Type   | Description                                                                 |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

#### Responce

```json
{
    "id": tester_id,
    "email": "tester email",
    "app": null,
    "groups": [
        group_id
    ]
}
```

## Create a new Permission group

<mark style="color:green;">`POST`</mark> `https://app.getupdraft.com/api/groupsinorgs/`&#x20;

&#x20;This endpoint allows you create new Permission group.

#### Body data/JSON

| Name         | Type   | Description                   |
| ------------ | ------ | ----------------------------- |
| title        | string | Title of new Permission group |
| organization | int    | ID of organisation            |

#### Headers

| Name          | Type   | Description                                                                 |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |

#### Responce

```json
{
    "id": group_id,
    "title": "group_title",
    "organization": organisation_id,
    "members": 0,
    "projects": []
}
```

## Add user to a Permission group

<mark style="color:green;">`POST`</mark> `https://app.getupdraft.com/api/useringrouporg/`&#x20;

This endpoint allows you add new users to a Permission group.

#### Body data/JSON

| Name   | Type        | Description       |
| ------ | ----------- | ----------------- |
| user   | int         | User ID           |
| groups | list of int | List of group IDs |

#### Headers

|               |        |                                                                             |
| ------------- | ------ | --------------------------------------------------------------------------- |
| Authorization | string | Authentication token, note: might require adding "Token" to the value field |


# Updraft SDK

The Updraft SDK is a tool that integrates seamlessly into your application. The Open Source SDK includes a graphical feedback & bug reporter and the possibility to automatic app updating.

## Features

* [**Feedback & Bug Reporting**](/your-projects/feedback)**.** Your beta testers can easily report a feedback or a bug by  taking a screenshot or shaking their device
* [**Autoupdate**](/updraft-sdk/ios-autoupdate). If the current app version of your beta tester is lower than actual uploaded version on Updraft, your beta testers will be informed with an in-app notification to install the new app.

### How to install the open source SDK:

#### [ iOS SDK](/updraft-sdk/ios-sdk)

#### [Android SDK](/updraft-sdk/android-sdk)


# Autoupdate

All your testers  are up to date all the time with the latest app release.

## Never test on a old app&#x20;

If you know this, you distribute an app and develop iteratively. In the meantime, your testers report bugs that you have already fixed? This very often leads to tedious waste of time and a lot of overhead. We at Updraft know this only too well. Therefore we have developed a feature that should solve this problem: **Autoupdate your app**.

### Autoupdate&#x20;

* If the current app version of your beta tester is lower than actual uploaded version on Updraft, your beta testers will be informed with an in-app notification to install the new app.

![in-app notification](/files/-Lcjz8dLUToSxRhm8U0m)

### Enable Autoupdate functionality

To use the autoupdate feature, you have to implement the Open Source SDK available from us and enable the autoupdate functionality in the settings of the app within Updraft.


# Integrating Updraft Android SDK

Updraft Android Open Source SDK is a Framework to support getupdraft.com mobile app distribution for Android Apps. The SDK includes a graphical feedback & bug reporter and automatic app updates.

## Github

{% embed url="<https://github.com/appswithlove/updraft-sdk-android/>" %}

## Requirements

* minSdkVersion >=19

## Installation

Add the repository into your top-level build.gradle file:

```
allproject {
    repositories {
        mavenCentral()
    }
}
```

Add this line to your dependencies in app-level build.gradle file:

```
dependencies {
    implementation 'com.appswithlove.updraft:updraft-sdk:1.0.7'
}
```

## Setup

```
    @Override
    public void onCreate() {
        super.onCreate();
        Settings settings = new Settings();
        settings.setAppKey(YOUR_APP_KEY);
        settings.setSdkKey(YOUR_SDK_KEY);
        //Should app be in store
        settings.setStoreRelease(false);
        //Optional base url for updraft
        settings.setBaseUrl(Settings.BASE_URL_STAGING);
        //Optional set log level
        settings.setLogLevel(Settings.LOG_LEVEL_DEBUG);
        //Optional set if should show start alert
        settings.setShowStartAlert(false);
        Updraft.initialize(this, settings);
        Updraft.getInstance().start();
    }
}
```

#### Parameters

* **YOUR\_SDK\_KEY**: Your sdk key obtained on [Updraft](https://getupdraft.com/)
* **YOUR\_APP\_KEY**: You app key obtained on [Updraft](https://getupdraft.com/)

## Auto Update

Auto Update functionality can be enabled/disabled on [getupdraft.com](https://getupdraft.com/) in your app settings.

AutoUpdate work by comparing the build number of the app installed on the user's device and the app uploaded on GetUpdraft.

A prompt is displayed to the user if his installed version is lower than the version on Updraft. Thus, the build number must be incremented for each new build release to trigger the auto-update process.

Micro version comparison is supported, for example version 1.2.3.2018080**4** is greater than version 1.2.3.2018080**3**

## Feedback & Bug Reporting

Feedback functionality can be enabled/disabled on [getupdraft.com](https://getupdraft.com/) in your app edit menu.

A prompt is shown to the user to inform him of the change of state of the feedback functionality.

If enabled, the user is explained how he can give feedback. User can take a screenshot to give a feedback.

## Advanced setup: Logging

To check if data is send properly to Updraft and also see some additional SDK log data in the console, you can set different log levels.

To change the log level, add the following line before starting the SDK:

```
    settings.setLogLevel(Settings.LOG_LEVEL_DEBUG);
```

Default level: **LOG\_LEVEL\_ERROR** => Only warnings and errors will be printed.


# Integrating Updraft iOS SDK

Updraft iOS Open Source SDK is a Framework to support getupdraft.com mobile app distribution for iOS Apps. The SDK includes a graphical feedback & bug reporter and automatic app updating features.

## Github

{% embed url="<https://github.com/appswithlove/updraft-sdk-ios/>" %}
Updraft iOS SDK Github
{% endembed %}

## Requirements

* iOS 10.0+
* Xcode 9.0+
* Swift 4.0+

## Installation

#### CocoaPods

Get [CocoaPods](http://cocoapods.org/) and specify UpdraftSDK in your Podfile:

```
pod 'UpdraftSDK'
```

Then, run:

```
pod install
```

#### Carthage

Get [Carthage](https://github.com/Carthage/Carthage) and specify Updraft in your Cartfile:

```
github 'appswithlove/updraft-sdk-ios'
```

Then, run:

```
carthage update
```

In your application targets “General” tab under the “Linked Frameworks and Libraries” section, drag and drop Updraft.framework from the Carthage/Build/iOS directory that carthage update produced.

## Setup

#### Swift

1. Import Updraft module in AppDelegate:

   ```
   import Updraft
   ```
2. Start the SDK with your "SDK Key" and "App Key":

   ```
   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
   	
   	Updraft.shared.start(sdkKey: "YOUR_SDK_KEY", appKey: "YOUR_APP_KEY")
   		
   	return true
   }
   ```

#### Objective-C

1. Import Updraft module in AppDelegate

   ```
   @import Updraft;
   ```
2. Start the SDK with your "SDK Key" and "App Key":

   ```
   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

   		[[Updraft shared] startWithSdkKey:@"YOUR_SDK_KEY" appKey:@"YOUR_APP_KEY" isAppStoreRelease: false];

   		return YES;
   	}
   ```

**Parameters**

* **sdkKey**: Your sdk key obtained on [Updraft](https://getupdraft.com/)
* **appKey**: You app key obtained on [Updraft](https://getupdraft.com/)

## Auto Update

Auto Update functionality can be enabled/disabled on [getupdraft.com](https://getupdraft.com/) in your app edit menu.

AutoUpdate work by comparing the build number of the app installed on the user's device and the app uploaded on GetUpdraft.

A prompt is displayed to the user if his installed version is lower than the version on Updraft. Thus, the build number must be incremented for each new build release to trigger the auto-update process.

Micro version comparison is supported, for example version 1.2.3.2018080**4** is greater than version 1.2.3.2018080**3**

## Feedback & Bug Reporting

Feedback functionality can be enabled/disabled on [getupdraft.com](https://getupdraft.com/) in your app edit menu.

A prompt is shown to the user to inform him of the change of state of the feedback functionality.

If enabled, the user is explained how he can give feedback. User can take a screenshot to give a feedback.

## Advanced setup

#### Logging

To check if data is send properly to Updraft and also see some additional SDK log data in the console, you can set different log levels.

To change the log level, add the following line before starting the SDK:

**Swift**

```
Updraft.shared.logLevel = .info
```

**Objective-C**

```
[Updraft shared].logLevel = LogLevelInfo;
```

Default level: **warning** => Only warnings and errors will be printed.

## Base URL

If you have your own instance of Updraft, set this property to the base URL of your instance, before starting the SDK.

**Swift**

```
Updraft.shared.baseUrl = "https://your_base_url/"
```

**Objective-C**

```
[Updraft shared].baseUrl = @"https://your_base_url/";
```

Default [**https://getupdraft.com/**](https://getupdraft.com/)


# Integrating Updraft Flutter SDK

Here you find all information to integrated the Updraft app distribution SDK for Flutter.

{% embed url="<https://pub.dev/packages/updraft_sdk_flutter>" %}


# Android

Here you find some common Android Tutorials and FAQs

## What you will find here

{% content-ref url="/pages/-LDfKpgtLDj9U2WTKOun" %}
[Unknown sources in Android](/android/unknown-sources-in-android)
{% endcontent-ref %}

{% content-ref url="/pages/-Lm-RKY2resFypxYmfEd" %}
[Android FAQ](/android/android-faq)
{% endcontent-ref %}

{% content-ref url="/pages/aeEa6eL5D3NNKCOYq8Ky" %}
[Play Store Distribution](/your-projects/distribution/release-a-build/store/play-store-distribution)
{% endcontent-ref %}

{% content-ref url="/pages/W1GVoizsvMpZLNnnuFV3" %}
[Google Play Developer API Integration Guide](/dashboard/account/developer-accounts/google-play-developer-api-integration-guide)
{% endcontent-ref %}

{% content-ref url="/pages/-MPiyi3SH9hIBV-AjUWT" %}
[.apk installation on Samsung Browser](/android/.apk-installation-on-samsung-browser)
{% endcontent-ref %}

{% content-ref url="/pages/mLPe4E8pbT8ZNeixYFc1" %}
[Android Icon Troubleshooting](/android/android-icon-troubleshooting)
{% endcontent-ref %}


# Unknown sources in Android

Enterprise applications, that are not installed via Google Play Store are blocked by Android Operating System per default.

To install such enterprise applications you have to allow 'unknown sources' in the system settings of your android device to finish the installation of your application.&#x20;

<img src="/files/-L_72SAYIMPU_1p3ZeGg" alt="" data-size="original">&#x20;

To solve this issue follow these steps:

1. Navigate to your **Systemsettings** > **Security**.
2. Check the option **"Unknown sources"**.
3. Tap **OK** on the prompt message.
4. Select **"Trust"**.

After that all enterprise applications can be installed without any issue.


# .apk installation on Samsung Browser

Troubleshooting guide if the download of an .apk didn't start if you are using Samsung Browser.

{% hint style="info" %}
If you are trying to download an .apk file using Samsung Browser you need to allow '*Automatic Downloads*'
{% endhint %}

## Troubleshooting Guide

1. Open your **Samsung Internet Settings** (in the browser tab)
2. Click on Settings
3. Go to '**Sites and Downloads**'
4. Go to the section '**Downloads**'&#x20;
5. and **disable blocking of automatic downloads**

![Disable block automatic downloads](/files/-MPj-ZKKy4saol_afb2y)


# Android FAQ

## What is an APK?

An APK (Android Application Package) is an file format created for Android mobile operating system only. The APK is a collection of various files packed into one file for distribution. Often an APK file contains of source code, videos, 3rd party integration, assets and so on. Apps downloaded directly from Google Play are automatically installed on your device, Apps which are not distributed via Google Play needs to be installed manually after downloading.&#x20;

## What is the Android package name?

Android apps using *package name* as an unique identification. In some cases, *package name* is a synonym for Application ID. There are some differences between the *package name* and the application ID, for most of non-developers it is the same. By default your project's package name matches the Android application ID. If you want to change your package name, the package name (as defined by your project structure) should always match the package attribute within your AndroidManifest.xml file. Updraft extracts the *package name* of your uploaded .apk file out of the AndroidManifest.xml and display it within the build history.

If you are changing the package name during your development process and you try to upload an APK with a different package name to an existing app, Updraft will show you an error message.&#x20;

## What is the Android Version Code?

Versioning is a very important part of your app upgrade and maintenance strategy.&#x20;

`versionCode` — is a positive integer used as an internal version number. The `versionCode` not the version number shown to your users. Updraft extracts the `versionCode` of your uploaded .apk file out of the AndroidManifest.xml and display it within the build history called **Build Version.**

{% hint style="info" %}
**Warning:** The greatest value Google Play allows for `versionCode`is 2100000000.
{% endhint %}

## What is the Android Version Name?

`versionName` — is a string used as the version number shown to users. The `versionName` is only used to show the current Version to your users.&#x20;

Updraft extracts the `versionName` of your uploaded .apk file out of the AndroidManifest.xml and display it within the build history called **Version.**

## Android Version Name and Suffix?

If you are working with different Environments and build types it helps if you set such stages of development within your versionName. You can include in your `versionName` a suffix (TEST, STAGING, PRODUCTION) to separate your builds and to avoid testing on wrong development environment. In this case the **Version** within the build history **on Updraft** will look something like 1.8.1-DEV-380 or 1.3.44-DEV for example.

## Am I required to use the Updraft Open Source SDK?

To use the main functionalities of Updraft you don't need to implement the Updraft Open Source SDK. You can upload builds and distribute them to your testers and colleagues within your organization. If you want to collect [Feedback or Bugs](broken://pages/-Lc_StJ3EgkFM7zP9oWE) or if you want to use the functionality [Autoupdate ](/updraft-sdk/ios-autoupdate)then you need to implement the SDK.


# Android Icon Troubleshooting

When using Android Adaptive Icons, there is a chance that icons are not correctly displayed in Updraft. Here's how you can get the icons to appear.

When creating an Android Application, it is now common to use [Adaptive Icons](https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive) instead of normal image files. With this icon format, Updraft can sometimes not extract the app icon properly.

![Missing Icon in Android Updraft Project](/files/6qnwyNVdgzxeqAaego3r)

First, you need to make sure that the **legacy icons** for the icon are generated. In order to do that, make sure to add your Adaptive Icon by creating a new `Image Asset`:&#x20;

![](/files/X5Vlgzi0Ek19R7zOcOCZ)

After adding both Foreground and Background Layer, make sure that the `Legacy Icon` under the Options tab is set to `Yes` . After that's done, Icons named `ic_launcher.png` will be generated.

![Image Asset Dialog](/files/odsVJqmicPsAr6stMvaJ)

<img src="/files/iE4OyGIYAXJqFY2EohUw" alt="" data-size="original">

Now, when uploading builds to Updraft, it will extract the `ic_launcher.png` and show it correctly as an App Icon. However, when using minified builds, this will not work correctly yet.

### Fixing Icons for minified release builds

When using minified Android builds (`minifyEnabled true`), the extraction of the icon will not work, as the name of the icon is obfuscated and changed to some random string.&#x20;

This problem can be solved, by using the [Android App Bundle](https://docs.getupdraft.com/your-projects/app-overview/android-app-bundle-aab) upload instead of APK.&#x20;




---

[Next Page](/llms-full.txt/1)

