How to Install Appium on Mac OS in 3 Simple Steps


How to Install Appium on Mac OS in 3 Simple Steps

Rajeev Singh

Rajeev Singh

October 24, 2019   |   47580 Views

  • Twitter
  • Facebook
  • Linkedin
How to Install Appium on Mac OS in 3 Simple Steps

How to Install Appium on Mac OS in 3 Simple Steps

Automation testing is one of the essential tasks in Software testing. It allows automation testers to create a robust framework with an automation script, which can be run during functional or regression testing to save time as well as cost. There are various testing tools available for mobile app automation, but Appium is most widely used for test automation.

Here, we will learn how to install Appium on Mac OS in easy steps:

Setting up Mac OS for automation testing is a little difficult task if you are a new to Mac-based system. But if you are familiar with commands on the terminal, then it will be easy to complete the setup.

Install Java JDK latest version

First, download Java JDK from below path and install it (if you are using the same system for both automation and performance testing using JMeter then use JDK 8 or higher version of JDK, as they have more compatibilities).

Set Java Home Path using a terminal

Type below command on terminal:

open -e .bash_profile

It will open the bash profile in edit mode. Now you can edit Java_home, Android _home (for Android app automation, you need to install Android Studio from this link before Android home setup) with below commands:

Copy these commands and set your own username and JDK version and paste on bash profile:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home
export ANDROID_HOME=/Users/<username>/Library/Android/sdk
export PATH=$/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/
export PATH="/Users/ <username> /Library/Android/sdk/platform-tools":$PATH

then save from File > Save and close the bash profile text editor.

Now, your Java and Android home environment variable has been set.

How to Install Appium on Mac OS in 3 Simple Steps

Step 1: Install all the pre-requisites for Appium

  1. Install the latest Xcode Desktop version.
  2. Install Xcode command line (use Command: Xcode-select --install)
  3. Install Homebrew with below command:

/usr/bin/ruby -e "$(curl -fsSL"

  1. brew install npm
  2. npm install carthage 
  3. npm install -g appium
  4. npm install appium-doctor -g
  5. Sudo gem install xcpretty
  6. brew install libimobiledevice –HEAD
  7. npm install -g ios-deploy

Step 2: Download Appium Desktop and install it

Now, download the latest Appium desktop version from the below link and install it.

And, here download Appium-mac-1.15.1.dmg and install.

Step 3: Setting up WebdriverAgent in XCode

This is a very important setup and needs to be done very carefully, otherwise, you will not be able to launch the Appium app.

(i) Open the terminal and go to WebDriverAgent folder within the Appium installation directory. It will be found at the below place:

Right click on Appium desktop > Contents /Resources/app/node_modules/Appium/node_modules/appium-xcuitest-driver/ WebDriverAgent

Now, run below two commands:

1) mkdir -p Resources/WebDriverAgent.bundle
2) ./Scripts/ -d

(ii) Connect your iOS device with the system and open WebDriverAgent.xcodeproj in Xcode. For both the WebDriverAgentLib and WebDriverAgentRunner targets, select "Automatically manage signing" checkbox in the "General" tab, and then select your Development Team. This should also auto select Signing Certificate.

You need to provide Apple developer account credentials to select the team.

Xcode maybe fail to create a provisioning profile for the WebDriverAgentRunner, this needs manual change to the bundle id for the target. Go into the "Build Settings" tab, and change the "Product Bundle Identifier" from com.facebook.WebDriverAgentRunner to something unique that Xcode will accept: like - com.facebooksss.WebDriverAgentRunner.

Similarly, setup WebDriverAgentLib and Integration App in Xcode. Then run (build) integration app. To run the Integration App, Apple id is required, and it should be trusted on a real iPhone device from:

Settings > General > Device Management.

Here click on the Apple id to trust it.

Now close Xcode (end tasks pop up appears), and quit Xcode then run below test command with udid within WebDriverAgent destination on terminal:

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<udid>' test

If everything is properly set, then you will get terminal like this after running above command:

Test Suite 'All tests' started at 2019-10-23 15:49:12.585
Test Suite 'WebDriverAgentRunner.xctest' started at 2019-10-23 15:49:12.586
Test Suite 'UITestingUITests' started at 2019-10-23 15:49:12.587
Test Case '-[UITestingUITests testRunner]' started.
t = 0.00s Start Test at 2019-10-23 15:49:12.588
t = 0.00s Set Up

Get <udid> by running $ios-deploy -c (before running this command, make sure iPhone is attached with USB and USB debugging is ON)

Launch Appium on Mac OS X

Now, open the Appium app from 'Application' and start the Appium Server.

Launch Appium on Mac OS

After providing the desired capabilities in Appium Inspector, you can start the session. You can save this desired capability for next time for quick access.

Appium Inspector

By using the above steps, Click on ‘Start Session’ and this will start to install the app under test on the device and UI will be displayed in Appium Inspector, here you can find the locators and start writing automation test script.

TechAhead, a leading mobile app development company is known to deliver high quality mobile apps for all platforms and frameworks. Contact our experts now to take your business to the next level.

Subscribe to TechAhead Newsletter
Get the latest tech & business
updates, trends & more
Rajeev Singh

Written by

Rajeev Singh

Rajeev is Tech Lead and heading the Quality team of TechAhead. He is having 10+ years of solid experience on test automation, performance and manual testing. He is passionate to learn new tools and technologies and implement those into our software testing division to deliver a quality product to all our clients. He is well versed with various open-source tools like Appium, Selenium Webdriver, Rest Assured and JMeter etc.

Subscribe to TechAhead Newsletter
Get the latest tech & business
updates, trends & more
back to top