[iOS9 UIAutomation] What is Appium approach to UIAutomation deprecation by Apple

Hi Jonahss,

Can you please update on the Appium 1.6.0 release date with XCUITest support.

Thanks in Advance,
Venkat

1 Like

Hi,

I think there is a bug in appium-instruments for bin/xcode-iwd.sh.

It adds and sets environment variables including the word string for both DYLD_INSERT_LIBRARIES and LIB_PATH. If you edit the plist after running the shell script, the simulator will run without delay.

The resulting com.apple.instruments.deviceservice.plist includes:

<key>DYLD_INSERT_LIBRARIES</key>
<string>string ~/.nvm/versions/node/v6.3.1/lib/node_modules/appium-instruments/thirdparty/iwd7/DTMobileISShim.dylib</string>
<key>LIB_PATH</key>
<string>string ~/.nvm/versions/node/v6.3.1/lib/node_modules/appium-instruments/thirdparty/iwd7/</string>

when it should be:

<key>DYLD_INSERT_LIBRARIES</key>
<string>~/.nvm/versions/node/v6.3.1/lib/node_modules/appium-instruments/thirdparty/iwd7/DTMobileISShim.dylib</string>
<key>LIB_PATH</key>
<string>~/.nvm/versions/node/v6.3.1/lib/node_modules/appium-instruments/thirdparty/iwd7/</string>

Here is a script to test it:

#!/usr/bin/env bash

nvm install node
nvm alias default node
nvm use node

node_version=$(node --version)

npm install -g appium
npm install -g wd
npm install -g appium-instruments

xcode_path=“/Applications/Xcode.app”
appium_instruments_path=“$HOME/.nvm/versions/node/$node_version/lib/node_modules/appium-instruments”

sh “${appium_instruments_path}/bin/xcode-iwd.sh” “$xcode_path” “${appium_instruments_path}”

I’ve submitted a Pull Request #77 to appium-instruments to fix this. https://github.com/appium/appium-instruments

nice find @Russ - I applied your change locally and now testing on sim is really fast

1 Like

Pull Request #77 has been merged.

@Venkat I can see in npm that there is now an appium 1.6.0-beta1 version available

Does this work with all versions of iOS?

Are we have to waiting for new client (java client, python client, etc.) for full support of iOS 10 on real devices?

1 Like

any update on this @jonahss? Id love to be able to move on to xcode 8 and ios 10 but no support of xcuitest is holding the team back. I can’t let them release until test coverage is back up.

1 Like

@jonahss what is the expected date to release Appium 1.6 goldmaster?

1 Like

Hey @farnett did you get XCUItest working for your tests? Any work around for null sessionID issue?
Also did you run your tests on real devices?

@farnett’s issue was when using version 1.0.0 and 1.0.1. The current version is 2.0.16 and I do not believe the null sessionID has been a problem for any of the 2.x versions.

Thanks for the reply @Tree . I was using Appium 1.6Beta1 where i got the error.
Switched to Appium 1.6beta2 ,looks good now. And able to run my tests on Real iOS device(9.x)

Is Appium 1.6beta2 the latest available on npm? Any idea if they have realsed newer Betas?

Last I checked latest was 1.6.0 Beta 1 so beta 2 must have just been released in last few days

also if you want to see all available versions you can try this
npm view appium versions -json

1 Like

Thanks @Tree for this.

Does Appium 1.6.0Beta2 support Webview automation yet? Hybrid App Automation?
Any idea guys? Right now i am getting this error while conecting through ios-debug-proxy
Error:
Could not connect to lockdownd. Exiting.: Broken pipe
Unable to attach 7e4db10a24944189f626dc90cddf4fe3fa28099e inspector

For iOS10.0.1

Could not connect to lockdownd
I have see an error like this with Appium 1.5.3 also. Seems like a file permission problem for ideviceinstaller.
Changing the file permission (sudo chmod -R 777 /var/db/lockdown/) as suggested in this thread ideviceinstaller fails with "Could not connect to lockdownd. Exiting." · Issue #48 · libimobiledevice/ideviceinstaller · GitHub worked for me but only as a tempaorary fix. As something changes it back and tests start failing again. I haven’t found a permanent fix yet. This has only been a problem for us on one of our automation macs.

There seem to be a few different problems with lockdownd so maybe try installing you app manually using ideviceinstaller and inspect the message for the error code in case yours is a different problem

ideviceinstaller -u yourUDID -i path/to/your/app

@Tree
Thanks for that.
Did some checks and thought of updating the dependencies.
This fixed it for me ultimately:
brew uninstall libimobiledevice && brew install --HEAD libimobiledevice
I needed to update my libmobiledevice to the latest available version as i was working on iOS 10.0.

Looks awesome!

We’re using Appium 1.4.16 with iOS 8.x/9.x versions and with Android 4.4/5.1/Marshmallow stuff. The apps we automate are moving to iOS 10.x and need to support them too.

Is there a step by step documentation for what needs to be done to upgrade from Appium 1.4.x to Appium 1.6 beta 2 (support for physical devices running on iOS 10.x) while also support the earlier versions of iOS. I also read that the desired capabilities has changed beginning with Appium 1.6.

Please advise.

Thanks.