Mac環境變量的配置和Appium的安裝問題

這篇文章主要是記錄自己在工作中遇到的問題,以備日后遇到同類問題后能夠快速解決。也希望這篇文章能對一些技術小白有一些幫助。講解如有不當之處還請指出,共同進步,在此感謝。

因國內不是太好下載appium,首先附上appium的網盤下載鏈接:

Appium下載鏈接,密碼: e7dr

我們在工作中有時會與環境變量打交道,什么Android環境變量,JAVA環境變量,對于小白來說,真的挺頭疼得。網上更多的是關于Windows的配置方法,對于Mac的配置方法比較少,有的一些也似乎有時解決不了問題。

這里所提到的環境變量的配置方法是在我在安裝Appium時遇到的問題,一個是“Android-HOME not set”,另一個是“JAVA-HOME not set”。我們在安裝Appium時可能會有很多問題問題,但是有些問題都是因為這兩個環境變量沒有配置導致的,所以只要將這兩個問題解決,一連帶幾個問題都不存在,問題如截圖:

如圖,有5個報錯,但是有4個問題都是Android的環境變量問題,還有一個是JAVA環境變量問題

我們在運行Appium 的時候是需要多個文件支持的,比如JAVA環境和Android環境。如果Appium找不到這些環境,就會報錯。所以我們需要配置這些環境變量。

首先打開終端,輸入命令:open .bash_profile或者vim ~/.bash_profile(在此之前你必須已經創建了這樣一個.bash_profile文件,如果沒有,請創建:touch .bash_profile).

使用這兩個命令都可以直接進入profile文件:

使用open .bash_profile金可以直接進行編輯,編輯完以后command+s進行保存即可;

使用vim ~/.bash_profile則不能直接編輯,此時點按字母“i”進入編輯模式,然后就可以對文本進行編輯,編輯完以后,點按“esc”鍵,即可退出編輯模式,然后輸入“:wq”即可保存退出文本。如果你不太會使用Vim文本編輯器,可以在終端輸入?

vimtutor

?查看Vim自帶教程。

當我們進入到文本編輯器以后,就可以配置Android和JAVA環境變量了,前提是你已經安裝了Android和Java的開發環境。可能每個人的環境變量不一樣,一般你沒有自己改變其位置,這些變量位置是一樣的,如圖:

該圖中的最后兩行就是我配置的兩個環境變量,如果你沒有修改其位置,就可以復制使用了,為了方便大家復制(因為我覺得這里沒必要手寫),給出文本(其中guxuecheng是我的用戶名,換成你自己的即可):

export ANDROID_HOME=/Users/guxuecheng/Library/Android/sdk

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

。這里說了,是在安裝Appium時缺少環境變量的問題,但是我們在安裝Appium時一般還會遇到其他問題,這里我把我遇到的問題一并列出,并給出解決方法:


錯誤一、[Error:Couldnot detect MacOS XVersion from sw_vers output:'10.12.4']

如圖:

截圖中給出的是10.12,但是實際中遇到的一般是10.12.4.

這個問題比較麻煩,解決起來還是比較麻煩的。我會列出詳細步驟,一定照做,不要輸錯,否則很麻煩:

第一步,輸入命令: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; }

}

錯誤一解決辦法出處:https://stackoverflow.com/questions/40129794/how-to-fix-error-could-not-detect-mac-os-x-version-from-sw-vers-output-10-12。


錯誤二、Cannot read property ‘replace’ of undefined

錯誤如圖:

這個問題解決方法應該是最為簡單的,就是因為你沒有安裝node.js.把這個安裝上就好了。。安裝好之后可以在終端輸入:node -v。查看node安裝成功與否,如果返回了node的版本,則說明安裝成功。


解決所有問題以后再次點擊下圖1處:

如果出現下圖2處的信息,說明安裝Appium成功,可以進行接下來的學習了:


錯誤三:Carthage was NOT found!

這個原因是因為缺少Carthage(這是個啥東西?自己Google吧),解決辦法就是裝上他:

brew update

brew install update


補充:

一、環境變量PATH的語法解釋:

${}為占位符,${PATH} 和 $PATH等效

=前后不能有空格

: 為分隔符(等同于windows環境變量中的 ; )

PATH=$PATH:xxx 可以理解為 " PATH+=xxx "(當然不能這么寫)

PATH=xxx:$PATH這種寫法亦可,只是前后順序的問題;


二、bash 和 zsh

linux 和 unix 兩個操作系統默認的 shell 都是 bash,所以我在文章開始配置環境變量也是用的 bash,這樣我也用了很長一段時間,直到

今天我發現我的 adb 命令居然都用不了了,檢查了一下環境變量也沒錯,無奈請教了一下公司大牛,原來是因為我的環境變量都使用了 .zshrc文件 ,原來的 .bash_profile配置文件就不起作用了。為什么會這樣呢?原來是因為之前我一個同事在我電腦上把我的bash 環境變量切換到了 zsh。好吧,zsh 說是比 bash 更強大,那我就用 zsh 吧。

查看當前電腦使用的是哪一個 shell,使用命令:

echo $SHELL

命令echo 的作用是:輸出指定的字符串或者變量,這里就是輸出變量 shell 的值, 一定要是大寫,且要以$開頭。還有類似的命令比如 echo $PATH,該命令的作用就是顯示當前path環境變量。

切換 bash:

chsh -s /bin/bash

切換 zsh:

chsh -s /bin/zsh

zsh 環境變量配置文件:

vim ~/.zshrc?

查看zsh環境變量:

cat ~/.zshrc(該命令只能在終端查看環境變量無法編輯)


bash環境變量配置文件:

vim ?~/.bash_profile

or

open ~/.bash_profile

推薦一篇寫環境變量的文章

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容