【问题标题】:How to fix error "Could not detect Mac OS X Version from sw_vers output: '10.12 '" from Appium如何修复来自 Appium 的错误“无法从 sw_vers 输出检测 Mac OS X 版本:'10.12'”
【发布时间】:2017-02-28 23:59:17
【问题描述】:

我安装了 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
']

谢谢!

【问题讨论】:

    标签: android automated-tests appium


    【解决方案1】:

    它对我有用。

    你可以通过这个命令配置文件:

    • grep -rl "无法从 sw_vers 输出中检测到 Mac OS X 版本:" /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-doctor”时出现了同样的错误信息。我安装了 macOS High Sierra (10.3),所以我使用了相同的方法。有什么想法吗?
    • 谁能帮我修改配置文件?
    • 要使用 vim 和编辑配置文件,请点击此链接:stackoverflow.com/a/5764079/3659227
    【解决方案2】:

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

    只要运行:

    npm install appium-doctor -g
    

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

    appium-doctor
    

    再次看到它的工作。

    修复前后:

    【讨论】:

      猜你喜欢
      • 2018-07-19
      • 2017-02-24
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 2019-01-19
      • 2017-03-04
      相关资源
      最近更新 更多