Appium 1.6.0 unable to install my IOS .app on real device: No sim found with udid

I get the below error when I try to install my IOS app on real device, using appium with java_client (4.1.2). For some reason it tries to install on a simulator (at least that what it looks like from the logs.)

Is there anything I’m missing? Below is what I see in the log.

/Alex

info AppiumDoctor Appium Doctor v.1.2.5
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor  ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor  ✔ Xcode Command Line Tools are installed.
info AppiumDoctor  ✔ DevToolsSecurity is enabled.
info AppiumDoctor  ✔ The Authorization DB is set up properly.
info AppiumDoctor  ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor  ✔ Carthage was found at: /usr/local/bin/carthage
info AppiumDoctor  ✔ HOME is set to: /Users/alexanderpoulikakos
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor 
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor 
[Appium] Welcome to Appium v1.6.0
[Appium] Non-default server args:
[Appium]   port: 20055
[Appium] Appium REST http interface listener started on 0.0.0.0:20055
[HTTP] --> GET /wd/hub/status {}
[MJSONWP] Calling AppiumDriver.getStatus() with args: []
[MJSONWP] Responding to client with driver.getStatus() result: {"build":{"version":"1.6.0"...
[HTTP] <-- GET /wd/hub/status 200 29 ms - 83 
[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"app":"/*********/my.app","platformName":"iOS","deviceName":"iPad (3)","fullReset":true,"platformVersion":"9.2"}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"/Users/alexanderpo...
[Appium] Creating new IosDriver session
[Appium] Capabilities:
[Appium]   app: '/******************/my.app'
[Appium]   platformName: 'iOS'
[Appium]   deviceName: 'iPad (3)'
[Appium]   fullReset: true
[Appium]   platformVersion: '9.2'
[BaseDriver] Session created with session id: f07b2c8b-14d1-459f-8d41-2f797313a58b
[debug] [iOS] Xcode version set to 7.3.1
[debug] [iOS] Not auto-detecting udid.
[BaseDriver] Using local app '/******************/my.app'
[debug] [iOS] Removing any remaining instruments sockets
[debug] [iOS] Cleaned up instruments socket /var/folders/f7/7x9ly9hx03vd9r1pl_rppl200000gp/T/instruments_sock
[debug] [iOS] Setting iOS SDK Version
[debug] [iOS] iOS SDK Version set to 9.3
[debug] [Instruments] Getting list of devices instruments supports
[debug] [Instruments] Instruments is at: /Applications/Xcode.app/Contents/Developer/usr/bin/instruments
[debug] [Instruments] Available devices: iPad (3) (9.2) [73e0249e89baa62aedcb0372afe7048debf492a6],Apple TV 1080p (9.2) [716A9793-2C75-4F0E-B428-E09327174AAD] (Simulator),iPad 2 (9.3) [16E8F890-AA8A-4058-8569-44C67020A999] (Simulator),iPad Air (9.3) [8BD4DFC9-15A7-4E09-A111-98D6F74A079D] (Simulator),iPad Air 2 (9.3) [4221A047-57AE-4540-B285-A8449AF5DDD6] (Simulator),iPad Pro (9.3) [AFC6C6EB-85AB-4470-A232-ABF0137C6372] (Simulator),iPad Retina (9.3) [9061EA80-464A-4E78-BEAF-BA9DC180EE60] (Simulator),iPhone 4s (9.3) [7E54CA35-CA47-45BB-8636-061C3063C89A] (Simulator),iPhone 5 (9.3) [4F51A194-C301-45EF-875A-75A5CC1219A8] (Simulator),iPhone 5s (9.3) [F66569F6-0C86-4BE0-9E03-A2E0D19D1CDB] (Simulator),iPhone 6 (9.3) [68561860-9DCB-4CEC-843F-FBC294831DA0] (Simulator),iPhone 6 Plus (9.3) [46475135-553E-4F36-B5D0-E801734BCBE8] (Simulator),iPhone 6s (9.3) [4D493C1A-EF17-4AA9-9282-38CBBE92A292] (Simulator),iPhone 6s (9.3) + Apple Watch - 38mm (2.2) [10F2C96D-DA57-4326-B442-11115959BBFF] (Simulator),iPhone 6s Plus (9.3) [65C104FA-8BEB-42A2-AE56-80B65854E3E2] (Simulator),iPhone 6s Plus (9.3) + Apple Watch - 42mm (2.2) [B8985BDD-B852-4EE9-A8C3-A04EFD8C4430] (Simulator)
[debug] [iOS] Checking whether our device string is supported
[iOSSim] Retrieving device name string for Xcode version 7.3.1
[debug] [iOSSim] Getting device string from options: {"deviceName":"iPad (3)","platformVersion":"9.2","forceIphone":false,"forceIpad":false}
[debug] [iOSSim] Final device string is 'iPad (3) (9.2)'
[debug] [iOS] iOS sim UDID is 73e0249e89baa62aedcb0372afe7048debf492a6
[MJSONWP] Encountered internal error running command: Error: No sim found with udid 73e0249e89baa62aedcb0372afe7048debf492a6
    at getSimulator$ (lib/simulator.js:25:11)
    at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
    at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
    at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)
[HTTP] <-- POST /wd/hub/session 500 1446 ms - 200 
Exception in thread "main" org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: No sim found with udid 73e0249e89baa62aedcb0372afe7048debf492a6 (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 4.25 seconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: '*******', ip: '*********', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_72'
Driver info: io.appium.java_client.ios.IOSDriver
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
	at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:40)
	at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
	at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
	at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:36)
	at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:114)
	at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:145)
	at io.appium.java_client.ios.IOSDriver.<init>(IOSDriver.java:108)

