# Launch App

#### Launch Your App with a Single Click

Kickstarts your entire testing workflow with **Launch App** step. This foundational step ensures the correct application and version are seamlessly installed and opened on the device, setting a reliable baseline for every interaction that follows.

**How it works:**

1. **Initiate the Launch**: In the Test Steps panel, click on **Select a step** and choose **Launch App**.
2. **Select Your App**: A dialog box will appear, prompting you to select the application you wish to test from a list of your pre-configured apps.
3. **Pinpoint the Version**: Next, you'll be presented with a list of all the uploaded versions for that application. This gives you precise control, allowing you to test a new build, a stable release, or a legacy version. Simply select the one you need.
4. **Confirm and Go**: Click **Confirm**. Finalrun immediately adds the step to your test case and executes it. You can watch as the app is installed and launched on the device screen in real-time.

{% embed url="https://youtu.be/s-whY_S1khg" %}

### Launch app Settings

Launch app advanced settings provide a powerful suite of tools for granular control. These options allow you to precisely replicate specific user conditions, test complex startup scenarios, and ensure your app behaves exactly as expected from the moment it opens.

**Install Setting**

Control exactly how the app is installed on the device for each test run.

* **Fresh app install**: This is the default and most common setting. It completely uninstalls any existing version of the app and clears all its data before installing the selected version. It's perfect for testing first-time user experiences, onboarding flows, and ensuring a clean slate for every test.
* **Install If Missing**: An efficiency-focused option that only installs the app if it's not already on the device.
* **Force Reinstall**: Guarantees the selected version is installed by replacing any existing installation, even allowing for downgrades if necessary.

**Launch Setting**

Tailor the app's behavior and state at the moment it opens.

* **Enable all permissions**: A massive time-saver. This toggle automatically grants all required permissions (like Camera, Contacts, Location) to your app upon launch, bypassing disruptive system dialogs that can complicate tests. \
  You can also disable this and grant permissions individually for more specific test cases.
* **Disable battery optimisation**: A crucial stability feature. It prevents the device's operating system from putting your app to sleep during longer test runs.
* **Argument**: Pass data directly to your app on launch using key-value pairs. This allows you to simulate different startup conditions or feature flags. You can specify the data type, including String, Integer, Boolean, and Decimal.
* **Deep Link**: Launch your app directly into a specific screen or state. By providing a deep link URI, you can bypass login or introductory screens and get straight to testing the feature you care about, making your tests faster and more focused.

{% embed url="https://youtu.be/EO-ra8YdXrI" %}
