WebdriverIO Appium Real device iOS automated testing

I’m using Webdriver.io framework and trying to perform automation on iPhone 6s(real device) but Appium is not able to connect to real device and shows error message “Invalid device”.
WDIO config for iOS
browserName: ‘ios’,
app: ‘/Users//Downloads/PlanWork.ipa.ipa’,
automationName: ‘XCUITest’,
uuid: ‘12123767b192c07b62757f8b486658cffd7fa4d3’,
platformName: ‘iOS’,
platformVersion: 12.1,
deviceName:‘12123767b192c07b62757f8b486658cffd7fa4d3’,
platform: ‘ios’

Appium Logs -

The server is running
[Appium] Welcome to Appium v1.10.0
[Appium] Non-default server args:
[Appium] address: 127.0.0.1
[Appium] port: 9500
[Appium] sessionOverride: true
[Appium] chromedriverExecutable: /Users//Downloads/chromedriver
[Appium] Appium REST http interface listener started on 127.0.0.1:9500
[HTTP] --> POST /wd/hub/session
[HTTP] {“desiredCapabilities”:{“javascriptEnabled”:true,“locationContextEnabled”:true,“handlesAlerts”:true,“rotatable”:true,“browserName”:“ios”,“app”:"/Users//Downloads/PlanWork.ipa.ipa",“automationName”:“XCUITest”,“uuid”:“12123767b192c07b62757f8b486658cffd7fa4d3”,“platformName”:“iOS”,“platformVersion”:12.1,“deviceName”:“12123767b192c07b62757f8b486658cffd7fa4d3”,“platform”:“ios”,“requestOrigins”:{“url”:“http://webdriver.io”,“version”:“4.6.2”,“name”:“webdriverio”}}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{“javascriptEnabled”:true,“locationContextEnabled”:true,“handlesAlerts”:true,“rotatable”:true,“browserName”:“ios”,“app”:"/Users//Downloads/PlanWork.ipa.ipa",“automationName”:“XCUITest”,“uuid”:“12123767b192c07b62757f8b486658cffd7fa4d3”,“platformName”:“iOS”,“platformVersion”:12.1,“deviceName”:“12123767b192c07b62757f8b486658cffd7fa4d3”,“platform”:“ios”,“xcodeOrgId”:“ABC”,“xcodeSigningId”:“iPhone Developer”,“requestOrigins”:{“url”:“http://webdriver.io”,“version”:“4.6.2”,“name”:“webdriverio”}},null,null]
[BaseDriver] Event ‘newSessionRequested’ logged at 1544468350526 (12:59:10 GMT-0600 (CST))
[Appium] Creating new XCUITestDriver (v2.104.0) session
[Appium] Capabilities:
[Appium] javascriptEnabled: true
[Appium] locationContextEnabled: true
[Appium] handlesAlerts: true
[Appium] rotatable: true
[Appium] browserName: ios
[Appium] app: /Users//Downloads/PlanWork.ipa
[Appium] automationName: XCUITest
[Appium] uuid: 12123767b192c07b62757f8b486658cffd7fa4d3
[Appium] platformName: iOS
[Appium] platformVersion: 12.1
[Appium] deviceName: 12123767b192c07b62757f8b486658cffd7fa4d3
[Appium] platform: ios
[Appium] xcodeOrgId: ABC
[Appium] xcodeSigningId: iPhone Developer
[Appium] requestOrigins: {
[Appium] url: http://webdriver.io
[Appium] version: 4.6.2
[Appium] name: webdriverio
[Appium] }
[BaseDriver] Creating session with MJSONWP desired capabilities: {“javascriptEnabled”:true,"…
[BaseDriver] The following capabilities were provided, but are not recognized by appium: javascriptEnabled, locationContextEnabled, handlesAlerts, rotatable, uuid, platform, requestOrigins.
[XCUITest] The capabilities should generally not include both an ‘app’ and a ‘browserName’
[BaseDriver] Session created with session id: 14c72676-26eb-4fef-a1a5-52e3e6700a3f
[XCUITest] Current user: ‘r0s00z6’
[XCUITest] Simulator udid not provided, using desired caps to create a new simulator
[simctl] Creating simulator with name ‘appiumTest-12123767b192c07b62757f8b486658cffd7fa4d3’, device type id ‘12123767b192c07b62757f8b486658cffd7fa4d3’ and runtime id ‘12.1’
[simctl] Error: simctl error running ‘create’: Invalid device type: 12123767b192c07b62757f8b486658cffd7fa4d3
[simctl] at Object.wrappedLogger.errorAndThrow (/Applications/Appium.app/Contents/Resources/app/node_modules/appium-support/lib/logging.js:78:13)
[simctl] at /Applications/Appium.app/Contents/Resources/app/node_modules/node-simctl/lib/simctl.js:49:11
[simctl] at Generator.throw ()
[simctl] at asyncGeneratorStep (/Applications/Appium.app/Contents/Resources/app/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[simctl] at _throw (/Applications/Appium.app/Contents/Resources/app/node_modules/@babel/runtime/helpers/asyncToGenerator.js:29:9)
[simctl] at run (/Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/es6.promise.js:75:22)
[simctl] at /Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/es6.promise.js:92:30
[simctl] at flush (/Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/_microtask.js:18:9)
[simctl] at process._tickCallback (internal/process/next_tick.js:61:11)
[simctl] Error: Could not create simulator with name 'appiumTest-12123767b192c07b62757f8b486658cffd7fa4d3’, device type id ‘12123767b192c07b62757f8b486658cffd7fa4d3’ and runtime id ‘12.1’. Reason: 'simctl error running ‘create’: Invalid device type: 12123767b192c07b62757f8b486658cffd7fa4d3’
[simctl] at Object.wrappedLogger.errorAndThrow (/Applications/Appium.app/Contents/Resources/app/node_modules/appium-support/lib/logging.js:78:13)
[simctl] at /Applications/Appium.app/Contents/Resources/app/node_modules/node-simctl/lib/simctl.js:361:9
[simctl] at Generator.throw ()
[simctl] at asyncGeneratorStep (/Applications/Appium.app/Contents/Resources/app/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[simctl] at _throw (/Applications/Appium.app/Contents/Resources/app/node_modules/@babel/runtime/helpers/asyncToGenerator.js:29:9)
[simctl] at run (/Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/es6.promise.js:75:22)
[simctl] at /Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/es6.promise.js:92:30
[simctl] at flush (/Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/_microtask.js:18:9)
[simctl] at process._tickCallback (internal/process/next_tick.js:61:11)
[XCUITest] Error: Could not create simulator with name ‘appiumTest-12123767b192c07b62757f8b486658cffd7fa4d3’, device type id ‘12123767b192c07b62757f8b486658cffd7fa4d3’ and runtime id ‘12.1’. Reason: ‘simctl error running ‘create’: Invalid device type: 12123767b192c07b62757f8b486658cffd7fa4d3’
[XCUITest] at Object.wrappedLogger.errorAndThrow (/Applications/Appium.app/Contents/Resources/app/node_modules/appium-support/lib/logging.js:78:13)
[XCUITest] at /Applications/Appium.app/Contents/Resources/app/node_modules/node-simctl/lib/simctl.js:361:9
[XCUITest] at Generator.throw ()
[XCUITest] at asyncGeneratorStep (/Applications/Appium.app/Contents/Resources/app/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)
[XCUITest] at _throw (/Applications/Appium.app/Contents/Resources/app/node_modules/@babel/runtime/helpers/asyncToGenerator.js:29:9)
[XCUITest] at run (/Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/es6.promise.js:75:22)
[XCUITest] at /Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/es6.promise.js:92:30
[XCUITest] at flush (/Applications/Appium.app/Contents/Resources/app/node_modules/core-js/modules/_microtask.js:18:9)
[XCUITest] at process._tickCallback (internal/process/next_tick.js:61:11)

Try udid

For a full list of capabilities, see here:

http://appium.io/docs/en/writing-running-appium/caps/

Wreed, using udid worked little for me. Now, I’m getting following error:

[XCUITest] Sending createSession command to WDA
[JSONWP Proxy] Matched ‘/session’ to command name ‘createSession’
[JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:9221/session] with body: {“desiredCapabilities”:{“bundleId”:“packageName”,“arguments”:[],“environment”:{},“shouldWaitForQuiescence”:true,“shouldUseTestManagerForVisibilityDetection”:false,“maxTypingFrequency”:60,“shouldUseSingletonTestManager”:true}}
[Xcode] t = 16744.19s Open packageName
[Xcode]
[Xcode] t = 16744.19s Launch packageName
[Xcode]
[Xcode] 2018-12-10 17:48:49.718377-0600 WebDriverAgentRunner-Runner[19467:227582] Enqueue Failure: Failed to launch com.walmart.notes: The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 1.) /Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgentRunner/UITestingUITests.m 37 1

Are you sure that’s the bundle id of your app?

hi
@Ramandeep_Singh

im also getting same error with real device ipad 6th genration could u plz help to resolve

“desiredCapabilities”:{“javascriptEnabled”:true,“locationContextEnabled”:true,“handlesAlerts”:true,“rotatable”:true,“automationName”:“XCUITest”,“deviceName”:“Vignesh’s iPad”,“platformName”:“iOS”,“platformVersion”:“12.1.4”,“orientation”:“PORTRAIT”,“deviceType”:“tablet”,"_":“13 more keys: [“app”,“noReset”,“newCommandTimeout”,“unicodeKeyboard”,“udid”,“agentPath”,“resetKeyboard”,“xcodeOrgId”,“bootstrapPath”,“xcodeSigningId”,“autoWebView”,“startIWDP”,“requestOrigins”]”}}
ERROR: An unknown server-side error occurred while processing the command. Original error: Unknown device or simulator UDID: ‘c51aa54329c6c61513e9496b9911f587af4f25ac’
vignesh’sipad.ios.12_1_4.ncxcashregister_app
at new RuntimeError (/Users/vigneshb-c/Desktop/NCXLatest/Ordering-Automation/node_modules/webdriverio/build/lib/utils/ErrorHandler.js:143:12)
at Request._callback (/Users/vigneshb-c/Desktop/NCXLatest/Ordering-Automation/node_modules/webdriverio/build/lib/utils/RequestHandler.js:318:39)
at Request.self.callback (/Users/vigneshb-c/Desktop/NCXLatest/Ordering-Automation/node_modules/request/request.js:185:22)
at Request.emit (events.js:198:13)
at Request.EventEmitter.emit (domain.js:448:20)
at Request. (/Users/vigneshb-c/Desktop/NCXLatest/Ordering-Automation/node_modules/request/request.js:1161:10)
at Request.emit (events.js:198:13)
at Request.EventEmitter.emit (domain.js:448:20)
at IncomingMessage. (/Users/vigneshb-c/Desktop/NCXLatest/Ordering-Automation/node_modules/request/request.js:1083:12)
at Object.onceWrapper (events.js:286:20)

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] app.ios: wdio ./config/wdio.ios.app.conf.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] app.ios script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.