如何修复来自 Appium 的错误“无法从 sw_vers 输出检测 Mac OS X 版本:'10.12'”
Posted
技术标签:
【中文标题】如何修复来自 Appium 的错误“无法从 sw_vers 输出检测 Mac OS X 版本:\'10.12\'”【英文标题】: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
']
谢谢!
【问题讨论】:
【参考方案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
配置文件:
更改自 ->
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
配置文件:
更改自 ->
try
stdout = (await exec('sw_vers', ['-productVersion'])).stdout;
到 ->
try
stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();
更改自 ->
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
配置文件:
更改自 ->
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
配置文件:
更改自 ->
try
stdout = (await exec('sw_vers', ['-productVersion'])).stdout;
到->
try
stdout = (await exec('sw_vers', ['-productVersion'])).stdout.trim();
更改自 ->
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 和编辑配置文件,请点击此链接:***.com/a/5764079/3659227【参考方案2】:尽管我看到 appium 已经是fixed,但我还是完成了上述步骤。
只要运行:
npm install appium-doctor -g
更新 appium-doctor 本身,然后运行:
appium-doctor
再次看到它的工作。
修复前后:
【讨论】:
以上是关于如何修复来自 Appium 的错误“无法从 sw_vers 输出检测 Mac OS X 版本:'10.12'”的主要内容,如果未能解决你的问题,请参考以下文章
如何修复来自 Apollo 客户端的格式错误的身份验证标头错误
Azure Pipeline 中的简单 Appium 测试 - 如何修复失败的构建步骤 (vstest)?
如何修复来自 Google Ads API 的无效 JSON 负载错误
如何修复“找不到文件'.../node_modules/dotenv/types'。”来自 jsconfig.json 的错误?
如何修复导入错误:来自“react-native-web”的“requireNativeComponent”
如何修复 Typescript 编译错误 ts2345“类型 'Response' 丢失......来自'Response'类型:重定向、预告片、formData!”