[XCUITest] TypeError: Cannot read property 'replace' of undefined [XCUITest] at replace (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/node-simctl/lib/simctl.js:382:61)

Environment:

  • Appium version (or git revision) that exhibits the issue: 1.13.0
  • Last Appium version that did not exhibit the issue (if applicable): N/A
  • Desktop OS/version used to run Appium: macOS Mojave, iOS Simulator
  • Node.js version (unless using Appium.app|exe): v10.15.3
  • Mobile platform/version under test: iOS 10.14.4
  • Real device or emulator/simulator: simulator
  • XCode : Version 10.2.1
  • Eclipse : Version: 2019-03 (4.11.0)

Log:

[Appium] Welcome to Appium v1.13.0

[Appium] Appium REST http interface listener started on 0.0.0.0:4723

[HTTP] --> POST /wd/hub/session

[HTTP] {“desiredCapabilities”:{“app”:"//Users⁩/⁨shyamyadav⁩/⁨Desktop⁩/UICatalog.app",“automationName”:“XCuiTest”,“platformName”:“iOS”,“deviceName”:“iPhone 6”,“newCommandTimeout”:“12000”},“capabilities”:{“firstMatch”:[{“appium:app”:"//Users⁩/⁨shyamyadav⁩/⁨Desktop⁩/UICatalog.app",“appium:automationName”:“XCuiTest”,“appium:deviceName”:“iPhone 6”,“appium:newCommandTimeout”:“12000”,“platformName”:“ios”}]}}

[W3C] Calling AppiumDriver.createSession() with args: [{“app”:"//Users⁩/⁨shyamyadav⁩/⁨Desktop⁩/UICatalog.app",“automationName”:“XCuiTest”,“platformName”:“iOS”,“deviceName”:“iPhone 6”,“newCommandTimeout”:“12000”},null,{“firstMatch”:[{“appium:app”:"//Users⁩/⁨shyamyadav⁩/⁨Desktop⁩/UICatalog.app",“appium:automationName”:“XCuiTest”,“appium:deviceName”:“iPhone 6”,“appium:newCommandTimeout”:“12000”,“platformName”:“ios”}]}]

[BaseDriver] Event ‘newSessionRequested’ logged at 1557994782988 (13:49:42 GMT+0530 (IST))

[BaseDriver] Number capability passed in as string. Functionality may be compromised.

[Appium] Appium v1.13.0 creating new XCUITestDriver (v2.113.2) session

[Appium] Capabilities:

[Appium] platformName: ios

[Appium] app: //Users⁩/⁨shyamyadav⁩/⁨Desktop⁩/UICatalog.app

[Appium] automationName: XCuiTest

[Appium] deviceName: iPhone 6

[Appium] newCommandTimeout: 12000

[BaseDriver] W3C capabilities {“alwaysMatch”:{“platformNa… and MJSONWP desired capabilities {“app”:”//Users⁩/⁨shyamyada… were provided

[BaseDriver] Creating session with W3C capabilities: {“alwaysMatch”:{"platformNa…

[BaseDriver] Number capability passed in as string. Functionality may be compromised.

[BaseDriver] Capability ‘newCommandTimeout’ changed from string (‘12000’) to integer (12000). This may cause unexpected behavior

[XCUITest] ‘platformVersion’ capability (‘undefined’) is not a valid version number. Consider fixing it or be ready to experience an inconsistent driver behavior.

[BaseDriver] Session created with session id: f4855a05-c397-4997-9c72-83474d6a2dda

[XCUITest] Current user: ‘shyamyadav’

[XCUITest] Simulator udid not provided

[XCUITest] Using desired caps to create a new simulator

[XCUITest] TypeError: Cannot read property ‘replace’ of undefined

[XCUITest] at replace (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/node-simctl/lib/simctl.js:382:61)

[BaseDriver] Event ‘newSessionStarted’ logged at 1557994783794 (13:49:43 GMT+0530 (IST))

[W3C] Encountered internal error running command: TypeError: Cannot read property ‘replace’ of undefined

[W3C] at replace (/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/node-simctl/lib/simctl.js:382:61)

[HTTP] <-- POST /wd/hub/session 500 808 ms - 716

Code:
File test = new File(“⁨src/”);

File app = new File(test, “UICatalog.app”);

DesiredCapabilities d= new DesiredCapabilities();

String s=app.getAbsolutePath();

System. out .println(s);

d.setCapability(MobileCapabilityType. APP , app.getAbsolutePath());

d.setCapability(MobileCapabilityType. DEVICE_NAME , “iPhone”);

d.setCapability(MobileCapabilityType. PLATFORM_NAME , “iOS”);

d.setCapability(MobileCapabilityType. PLATFORM_VERSION , “12.2”);

d.setCapability(MobileCapabilityType. AUTOMATION_NAME , AutomationName. IOS_XCUI_TEST );

//

d.setCapability(MobileCapabilityType. AUTOMATION_NAME , “XCUITest”);

d.setCapability(MobileCapabilityType. APP ,"//Users⁩/⁨shyamyadav⁩/⁨Desktop⁩/UICatalog.app");

d.setCapability(MobileCapabilityType. NEW_COMMAND_TIMEOUT , “20000”);

IOSDriver<IOSElement> driver= new IOSDriver<>( new URL(“http://127.0.0.1:4723/wd/hub”),d);