问题分析: 根据错误信息"ECONNREFUSED",可以推断出连接被拒绝的原因是因为XCUITest服务未启动。造成这个问题的原因可能是Xcode版本不兼容或者设备连接问题。
解决方法:
确保Xcode版本兼容:首先确认使用的Xcode版本是否与Appium和XCUITest相兼容。可以查看Appium官方文档或者Appium GitHub仓库的文档,找到与Xcode版本兼容的Appium和XCUITest版本。
确保设备连接正常:使用命令xcrun simctl list
来查看连接的模拟器和真机列表。确保设备处于可用状态,并且设备的UDID与Appium配置文件中的UDID一致。
检查Appium配置文件:确保Appium配置文件中的相关参数正确配置,比如platformName
、deviceName
、automationName
等。
检查Appium服务启动命令:在启动Appium服务时,可以指定--webdriveragent-port
参数来指定XCUITest服务的端口。确保端口号与Appium配置文件中的wdaLocalPort
参数一致。
以下是一个示例的Appium配置文件:
{
"platformName": "iOS",
"platformVersion": "14.5",
"deviceName": "iPhone 12",
"app": "/path/to/your/app",
"automationName": "XCUITest",
"udid": "your_device_udid",
"wdaLocalPort": 8100
}
在启动Appium服务时,可以使用以下命令:
appium --webdriveragent-port 8100
通过以上方法,可以解决"appium - XCUITest 不总是启动,报错为 ECONNREFUSED"的问题。如果问题仍然存在,可以尝试重新安装Xcode和Appium,或者查看Appium和Xcode的错误日志以获取更多的信息。