activities
latest
false
UiPath logo, featuring letters U and I in white

UI Automation Activities

Last updated Nov 25, 2025

Local iOS devices

Setting up local iOS devices

To set up a local device to work with the Mobile Automation activities, you need to run a local instance of Appium, and have the necessary tools to automate iOS devices.

There are two types of local iOS devices that you can automate:

  • Physical - a physical iOS device that you can connect to your local machine, through a USB cable.
  • Emulator - an emulator for an iOS device that's stored locally.

Most used Appium commands

The list below describes the most used commands for setting up Appium in the context of Mobile Device Automation (recommended for Appium 2.0):

  • xcrun simctl list - List available devices, device types, runtimes, or device pairs.
  • xcrun simctl list devices - lists the available devices.
  • xcrun simctl list devicetypes - lists the device types.
  • xcrun simctl list runtimes - lists the runtimes.
  • xcrun simctl list runtimes - lists the device pairs.

Application Storage

You will need to store your mobile apps on the same machine where your Appium server is running, or upload the IPA file to a URL that is anonymously accessible by the Appium server (e.g. Blob storage).

Installing applications from the Play Store or App Store is not possible, except if you manually automate these applications to install your specific application.

Important:
If your app artifact uses the APP extension and you want to upload the app to a public URL, you will need to create a folder named Payload, place the APP inside it, archive the Payload folder and change the extension to IPA instead of ZIP.

Additionally, ensure that the application that you are trying to automate is compiled for the target architecture (simulator or physical device).

Configuring IOS Physical Device

Architecture

When working with iOS Physical Devices, you require the following infrastructure:

  1. WindowsOS Device
    • UiPath Studio (Hardware/Software) – installation guide
  2. macOS Device
    • Appium Server
      • Homebrew
      • NodeJS
    • Xcode
      • Required to install Appium Driver on iOS device
  3. iOS Device
    • Appium WebDriver
Figure 1. Architecture for IOS Local Physical Devices

Prerequisites

  1. macOS 13+ (Ventura or later)
  2. Apple ID (for Xcode and provisioning)
  3. Physical iOS device (iPhone/iPad)
  4. UiPath Studio 2023.10 (or higher)
  5. USB cable to connect the device

Configuring Local Physical iOS Device

  1. Install Homebrew.
    1. Open Terminal (select Command+Space).
    2. Run the following command:
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 
      Figure 2. Homebrew installation - command line

    3. If prompted, run the following command to add Homebrew to your PATH environment variable:
      echo >> /Users/<username>/.zprofile
        echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/<username>/.zprofile
        eval "$(/opt/homebrew/bin/brew shellenv)"echo >> /Users/<username>/.zprofile
        echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/<username>/.zprofile
        eval "$(/opt/homebrew/bin/brew shellenv)"
    4. Verify.
      brew -versionbrew -version
  2. Install Xcode and Command Line Tools.
    • Install Xcode via App Store and open it once.
    • From Terminal, run the following:
      1. xcode-select –installxcode-select –install
      2. sudo xcodebuild -license acceptsudo xcodebuild -license accept
      3. Verify:
        xcodebuild -versionxcodebuild -version
  3. Enable Developer mode on iOS Device.
    1. On your iPhone or iPad, go to Settings > Privacy & Security > Developer Mode.
      Figure 3. Developer mode on IOS device

    2. Toggle on and restart.
    3. After restart, approve the popup.
    4. Connect via USB and trust the computer.
      Figure 4. Enable iOS device trust

  4. Install Node.js.
    1. Run the following command:
      brew install nodebrew install node
      Figure 5. Node.js installation

    2. Verify.
      node -vnode -v
      npm -vnpm -v
  5. Install Appium v3.
    1. Run the following command:
      npm install -g appium@3npm install -g appium@3
      Figure 6. Appium installation

    2. Verify.
      appium -vappium -v
      Figure 7. Appium verification

  6. Install Appium Drivers and Plugins.
    1. Install iOS driver.
      appium driver install xcuitestappium driver install xcuitest
      Figure 8. Appium xcuitest

    2. (Optional) Configure Android option.
      appium driver install uiautomator2appium driver install uiautomator2
    3. List drivers.
      appium driver listappium driver list
      Figure 9. Appium drivers

  7. Set up WebDriverAgent.
    1. Install Carthage.
    2. Set up WebDriverAgent.
      1. Navigate to the appium-webdriveragent folder, using the following path: /Usetrs/<username>/appium2/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent, and open the xcodeproj file.
        Figure 10. WebDriverAgent folder

      2. Select WebDriverAgent, and, under the Targets section, open WebDriverAgentRunner.
        Figure 11. WebDriverAgent runner

      3. Switch to the Signing & Capabilities tab, select Automatically manage signing, and choose a user account from the Team dropdown.
      4. Change the Bundle Identifier to a unique value.
        Figure 12. WebDriverAgent Bundle Identifier

      5. Copy and save this Bundle Identifier, which you will use to add your Application inside Mobile Device Manager (Bundle Id).
      Trouble: A common issue that you may encounter is an Untrusted Developer Certificate. To fix the issue, follow the instructions oin the popup.
      Figure 13. WebDriverAgent troubleshooting

  8. Verify Physical Device access.
    1. Confirm that the IntegrationApp is installed on your physical device.
      Figure 14. IntegrationApp on physical device

    2. Run xcrun xctrace list devices.
    3. Ensure your iPhone appears in the list. If not, verify Developer Mode and Trust settings. You will need the UDID or information in the parenthesis after your device name.
      Figure 15. Physical device access

  9. Start the Appium Server.
    1. Open the terminal and enter appium.
      Figure 16. Appium Server start

    2. Copy the appium url (to be used in next step).
      Note: Do not use the 127 location.
  10. Connect UiPath to Appium.
    1. Open UiPath Studio and install Mobile Automation Activities.
    2. Open Mobile Device Manager, and select Add device.



Add the configurated local physical iOS device in Mobile Device Manager, using the Adding iOS Device in Mobile Device Manager procedure.

Adding Local IOS Device in Mobile Device Manager

  1. Open Mobile Device Manager from Studio.
  2. In the left navigation panel go to Devices.
  3. Configure your device as follows:
    • Name - Enter a name to identify your device in the Devices tab.
    • Appium URL - Enter the Appium URL, that you previously copied, using the following format: http://<ipaddress>:8001.
    • Platform - Click the field to select iOS from the dropdown.
    • Device Name - Enter the device name.
    • Additional Desired Capabilities - Add the following capabilities:

      Name

      Value

      automationName

      xcuitest (This capability activates the Appium iOS driver)

      udid

      the Identifier of the connected physical iOS device

  4. (Optional) Configure logging and video recording details in the Logging tab.
  5. (Optional) Configure your development process in the Development tab.
    • Close Similar Tabs (Activated by default): Close tabs running connections with similar devices and applications.
    • Wait for Page Update (Activated by default): Wait for the page source to retrieve a screenshot of each action.
  6. Click Save & Close to add your device.

    Your device is added to the Devices list. To add a local device, see .

    If you cannot start your device, see Troubleshooting: Physical device fails to start.



Hybrid and Web Automation on IOS

Hybrid automation works by default for iOS devices, provided that you are not attempting to automate an app built for production. When automating production apps, WKWebView hosted content will not be automatable, though any web content hosted in an SFSafariViewController can be automated in production apps as well. For more information, see SFSafariViewController.

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo
Trust and Security
© 2005-2025 UiPath. All rights reserved.