Appium测试 - “Sdk 9.3不在simctl sdks列表中”

时间:2016-12-14 16:27:01

标签: ios appium

我是一个linux devops的家伙被迫做苹果的东西而且我很丢失所有东西......

我正在尝试为iPad应用程序运行测试套件并且我一直收到此错误:“[XCUITest]错误:Sdk'9.3'不在simctl sdks列表中”。我知道这是一个缺失的依赖,我可能需要安装这个Sdk 9.3,但我真的不知道如何去做这个并且google完全没有帮助。

这是日志跟踪:

[11:01:58][Step 2/3] [Appium] Creating new XCUITestDriver session
[11:01:58][Step 2/3] [Appium] Capabilities:
[11:01:58][Step 2/3] [Appium]   app: '/Volumes/BuildData/teamcity/buildAgent/work/c715626955d98290/.qa_atom/REDACTED.app'
[11:01:58][Step 2/3] [Appium]   orientation: 'LANDSCAPE'
[11:01:58][Step 2/3] [Appium]   noReset: false
[11:01:58][Step 2/3] [Appium]   newCommandTimeout: 9000
[11:01:58][Step 2/3] [Appium]   realDeviceLogger: '/Users/REDACTED/projects'
[11:01:58][Step 2/3] [Appium]   platformVersion: '9.3'
[11:01:58][Step 2/3] [Appium]   automationName: 'XCUITEST'
[11:01:58][Step 2/3] [Appium]   platformName: 'iOS'
[11:01:58][Step 2/3] [Appium]   deviceName: 'iPad Air 2'
[11:01:58][Step 2/3] [Appium]   fullReset: false
[11:01:58][Step 2/3] [Appium]   nativeWebTap: true
[11:01:58][Step 2/3] [debug] [XCUITest] XCUITestDriver version: 2.3.0
[11:01:58][Step 2/3] [BaseDriver] Session created with session id: e9d0a596-854e-4dbd-997c-5d12d517e4c8
[11:01:58][Step 2/3] [debug] [XCUITest] Xcode version set to '8.0'
[11:01:59][Step 2/3] [debug] [XCUITest] iOS SDK Version set to '10.0'
[11:02:00][Step 2/3] [XCUITest] Error: Sdk '9.3' was not in list of simctl sdks
[11:02:00][Step 2/3]     at getDevices$ (lib/simctl.js:179:13)
[11:02:00][Step 2/3]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[11:02:00][Step 2/3]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[11:02:00][Step 2/3]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[11:02:00][Step 2/3]     at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[11:02:00][Step 2/3]     at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
[11:02:00][Step 2/3]     at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
[11:02:00][Step 2/3]     at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
[11:02:00][Step 2/3]     at nextTickCallbackWith0Args (node.js:452:9)
[11:02:00][Step 2/3]     at process._tickCallback (node.js:381:13)
[11:02:00][Step 2/3]  [Error: Sdk '9.3' was not in list of simctl sdks]
[11:02:00][Step 2/3] [debug] [XCUITest] Running iOS simulator reset flow
[11:02:00][Step 2/3] [MJSONWP] Encountered internal error running command: Error: Sdk '9.3' was not in list of simctl sdks
[11:02:00][Step 2/3]     at getDevices$ (lib/simctl.js:179:13)
[11:02:00][Step 2/3]     at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
[11:02:00][Step 2/3]     at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
[11:02:00][Step 2/3]     at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
[11:02:00][Step 2/3]     at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
[11:02:00][Step 2/3]     at run (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:108:47)
[11:02:00][Step 2/3]     at /usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/es6.promise.js:119:28
[11:02:00][Step 2/3]     at flush (/usr/local/lib/node_modules/appium/node_modules/core-js/library/modules/$.microtask.js:19:5)
[11:02:00][Step 2/3]     at nextTickCallbackWith0Args (node.js:452:9)
[11:02:00][Step 2/3]     at process._tickCallback (node.js:381:13)

2 个答案:

答案 0 :(得分:1)

我认为它就像打开Xcode一样简单,然后跳转到首选项以使用旧操作系统下载模拟器。 Xcode 8涉及ios 10. Xcode 7.3.x涉及ios 9.3

您可能还需要检查您的appium配置,以确保您不需要告诉它使用10.0而不是9.3。你的回购中的一个简单的grep应该可以帮助你找到

另一种解决方案是在https://developer.apple.com/download/从Apple下载xcode 7.3.1 然后,一旦安装它,请确保从终端执行xcode选择,如:

xcode-select -switch /path/to/new/Xcode.app/Contents/Developer/

然后它会在您重新运行测试时找到旧版本

答案 1 :(得分:1)

转到Xcode>>首选项>>组件>> iOS 10模拟器(或任何所需版本)。点击“检查并安装”#39;现在。这会将所选的iOS版本添加到您的simctl SDK列表中。