I have tried with v1.6.1-beta as well. Same result.

Can you also paste the full list of your deviceCapabilities from your code?

I’m not seeing the udid argument being passed to Appium based on:

[Appium] Creating new IosDriver session
[Appium] Capabilities:
[Appium]   app: '/******************/my.app'
[Appium]   platformName: 'iOS'
[Appium]   deviceName: 'iPad (3)'
[Appium]   fullReset: true
[Appium]   platformVersion: '9.2'
[BaseDriver] Session created with....

I have set the capabilities as described in first example here. For simplicity I also include the example below.

File app  = new File("The absolute or relative path to an *.app, *.zip or ipa file");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "The_target_version");
//The_target_version is the supported iOS version, e.g. 8.1, 8.2, 9.2 etc
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
//you are free to set additional capabilities 
AppiumDriver<MobileElement> driver = new IOSDriver<>(
new URL("http://target_ip:used_port/wd/hub"), //if it needs to use locally started server
//then the target_ip is 127.0.0.1 or 0.0.0.0
//the default port is 4723
capabilities);

The values I set are included in the log (in first post). The example does not mention anything about including UDID, so I have not included it.

From this line in the log it looks like appium can findout the UDID (73e0249e89baa62aedcb0372afe7048debf492a6) automatically.

[debug] [Instruments] Available devices: iPad (3) (9.2) [73e0249e89baa62aedcb0372afe7048debf492a6],Apple TV 1080p (9.2) [716A9793-2C75-4F0E-B428-E09327174AAD] (Simulator),iPad 2 (9.3) [16E8F890-AA8A-4058-8569-44C67020A999] (Simulator),iPad Air (9.3) [8BD4DFC9-15A7-4E09-A111-98D6F74A079D] (Simulator),iPad Air 2 (9.3) [4221A047-57AE-4540-B285-A8449AF5DDD6] (Simulator),iPad Pro (9.3) [AFC6C6EB-85AB-4470-A232-ABF0137C6372] (Simulator),iPad Retina (9.3) [9061EA80-464A-4E78-BEAF-BA9DC180EE60] (Simulator),iPhone 4s (9.3) [7E54CA35-CA47-45BB-8636-061C3063C89A] (Simulator),iPhone 5 (9.3) [4F51A194-C301-45EF-875A-75A5CC1219A8] (Simulator),iPhone 5s (9.3) [F66569F6-0C86-4BE0-9E03-A2E0D19D1CDB] (Simulator),iPhone 6 (9.3) [68561860-9DCB-4CEC-843F-FBC294831DA0] (Simulator),iPhone 6 Plus (9.3) [46475135-553E-4F36-B5D0-E801734BCBE8] (Simulator),iPhone 6s (9.3) [4D493C1A-EF17-4AA9-9282-38CBBE92A292] (Simulator),iPhone 6s (9.3) + Apple Watch - 38mm (2.2) [10F2C96D-DA57-4326-B442-11115959BBFF] (Simulator),iPhone 6s Plus (9.3) [65C104FA-8BEB-42A2-AE56-80B65854E3E2] (Simulator),iPhone 6s Plus (9.3) + Apple Watch - 42mm (2.2) [B8985BDD-B852-4EE9-A8C3-A04EFD8C4430] (Simulator)

