如何修复 Appium 中的错误 "Could not detect Mac OS X Version from sw_vers output: '10.12 '"

How to fix error "Could not detect Mac OS X Version from sw_vers output: '10.12 '" from Appium

我安装了 appium-1.5。3.dmg 但是当我点击听诊器按钮时,Appium 显示错误:

 ✔ Xcode is installed at: /Library/Developer/CommandLineTools
[Error: Could not detect Mac OS X Version from sw_vers output: '10.12
']

谢谢!

对我有用。

您可以通过此命令配置文件:

  • grep -rl "Could not detect Mac OS X Version from sw_vers output:" /Applications/Appium.app/

  • 终端会显示: /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/build/lib/system.js /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/lib/system.js /Applications/Appium.app//Contents/Resources/node_modules/appium-support/build/lib/system.js /Applications/Appium.app//Contents/Resources/node_modules/appium-support/lib/system.js

  • 使用命令vim并配置每个文件。

例子

vim /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/build/lib/system.js

配置文件:

  1. 更改自 ->

    case 10: _arr = ['10.8', '10.9', '10.10', '10.11']; _i = 0;

    至 ->

    case 10: _arr = ['10.8', '10.9', '10.10', '10.11','10.12']; _i = 0;


vim /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/lib/system.js

配置文件:

  1. 更改自 ->

    try { stdout = (await exec('sw_vers', ['-productVersion'])).stdout; }

    至 ->

    try { stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim(); }

  2. 更改自 ->

    for (let v of ['10.8', '10.9', '10.10', '10.11']) { if (stdout.indexOf(v) === 0) { return v; } }

    至 ->

    for (let v of ['10.8', '10.9', '10.10', '10.11','10.12']) { if (stdout.indexOf(v) === 0) { return v; } }


vim /Applications/Appium.app//Contents/Resources/node_modules/appium-support/build/lib/system.js

配置文件:

  1. 更改自 ->

    case 10: _arr = ['10.8', '10.9', '10.10', '10.11']; _i = 0;

    至 ->

    case 10: _arr = ['10.8', '10.9', '10.10', '10.11','10.12']; _i = 0;


vim /Applications/Appium.app//Contents/Resources/node_modules/appium-support/lib/system.js

配置文件:

  1. 更改自 ->

    try { stdout = (await exec('sw_vers', ['-productVersion'])).stdout; }

    至 ->

    try { stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim(); }

  2. 更改自 ->

    for (let v of ['10.8', '10.9', '10.10', '10.11']) { if (stdout.indexOf(v) === 0) { return v; } }

    至 ->

    for (let v of ['10.8', '10.9', '10.10', '10.11','10.12']) { if (stdout.indexOf(v) === 0) { return v; } }

点击启动听诊器按钮

尽管我看到 appium 已经 fixed 了,但我还是完成了上述步骤。

就运行:

npm install appium-doctor -g

更新appium-doctor本身,然后运行:

appium-doctor

再次查看它是否有效。

修复前后: