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

android, appium, automated-tests

Solution

It' worked for me.

You can config file by this command:

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

Terminal will show : /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

Use command vim and config each file.

Example

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

Config file:

Change From ->

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

To ->

`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

Config file:

Change From ->

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

To ->

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

Change From ->

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

To ->

`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

Config file:

Change From ->

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

To ->

`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

Config file:

Change From ->

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

To ->

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

Change From ->

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

To ->

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

Click start the stethoscope button

Problem

I installed appium-1.5.3.dmg But when I click the stethoscope button the Appium is show error : ``` ✔ Xcode is installed at: /Library/Developer/CommandLineTools [Error: Could not detect Mac OS X Version from sw_vers output: '10.12 '] ``` Thank you!

Original source

Related problems