Is it necessary to include the UDID as well? I will try including it tomorrow morning.

Is it correct to set: deviceName: 'iPad (3)' ?

I added the UDID capability and got a different error this time. See log below. It complains about missing Info.plist. I checked and the file is there.

-rw-r--r-- 1 alexanderpoulikakos staff 4016 Nov 16 12:40 Info.plist

What can be the problem?

/Alex

info AppiumDoctor Appium Doctor v.1.2.5
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor  ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
info AppiumDoctor  ✔ Xcode Command Line Tools are installed.
info AppiumDoctor  ✔ DevToolsSecurity is enabled.
info AppiumDoctor  ✔ The Authorization DB is set up properly.
info AppiumDoctor  ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor  ✔ Carthage was found at: /usr/local/bin/carthage
info AppiumDoctor  ✔ HOME is set to: /Users/alexanderpoulikakos
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor 
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor 
[Appium] Welcome to Appium v1.6.1-beta
[Appium] Non-default server args:
[Appium]   address: '127.0.0.1'
[Appium]   port: 4830
[Appium] Appium REST http interface listener started on 127.0.0.1:4830
[HTTP] --> GET /wd/hub/status {}
[debug] [MJSONWP] Calling AppiumDriver.getStatus() with args: []
[debug] [MJSONWP] Responding to client with driver.getStatus() result: {"build":{"version":"1.6.1-beta","revision":null}}
[HTTP] <-- GET /wd/hub/status 200 24 ms - 88 
[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"app":"/*************/my.app","udid":"73e0249e89baa62aedcb0372afe7048debf492a6","platformName":"iOS","deviceName":"IPhone","platformVersion":"9.2"}}
[debug] [MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"/****************/my.app","udid":"73e0249e89baa62aedcb0372afe7048debf492a6","platformName":"iOS","deviceName":"IPhone","platformVersion":"9.2"},null,null,null,null]
[Appium] Creating new IosDriver session
[Appium] Capabilities:
[Appium]   app: '/**************/my.app'
[Appium]   udid: '73e0249e89baa62aedcb0372afe7048debf492a6'
[Appium]   platformName: 'iOS'
[Appium]   deviceName: 'IPhone'
[Appium]   platformVersion: '9.2'
[debug] [iOS] IosDriver version: 1.12.32
[BaseDriver] Session created with session id: 160d4f9a-4758-4bde-8c49-345ae10e034c
[debug] [iOS] Xcode version set to 7.3.1
[debug] [iOS] Not auto-detecting udid.
[BaseDriver] Using local app '/**************/my.app'
[debug] [iOS] Removing any remaining instruments sockets
[debug] [iOS] Cleaned up instruments socket /var/folders/f7/7x9ly9hx03vd9r1pl_rppl200000gp/T/instruments_sock
[debug] [iOS] No language specified. Using default strings
[debug] [iOS] Strings file not found. Looking in 'en.lproj' directory
[iOS] Could not file localizable strings file 'Localizable.strings'!
[Support] Error: Plist file doesn't exist: '/****************/my.app/Info.plist'
    at Object.wrappedLogger.errorAndThrow (lib/logger.js:60:13)
    at Object.parsePlistFile$ (../../lib/plist.js:22:11)
    at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
    at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
    at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)
 [Error: Plist file doesn't exist: '/**************/my.app/Info.plist']
[ios-app-utils] Error: Could not extract Info.plist from application: Plist file doesn't exist: '/***************/my.app/Info.plist'
    at Object.wrappedLogger.errorAndThrow (lib/logger.js:60:13)
    at extractPlist$ (../../lib/extract.js:14:9)
    at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
    at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
    at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)
 [Error: Could not extract Info.plist from application: Plist file doesn't exist: '/**************/my.app/Info.plist']
[iOS] Could not set the bundleId from app.
[MJSONWP] Encountered internal error running command: Error: Could not extract Info.plist from application: Plist file doesn't exist: '/***************/my.app/Info.plist'
    at Object.wrappedLogger.errorAndThrow (lib/logger.js:60:13)
    at extractPlist$ (../../lib/extract.js:14:9)
    at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as throw] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
    at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
    at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)
