Xcode 8 UPDATE: Automated cross platform testing of iOS and Android hybrid Ionic/Cordova/Angular apps using Cucumber, Protractor, Chai and Appium

Xcode 8 and macOS Sierra Update

You can view the original article here

Before you start a word of WARNING. Do not run ‘ionic serve’ and ‘appium’ at the same time. There is a conflict at localhost:8100 and appium will not be able to create a new session.

If you’ve upgraded to Xcode 8 you will need to upgrade to an appium 1.6 beta version, currently appium1.6.0-beta3 at the time of writing. To upgrade to appium 1.6.0 locally though I have found that you need to uninstall ‘appium-doctor’ and ‘authoize-ios’ first.

$ npm uninstall appium-doctor authorize-ios

Then

$ npm install appium@1.6.0-beta3

Apple has deprecated the ‘UIAutomation’ framework so we need to use ‘XCUITest’. This change will have to be reflected in you ios-conf.js. Update the capabilities object accordingly and you can remove the ‘appium-version’ capability. It is no longer necessary to set ‘fullReset’ to ‘true’ to avoid the simulator starting twice.

capabilities: {,
        automationName: 'XCUITest',
        //fullReset: true,
        ...
    },

In order to run the WebDriverAgent bootstrap script you will need to install ‘Carthage’.

$ brew install carthage

If you do not have HomeBrew installed then run this command first.

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

If you have upgraded to macOS Sierra you may find that Xcode command line tools are not installed. Re-installing and running ‘appium-doctor’ will reveal this problem.

$ npm install appium-doctor $ node_modules/.bin/appium-doctor

You can install the Xcode command line tools from ‘appium-doctor’ or run.

$ xcode-select --install

One thought on “Xcode 8 UPDATE: Automated cross platform testing of iOS and Android hybrid Ionic/Cordova/Angular apps using Cucumber, Protractor, Chai and Appium

Leave a Reply