# Uploads

> Upload apps and attachment files, version them, and get the URL a test step needs.

**Test Data > Uploads** holds two kinds of file: the mobile app builds you run tests against, and the small attachments a test step needs a URL for. Both use the same upload dialog and the same versioning, so one page covers them.

## Prerequisites

- A [project](https://testsigma.com/docs/v2/get-started/projects-and-applications/) of the right application type — upload an Android app from an Android project, an iOS app from an iOS project.
- For an app, the build itself: `.apk` for Android, `.ipa` for iOS.

## Where an app can live

A native app does not have to be uploaded to Testsigma at all. Three locations work.

| Location | Use it for |
| --- | --- |
| Your local machine | Local hybrid execution through the [agent](https://testsigma.com/docs/v2/get-started/installation/testsigma-agent/) |
| Your own server, on a direct internet link | A build your CI already publishes somewhere reachable |
| The Testsigma cloud | The default, and the one this page covers |

## Upload a file or an app

1. **Open Uploads** — Go to **Test Data > Uploads**.

2. **Start the upload** — Click **Upload**.

3. **Choose the file** — In **Upload a file**, drag it in or click **Browse**.

4. **Label it** — Set the **Name** and **Version**, then click **Upload**.

The limit is 300 MB per file. A release build with debug symbols often exceeds that, so upload a debug build or host it yourself and use a direct link instead.

## Manage what you uploaded

On the **Uploads** list, click the ellipsis beside an entry. The menu offers **Upload a new version**, **Download**, and **Delete**.

To add a version, click **Upload new version**, drag in the file or **Browse** to it, set the **Name** and **Version**, then click **Upload**. Versions accumulate, so a test plan can stay pinned to a known build while you upload the next one.

## Get a file's URL

A test step that uploads a file needs the file's URL rather than its name. On the **Uploads** page, click the copy button beside the entry and paste the path into the step.

![The Uploads list, with Copy path on a file's location](https://s3.amazonaws.com/website-static-docs.testsigma.com/new_images/projects/Updated_Doc_Images/update_upload_8.png)

## Build the app you upload

If you need to produce the build first, these are the routes for each artifact.

1. **Open the build menu** — Go to **Toolbar > Build**.

2. **Choose the bundle** — Click **Build Bundle(s)/APK(s)**.

3. **Build it** — Click **Build APK(s)**.

4. **Find it** — On the **Build APK(s)** popup, click **locate**. The debug APK appears in your file explorer.

1. **Open the project** — Open your app project in Xcode.

2. **Pick the target** — Select the iOS device matching your project's device target.

3. **Archive it** — In the **Product** menu, select **Clean**, then **Archive**.

4. **Export it** — Find the app under **Archives**, select it, and click **Export**.

5. **Choose a method** — Select **Ad Hoc**, **Enterprise**, or **Development**.

6. **Set distribution options** — App Thinning **None**, clear **Rebuild from Bitcode**, **Strip Swift symbols** optional, and clear **Include manifest for over-the-air installation**.

7. **Sign it** — Select the **Distribution Certificate** and **Provisioning Profile**.

8. **Finish** — Click **Export** to write the `.ipa`.

The certificate and provisioning profile come from **Settings > iOS Settings**. To create them, see the iOS tab in [Connect a local device](https://testsigma.com/docs/v2/get-started/installation/testsigma-agent/#connect-a-local-device).

1. **Open the project** — Open your app project in Xcode.

2. **Pick the target** — Select the simulator matching your target device.

3. **Build it** — In the **Product** menu, select **Clean**, then **Build**.

4. **Find it** — The `.app` file is in your Xcode project directory.
