Trouble with running Appium on iOS (probably ideviceinstaller)

Hi!

I am installing Appium on a MacBook Pro and I am having a huge difficulty to make that first run.

Info about the softwares:

macOS Sierra 10.12.4
Appium 1.5.3 && Appium 1.6.3
Xcode 8.3 && Xcode 7.3.1
Eclipse Neon 4.6.3

using java-client-5.0.0-BETA6.jar

All other installations have been done as it is stated here:

and also have tried following this:
https://appium.io/slate/en/tutorial/ios.html?ruby#

This is the capabilities I am configuring:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“deviceName”, “iPhone 5s”);
capabilities.setCapability(“platformName”, “iOS”);
capabilities.setCapability(“platformVersion”, “9.3”);
capabilities.setCapability(“app”, “/Users/everis/Natura/Payload/Natura Mobile.app”);
//capabilities.setCapability(“app”, “/Users/everis/Natura.ipa”);
//capabilities.setCapability(“udid”,“6c579511d11dec34152091fcf92e047995f4d602”);
capabilities.setCapability(“udid”,“E065292A-F1B9-43EB-AA94-BD88E27B85AA”);
//capabilities.setCapability(“automationName”, “XCUITest”);
capabilities.setCapability(“bundleId”, “net.natura.meunegocio”);
capabilities.setCapability(“name”, “Script”);
try {
///wd/hub
IOSDriver driver = new IOSDriver(new URL(“http://127.0.0.1:4724/wd/hub”), capabilities);
System.out.println(“ok!!!”);
driver.quit();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

This is the Appium log:

[HTTP] → POST /wd/hub/session {“capabilities”:[{“desiredCapabilities”:{“app”:“/Users/everis/Natura/Payload/Natura Mobile.app”,“platformVersion”:“9.3”,“bundleId”:“net.natura.meunegocio”,“name”:“Script”,“platformName”:“iOS”,“udid”:“E065292A-F1B9-43EB-AA94-BD88E27B85AA”,“deviceName”:“iPhone 5s”}},{“requiredCapabilities”:{}}],“desiredCapabilities”:{“app”:“/Users/everis/Natura/Payload/Natura Mobile.app”,“platformVersion”:“9.3”,“bundleId”:“net.natura.meunegocio”,“name”:“Script”,“platformName”:“iOS”,“udid”:“E065292A-F1B9-43EB-AA94-BD88E27B85AA”,“deviceName”:“iPhone 5s”},“requiredCapabilities”:{}}

[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”]} and you sent [“capabilities”,“desiredCapabilities”,“requiredCapabilities”]

[HTTP] ← POST /wd/hub/session 400 1 ms - 1221
[HTTP] → POST /wd/hub/session {“desiredCapabilities”:{“app”:“/Users/everis/Natura/Payload/Natura Mobile.app”,“platformVersion”:“9.3”,“bundleId”:“net.natura.meunegocio”,“name”:“Script”,“platformName”:“iOS”,“udid”:“E065292A-F1B9-43EB-AA94-BD88E27B85AA”,“deviceName”:“iPhone 5s”},“requiredCapabilities”:{}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{“app”:"/Users/everis/Natu…
[Appium] Creating new IosDriver session
[Appium] Capabilities:
[Appium] app: ‘/Users/everis/Natura/Payload/Natura Mobile.app’
[Appium] platformVersion: ‘9.3’
[Appium] bundleId: ‘net.natura.meunegocio’
[Appium] name: ‘Script’
[Appium] platformName: ‘iOS’
[Appium] udid: ‘E065292A-F1B9-43EB-AA94-BD88E27B85AA’
[Appium] deviceName: ‘iPhone 5s’
[Appium] fullReset: true
[Appium] showIOSLog: true

[iOS] Could not remove ‘net.natura.meunegocio’ from device

[BaseDriver] The following capabilities were provided, but are not recognized by appium: name.
[BaseDriver] Session created with session id: 0c84692a-800a-4c3b-bb27-03f510319b82
[debug] [iOS] Not auto-detecting udid.
[BaseDriver] Using local app ‘/Users/everis/Natura/Payload/Natura Mobile.app’
[debug] [iOS] Removing any remaining instruments sockets
[debug] [iOS] Cleaned up instruments socket /var/folders/fb/gzv556c16x38mzt_v30_c1m00000gp/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’!
[debug] [iOS] Creating instruments
[debug] [UIAuto] Preparing bootstrap code
[debug] [UIAuto] Dynamic bootstrap dir: /Users/everis/Library/Application Support/appium/bootstrap
[debug] [UIAuto] Dynamic env: {“nodePath”:“/private/var/folders/fb/gzv556c16x38mzt_v30_c1m00000gp/T/AppTranslocation/05857A32-3249-4B28-94A0-AF7A4E6A6140/d/Appium.app/Contents/Resources/node/bin/node”,“commandProxyClientPath”:“/private/var/folders/fb/gzv556c16x38mzt_v30_c1m00000gp/T/AppTranslocation/05857A32-3249-4B28-94A0-AF7A4E6A6140/d/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-ios-driver/node_modules/appium-uiauto/build/lib/bin/command-proxy-client.js”,“instrumentsSock”:“/var/folders/fb/gzv556c16x38mzt_v30_c1m00000gp/T/instruments_sock”,“interKeyDelay”:null,“justLoopInfinitely”:false,“autoAcceptAlerts”:false,“autoDismissAlerts”:false,“sendKeyStrategy”:“grouped”}
[debug] [UIAuto] Dynamic bootstrap code: // This file is automatically generated. Do not manually modify!

[debug] [UIAuto] Dynamic bootstrap path: /Users/everis/Library/Application Support/appium/bootstrap/bootstrap-d140427b08cc6d95.js
[debug] [UIAuto] Reusing dynamic bootstrap: /Users/everis/Library/Application Support/appium/bootstrap/bootstrap-d140427b08cc6d95.js
[debug] [iOS] Running ios real device reset flow
[debug] [iOS] Full reset requested. Will try to uninstall the app ‘net.natura.meunegocio’.
[debug] [iOS] Creating iDevice object with udid E065292A-F1B9-43EB-AA94-BD88E27B85AA

[MJSONWP] Encountered internal error running command: Error: Command failed: ideviceinstaller -u E065292A-F1B9-43EB-AA94-BD88E27B85AA -U net.natura.meunegocio

at ChildProcess.exithandler (child_process.js:202:12)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:850:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)

[HTTP] ← POST /wd/hub/session 500 31 ms - 236
[HTTP] → POST /wd/hub/session {“capabilities”:[{“desiredCapabilities”:{“app”:“/Users/everis/Natura/Payload/Natura Mobile.app”,“platformVersion”:“9.3”,“bundleId”:“net.natura.meunegocio”,“name”:“Script”,“platformName”:“iOS”,“udid”:“E065292A-F1B9-43EB-AA94-BD88E27B85AA”,“deviceName”:“iPhone 5s”}},{“requiredCapabilities”:{}}]}
[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”,“sessionId”,“id”]} and you sent [“capabilities”]
[HTTP] ← POST /wd/hub/session 400 1 ms - 1210

When I run with iOS greater than 10, I pass this part, but when it tries to launch the application it automatically closes without any error besides saying it couldn’t launch the application, so that is why I was trying to run this on Appium 1.5.3 with Xcode 7.3.1

Before I have tried Appium 1.6.3 on Xcode 8.3 with XCUITest, but without any success, I am grarteful already for any help on this subject.

When running with a Simulator, don’t pass the udid capability. You can always tell a Simulator udid because it contains dashes (‘-’). ideviceinstaller can only install on real devices. When you only pass the name of the Simulator it will use ‘xcrun simctl’ to install.

1 Like

Oh, Thanks a lot friend! :slight_smile:

Now it is working!

Check Configuring iOS Real Device Tests: Xcode 8 and iOS 9.3 and above
https://github.com/appium/appium/blob/master/docs/en/appium-setup/real-devices-ios.md

The reason app not launch at your end is due to ideviceinstaller is not supported for iOS 10 and above. You need to install ios-deploy.

Use below command
npm install -g ios-deploy