# Test already installed iOS app on real device

**URL:** <https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720>\
**Category:** Support\
**Created:** [February 21, 2022, 7:34pm UTC](https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720 "2022-02-21T19:34:45Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Scorpion1976](https://discuss.appium.io/letter_avatar_proxy/v4/letter/s/da6949/32.png) [@Scorpion1976](https://discuss.appium.io/u/Scorpion1976)\
**Post date:** [February 21, 2022, 7:34pm UTC](https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720/1 "2022-02-21T19:34:45Z")

</div>

Hello everyone,

I’m relatively new with testing on iOS apps with Appium and read and watch a lot of tutorials but one thing is not clear for me.  
For my work I use Robot Framework to perform regression tests on a webversion catalog website. Now the developer has created a seperate iOS app what is already installed on a iPad (so I don’t have sourcecode). For the iOS app I also want to automate different scenarios. All the online tutorials explains how to built your own developed app on the iOS device with Xcode and how to test the app. But I would like to test an app what is already installed on the device. Is this possible and how do I connect with the app via capabilities(“app”: “/path/to/my.app” )?  
Can anyone help me with this and point me in to the right direction. Thank in advance.

---

<div class="post-metadata">

**Author:** ![wreed](https://discuss.appium.io/letter_avatar_proxy/v4/letter/w/919ad9/32.png) [@wreed](https://discuss.appium.io/u/wreed)\
**Post date:** [February 21, 2022, 7:52pm UTC](https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720/2 "2022-02-21T19:52:22Z")

</div>

Just don’t include the ‘app:’ capability. You’ll probably want to ‘launch-app’ before running a test:

[https://appium.io/docs/en/commands/device/app/launch-app/](https://appium.io/docs/en/commands/device/app/launch-app/)

Example here:

[https://stackoverflow.com/questions/39608711/how-to-launch-already-installed-app-from-iphone-using-appium](https://stackoverflow.com/questions/39608711/how-to-launch-already-installed-app-from-iphone-using-appium)

---

<div class="post-metadata">

**Author:** ![Scorpion1976](https://discuss.appium.io/letter_avatar_proxy/v4/letter/s/da6949/32.png) [@Scorpion1976](https://discuss.appium.io/u/Scorpion1976)\
**Post date:** [February 23, 2022, 8:02pm UTC](https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720/3 "2022-02-23T20:02:23Z")

</div>

Ok, thanks I’m going to try this weekend.

---

<div class="post-metadata">

**Author:** ![Scorpion1976](https://discuss.appium.io/letter_avatar_proxy/v4/letter/s/da6949/32.png) [@Scorpion1976](https://discuss.appium.io/u/Scorpion1976)\
**Post date:** [March 24, 2022, 7:22am UTC](https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720/4 "2022-03-24T07:22:15Z")

</div>

Hi all,

Somehow ‘launch-app’ wasn’t working for me but got this setup working to launch the app.

```
public class Test01 {

    @Test
    public void Startup() throws MalformedURLException {
    
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("platformName", "iOS");
    capabilities.setCapability("platformVersion", "15.2.1");
    capabilities.setCapability("deviceName", "iPhone 13");
    capabilities.setCapability("udid", “<UDID OF MY PHONE>“);
    capabilities.setCapability("bundleId", “com.example.domain.app");
    capabilities.setCapability("xcodeOrgId", “<MY TEAMID>”);
    capabilities.setCapability("xcodeSigningId", "iPhone Developer");
    
    URL url = new URL("http://127.0.0.1:4723/wd/hub");
   AppiumDriver driver = new AppiumDriver(url, capabilities);

}
```

---

<div class="post-metadata">

**Author:** ![Nisha\_Saifi](https://discuss.appium.io/user_avatar/discuss.appium.io/nisha_saifi/32/14480_2.png) [@Nisha\_Saifi](https://discuss.appium.io/u/Nisha_Saifi)\
**Post date:** [February 12, 2026, 6:22am UTC](https://discuss.appium.io/t/test-already-installed-ios-app-on-real-device/35720/5 "2026-02-12T06:22:55Z")

</div>

you can’t really automate a random App Store app on a real iOS device with Appium unless you have the app binary and proper signing. You can try using the bundleId capability, but it usually only works for dev/enterprise builds. In practice you’ll need the dev to give you a test IPA (TestFlight, ad-hoc, enterprise) or access to re-sign it. If you don’t want to deal with local device/signing pain, teams often just upload the IPA and run Appium tests on real devices via something like BrowserStack App Automate.
