Getting Started with IOS Automation with Appium

IOS automation with Appium is a powerful tool that can save you time, reduce errors, and increase the overall efficiency of your app development process. It allows you to write scripts that can simulate user interactions with your app, such as tapping buttons, swiping screens, and entering text.


But let’s be real, automation isn’t just about being efficient; it’s also about having fun. Imagine sitting back and watching your phone test itself while you sip on your favorite beverage and catch up on your latest guilty pleasure show. Sounds like a dream, doesn’t it? Well, with Appium, it can be a reality.


Now, you might be thinking, “But wait, isn’t automation complicated and time-consuming to set up?” Not at all! Appium is designed to be user-friendly and easy to set up. You don’t need to be a coding genius to get started with Appium. Just a basic understanding of programming concepts will do.


So, let’s dive into the adventurous world of IOS automation with Appium. 

What Do You Need Before Tackling iOS App Automation with Appium?

Let’s face it, setting up your machine for IOS automation can be a bit of a hassle. But don’t worry, we’re here to make it as painless as possible.

  1. First things first, install JDK. But don’t panic, it’s not as complicated as it sounds. Just head over to the official Oracle website and follow the instructions. And remember to check your Java version after installation – we don’t want any version conflicts causing headaches later on!
  2. Next up, it’s time to install Eclipse. Now, we know what you’re thinking – “another installation?!” – but trust us, it’s worth it. Eclipse is a great IDE for IOS automation and makes writing automation scripts a breeze.


Once you’ve got Eclipse up and running, it’s time to dive into IOS automation with Appium. 

A step-by-step guide on getting started with IOS automation

Step 1: Install Homebrew

Let’s get brewin’! Homebrew is a package management software that will make our lives much easier when installing other necessary tools. Head on over to to follow the instructions for installation. And once it’s done, you can check its version by simply typing “brew -v” in your terminal.

Step 2: Install Carthage

The WebDriverAgent requires it for a smooth journey. Just type “brew install carthage” in the terminal and let it do its thing. If it’s already installed, you’ll get a message letting you know that you’re good to go.

Step 3: Install Node & Npm

Appium is a node application, which means you need to have Node.js and Npm installed. Node.js is like the engine that powers Appium, and Npm is like the fuel that makes it run smoothly. So, type “brew install node” in your terminal to install both Node.js and Npm. You can verify their installation by checking their versions with “node -v” and “npm -v” commands.

Step 4: Install authorize-ios

authorize-ios is a nifty little tool that helps pre-authorize Instruments to run UIAutomation scripts against iOS devices. It’s like a VIP pass that lets your tests run on real devices. To get it installed, simply type “npm install -g authorize-ios” in your terminal.

Step 5: Install ios-deploy

ios-deploy is like the carrier pigeon that helps deploy your app onto a real device. It’s a command-line tool that lets you install, uninstall, and debug apps on iOS devices. So, type “brew install ios-deploy” in your terminal to get it installed. You can verify its installation by checking its version with the “ios-deploy –version” command.

Step 6: Install ideviceinstaller

ideviceinstaller is like the Swiss Army knife for managing apps on iOS devices. It lets you install, uninstall, and archive apps, and it works seamlessly with iOS devices. So, type “brew install ideviceinstaller” in your terminal to get it installed. You can verify its installation by checking its version with the “ideviceinstaller –version” command.

Step-7: Install Xcode

Xcode is like the all-in-one toolset that every iOS developer needs. It’s a complete developer toolset for creating apps for Mac, iPhone, iPad, Apple TV, and Apple Watch. It’s like having a toolbox filled with all the necessary tools to build a house. We’ll be using it to build, test, and submit our iOS app. Follow the official Xcode documentation for installation instructions. To verify the installation, use the “/usr/bin/xcodebuild -version” command. Let’s X-code our way to success!

Step 8: Install the XCUITest driver