[HTTP] <-- POST /wd/hub/session 500 102 ms - 381 
Exception in thread "main" org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not extract Info.plist from application: Plist file doesn't exist: '/Users/alexanderpoulikakos/git/automato/Users/alexanderpoulikakos/git/papapear/mobile/projects/PapaPearSaga_iPhoneOSAutomation/Debug-iphoneos/papapearsaga.app/Info.plist' (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 3.90 seconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'STOLTM0859.local', ip: '172.19.13.79', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_72'
Driver info: io.appium.java_client.ios.IOSDriver
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
	at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:40)
	at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
	at io.appium.java_client.ios.IOSDriver.execute(IOSDriver.java:1)
	at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
	at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
	at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:36)
	at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:114)
	at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:145)
	at io.appium.java_client.ios.IOSDriver.<init>(IOSDriver.java:108)

you trying install APP file on Real device? in mine understanding APP - Simulator, IPA - Real device.

yes, real device.
.app has previously worked for read device as well.

Just noticed my path to my app was wrong (used relative path). I corrected that and now get next problem. See below. Need to look into why java_client can not find ideviceinstaller. Could be I’m missing setting correct Environment…

[debug] [iOS] Creating iDevice object with udid 73e0249e89baa62aedcb0372afe7048debf492a6
[debug] [iOS] Couldn't find ideviceinstaller, trying built-in at /usr/local/lib/node_modules/appium/node_modules/build/libimobiledevice-macosx/ideviceinstaller
[iOS] Could not initialize ideviceinstaller; make sure it is installed and works on your system
[MJSONWP] Encountered internal error running command: Error: Could not initialize ideviceinstaller; make sure it is installed and works on your system
    at IosDriver.getIDeviceObj (../../lib/driver.js:410:15)
    at IosDriver.get (../../lib/driver.js:640:49)
    at IosDriver.startRealDevice$ (../../lib/driver.js:337:34)
    at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
    at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
    at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
    at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
    at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
    at nextTickCallbackWith0Args (node.js:452:9)
    at process._tickCallback (node.js:381:13)

brew install ideviceinstaller
npm install -g ios-deploy

more to read - https://github.com/appium/appium-xcuitest-driver

if you are specifying iOS version less than 9.3.5 it is recommended to use Appium V1.6

I already have ideviceinstaller installed.

Solvede my problem :slight_smile:
My problem was, when starting Eclipse from the dock (or search window, or Finder), OSX doe snot propagate the env PATH from my user settings. See more here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=490816

so PATH in eclipse looked like this: /usr/bin:/bin:/usr/sbin:/sbin
and brew installs apps in /usr/local/bin (or actually adds symlinks in that folder). Hence ideviceinstaller could not be found.

So I added something like this when configuring the AppiumServiceBuilder:

	Map<String, String> env = new HashMap<>(System.getenv());
	env.put("PATH", "/usr/local/bin:" + env.get("PATH"));
	AppiumServiceBuilder serviceBuilder = new AppiumServiceBuilder().withEnvironment(env);

Now it works.