在mac 機上配置jenkins iOS版本編譯環境總結
阿新 • • 發佈:2019-01-24
使用pkg檔案安裝的jenkins坑太多,當前我已切換為使用”brew install jenkins”方式安裝的jenkins了,輕爽了不少。下述填坑內容僅供參考:
總體上在jenkins上使用python3和python2組合搭建的編譯環境,通過python3呼叫系統的svn命令完成程式碼工程的更 新,通過呼叫fastlane完成iOS版本的編譯,通過python2呼叫paramiko模組,將打包好的版本上傳到ftp伺服器。
1. 從https://jenkins.io網站下載LTS版本安裝包(mac上執行的當前是jenkins-2.46.2.pkg),安裝完成後,第一次執行需要按照提示,完成初始密碼的配置以及完成第一個帳戶的配置,並將該使用者作為管理員;
2. 因為jenkins執行有使用者許可權限制,所以工程目錄必須配置在系統jenkins使用者自己的目錄,才不會存在訪問許可權的問題,如果需要為jenkins系統帳戶配置登入密碼,可使用命令”sudo passwd jenkins
3. 構建專案時,如果不需要多出來額外的default子目錄,則建立jenkins工程的時候,選擇”構建一個自由風格的軟體專案”型別建立工程;
4. 在jenkins裡面,如果已經建立了一組引數,想在中間插入某個引數時,可以先建立,再拖動單個引數的邊框調整順序;
5. Jenkins執行起來之後,其預設的系統環境變數PATH只有有限的幾個路徑,導致呼叫部分命令時提示找不到,解決方式如下:
在Jenkins對應的 .plist檔案中(/Library/LaunchDaemons/org.jenkins-ci.plist), 設定PATH環境變數,具體新增資訊如下:
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>(insert your path value here)</string>
</dict>
配置完之後重啟(依次執行:sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist 和 sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
相關資訊可參考下面網頁:
https://stackoverflow.com/questions/15620369/jenkins-on-mac-path-is-not-set-right-no-usr-local-bin
https://stackoverflow.com/questions/6959327/how-to-stop-jenkins-installed-on-mac-snow-leopard
6. 在執行ruby時,會報”invalid byte sequence in US-ASCII (ArgumentError)“這類錯誤,是因為預設的環境變數LC_ALL為空,將其配置和系統一致就可以,執行”locale“可檢視當前語言配置,在Jenkins的”系統管理->系統設定->Environment Variables”下面新增LC_ALL鍵值對,譬如我機器上的對應值為”zh_CN.UTF-8“,則鍵的內容填寫引號裡面的內容即可;
相關資訊可參考下面網頁:
http://blog.csdn.net/cuiaamay/article/details/50535272
jenkins中LANG值也為空,保險起見,可同步新增LANG鍵值對,譬如我機器上的對應值為”zh_CN.UTF-8“,則鍵的內容填寫引號裡面的內容即可;
7. 在執行python2指令碼使用printf列印輸出時,會報”UnicodeEncodeError“這類錯誤,是因為預設的環境變數PYTHONIOENCODING為空,將其配置為”UTF-8“編碼即可,在Jenkins的”系統管理->系統設定->Environment Variables”下面新增PYTHONIOENCODING鍵值對,值為”UTF-8“;
相關資訊可參考下面網頁:
https://stackoverflow.com/questions/6076203/how-do-you-set-the-default-encoding-in-jenkins
8. 在進行打包簽名時,會提示找不到簽名檔案之類的錯誤,解決該問題必須將蘋果證書匯入Jenkins系統帳戶才可以,遵循在xcode中匯入開發證書的過程,確保正常下載證書才能編譯OK;
相關資訊可參考下面網頁:
http://www.cnblogs.com/qingjoin/p/3929493.html