This is where the magic happens! The XCUITest driver is like the wizard behind the curtain that makes Appium work its magic on iOS devices. It’s a combined solution that lets you automate black-box testing of iOS and tvOS native applications and WebKit web views. To get it installed, follow the instructions on the official website. And if you run into any issues, don’t worry, there’s a help doc that you can refer to for common errors or issues faced during the installation.

Step 9: Install Appium and Appium Doctor

Appium is like the conductor that leads the orchestra of automated tests. It’s the main tool that you’ll be using to write, run, and manage your automated tests. 

Install Appium with the “npm install -g appium@version” command (use the version of Appium after “@”). Check the installed version with the “appium –version” command. Appium Doctor is a handy tool that checks the preconditions for Appium to run successfully. Just type “npm install -g appium-doctor” in the terminal and use the “appium-doctor –version” command to check the installed version. 

Step 10: Install Maven

Ah, yes, Maven – the one who manages dependencies, so you don’t have to. To install this useful tool, simply type in the command “brew install maven” on your terminal. And don’t forget to set up the Maven path by using the command “export PATH=/opt/apache-maven-3.8.6/bin:$PATH” before checking the version. Once the installation is complete, double-check everything by typing “mvn –version” and make sure that everything looks good.

Step 11: Install TestNG

TestNG is the testing framework that we’ll be using to manage our automated test suite. You can find this handy tool by launching Eclipse, selecting “Help” > “Eclipse Marketplace”, and searching for TestNG. You should see the TestNG for Eclipse option with a button that says “Install”. Click on the button and complete the installation process, and voila! You’re all set with TestNG.

Step 12: Install Appium Desktop

Last but not least, we need to install Appium Desktop so we can use the Appium Inspector to identify the elements on the iOS app for designing test scripts. No worries, installing Appium Desktop is as easy as pie – just head over to the official website and follow the instructions to install. With Appium Desktop, you’ll be able to inspect elements like a pro and create flawless test scripts that will make your colleagues green with envy.

Capabilities setup for real iOS device

Ah, setting up the capabilities – the backbone of your test automation on a real iOS device! Don’t worry, it’s not rocket science. 


DesiredCapabilities capabilities = new DesiredCapabilities();

capabilities.setCapability(“platformName”, “iOS”);

capabilities.setCapability(MobileCapabilityType.NO_RESET, true);

capabilities.setCapability(“useNewWDA”, false);

capabilities.setCapability(“platformVersion”, “12.0.1”);

capabilities.setCapability(“deviceName”, “iPhone 8”);

capabilities.setCapability(“udid”, “auto”);

capabilities.setCapability(“bundleId”, “<your bundle id>”);

capabilities.setCapability(“xcodeOrgId”, “<your org id>”);

capabilities.setCapability(“xcodeSigningId”, “iPhone Developer”);

capabilities.setCapability(“updatedWDABundleId”, “<bundle id in scope of provisioning profile>”);

capabilities.setCapability(MobileCapabilityType.APP, “[PATH_TO_YOUR_IPA_FILE]”);


Let’s dive into each capability one by one and explain what it does.

  1. platformName: This capability specifies the platform name, which in this case, is iOS.
  2. MobileCapabilityType.NO_RESET: This capability is set to true to ensure that the app’s state is not reset between test runs.
  3. useNewWDA: This capability is set to false to use the old WebDriverAgent instead of the new one.
  4. platformVersion: This capability specifies the version of iOS that the device is running.
  5. deviceName: This capability specifies the name of the device on which the tests will be run. In this case, it’s set to “iPhone 8”.
  6. udid: This capability specifies the unique device identifier (UDID) of the physical device that we want to use for testing. In this example, it’s set to “auto”, which means that Appium will automatically detect the connected device.
  7. bundleId: This capability specifies the bundle identifier of the app that we want to test. You’ll need to replace “<your bundle id>” with the actual bundle identifier of your app.
  8. xcodeOrgId: This capability specifies the organization identifier (org id) associated with your Apple Developer account.
  9. xcodeSigningId: This capability specifies the type of certificate that you have to use to sign your app. In this example, it’s set to “iPhone Developer”.
  10. updatedWDABundleId: This capability specifies the bundle identifier of the WebDriverAgent that is used for automation. You’ll need to replace “<bundle id in the scope of provisioning profile>” with the actual bundle identifier of your app.
  11. MobileCapabilityType.APP: This capability specifies the path to the app (.ipa) file that you want to test. You’ll need to replace “[PATH_TO_YOUR_IPA_FILE]” with the actual path to your app file.


Phew! That was a lot, but don’t worry – once you’ve got these capabilities set up, your test automation on real iOS devices will be smooth sailing!

A demo code for automating the iOS app using Appium

Now, let’s dive into the exciting part, the demo code for automating an iOS app using Appium!


But before we jump into the code, let’s make sure your device is not locked and has been given permission to trust the computer. Also, don’t forget to start the Appium server.


In the code below, we have used the Test method called testClickAnElement().


Here’s the code:

In the testClickAnElement() method, the code locates and clicks on an element with the accessibility ID “Browser”, waits for the “url” element to be clickable, and then enters “” in the “url” field.


Then, it locates and clicks on an element with the accessibility ID “find” and enters “LambdaTest” in it. Finally, the test is finished, and the browser window is closed.

Overall, the code sets up the capabilities and runs a test to ensure that the Appium server can find and interact with the necessary elements in the iOS mobile app.

That’s it! You can now automate iOS apps using Appium like a pro.

Automating iOS Apps on a Real Device Cloud

Well, let us tell you, LambdaTest is not just any ordinary cloud-based testing platform. It is a powerhouse of features that makes mobile automation testing a piece of the cake. With LambdaTest, you can easily automate your native and hybrid mobile apps on a vast online device farm of 3000+ real iOS devices.


LambdaTest offers an easy-to-use and secure testing environment that enables you to accelerate your release cycles. You need not worry about setting up any prerequisites on your local machines, as you can easily perform real iOS device testing on the cloud. Plus, you can also test on different iOS versions, which makes your testing process even more robust.


With LambdaTest, you get seamless integration with various testing frameworks, such as Appium, Selenium, and more. You can also perform parallel testing on multiple devices, which helps you to save a lot of time. And guess what? You can also perform visual testing to ensure that your app looks perfect across different devices.


LambdaTest has made it super easy for you to run your automation suite on real cloud devices. All you need to do is utilize the code provided along with your username and password, select the iPhone model you want to test on, and voila!

  1. To get started, simply execute the commands “mvn clean install” and “mvn test -P ios” on your terminal. 
  2. Once the build is successful, head over to the LambdaTest website and navigate to the Real Device ⇒ App Automation Section. You’ll be able to see “Java Vanilla – iOS” and your recent execution.

3. Clicking on the recent execution will take you to the build view page, where you can view all the details of the execution, including thevideo, test logs, and network details.

It’s that easy! And the best part? You can select any iPhone model required for your testing needs. So, why wait? Just try LambdaTest and see how easy mobile automation testing can be!


IOS automation with Appium is a powerful tool that can save you time, increase efficiency, and make app testing fun and easy. 


With Appium, you can sit back and watch as your app is tested automatically without you having to lift a finger (well, except for typing the script). It’s like having your own personal app tester that works tirelessly around the clock.


And let’s be honest, who doesn’t want to be lazy sometimes? With Appium, you can automate your IOS app testing and spend your time doing things that matter, like binge-watching your favorite TV show or taking a much-needed nap.


Rather than simply accepting what we say, we suggest that you put it to the test and see for yourself! With Appium, you’ll be amazed at how easy and fun it is to automate your IOS app testing. So, what are you waiting for? Embrace the power of automation and say goodbye to manual testing forever!


Previous post Gallery Dept Clothing The Ultimate Guide to the best streetwear brand
Next post NBA YoungBoy Merch the Rise of a Young Rap Star’s Clothing Line

Leave a Reply

Your email address will not be published. Required fields are marked *