@[TOC](Mac下安裝jenkins 自動構建iOS上傳蒲公英)
# jenkins安裝
1. 使用安裝包安裝:官網上[https://jenkins.io/](https://jenkins.io/) 下載最新的pkg安裝包,進行安裝.
2. 使用homebrew來安裝jenkins (如果電腦未安裝homebrew,請[http://www.lxweimin.com/p/de6f1d2d37bf](http://www.lxweimin.com/p/de6f1d2d37bf))
```powershell
$ brew install Jenkins
```
如果沒有java8安裝報錯
可根據提示用brew命令安裝java
```powershell
$ brew case install caskroom/version/java8
```
也可在[官網下載](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
java安裝成功之后便用brew install Jenkins 安裝
啟動jenkins
```powershell
$ jenkins
```

打開瀏覽器輸入:http://localhost:8080/
進入jenkins界面

安裝插件

#? jenkins配置Keychains and Provisioning Profiles Management
利用jenkins自動化構建打包需要蘋果鑰匙串和蘋果證書的配置。
jenkins提供[Keychain and Provisioning Profiles Management](https://updates.jenkins.io/download/plugins/kpp-management-plugin/1.0.0/kpp-management-plugin.hpi) 插件來上傳管理Keychain文件。
安裝方法:
方法一: [點擊下載](https://updates.jenkins.io/download/plugins/kpp-management-plugin/1.0.0/kpp-management-plugin.hpi)插件hpi,然后在插件管理中點擊高級選項,上傳hpi文件.

方法二:在插件管理-可選插件-搜索Keychain and Provisioning Profiles Management,點擊安裝,安裝成功之后在 Manage Jenkins中點擊Keychain and Provisioning Profiles Management,進行配置
進入jenkins: 系統管理 > Keychain and Provisioning Profiles Management
一、上傳login.keychain


ps: 這里有一個坑老版本 默認存在 login.keychain 中,而升級到10.12后會存在 login.keychain-db中。
login.keychain的路徑: ~/Library/Keychains
由于Jenkins不支持上傳文件后綴為 keychain-db的文件。
我們需要做的就是
1、復制 keychain-db的文件 到桌面
2、重命名 為login.keychain
3、upload 至Jenkins
完成之后點擊save保存,鑰匙串就上傳完畢了。
二、上傳描述文件(如果對蘋果證書配置文件流程不太清楚,請參考[http://www.lxweimin.com/p/be0267ebd238](http://www.lxweimin.com/p/be0267ebd238) )
描述文件路徑:~/Library/MobileDevice/Provisioning Profiles
`描述文件的上傳和login.keychain的上傳方式一樣`,點擊頭部選取上傳按鈕,成功之后會出現如下界面:

點擊save,到此ios特有的配置結束,可以新建item了.
# 開始配置任務
1.點擊新建item
2.填寫項目名稱選擇構建自由風格的項目

3.完成之后配置Git地址和Git的賬號密碼(前提已經安裝過Git插件,若未安裝在插件管理中安裝)

填入Git URL地址,可用http連接.
點擊添加按鈕加入自己的Git賬號密碼.
設置自己想要構建的分支
4.設置構建觸發器(如果沒有定時任務,可跳過此步驟)

這里設置的重慶的時區,晚八點定時構建
# 構建環境
選擇配置文件

選擇打包文件,一般設置Adhoc文件

# 構建
因為Jenkins對新版的Xcode插件兼容不好,只能用腳本來打包,但是老版本的Xcode可以使用Jenkins的Xcode插件
本文只介紹腳本構建方法,簡單快捷
在構建中添加構建步驟,選擇shell

加入編譯打包代碼
```php
xcodebuild clean -workspace /Users/username/.jenkins/workspace/zaozhen/工程名稱/工程名稱.xcworkspace -scheme 工程名稱 -configuration Release
xcodebuild archive -workspace /Users/username/.jenkins/workspace/zaozhen/工程名稱/工程名稱.xcworkspace -scheme 工程名稱 -archivePath 工程名稱.xcarchive
xcodebuild -exportArchive -archivePath 工程名稱.xcarchive -exportOptionsPlist /Users/username/.jenkins/workspace/ExportOptions.plist -allowProvisioningUpdates -exportPath ./kk
```
說明:
1.請更換代碼中的工程名稱.
2.這里將ipa放在工作區的kk文件夾下,可根據自己重命名
3.ExportOptions.plist,可自己先用Xcode打包生成plist,放在/Users/username/.jenkins/workspace/

到此打包流程配置完成,只要腳本中的路徑和plist文件沒有問題,就可構建成功,在工作區kk文件下就可看到ipa文件.
# 上傳到蒲公英
為了方便測試人員,生成ipa文件之后,自動上傳到蒲公英
1.在蒲公英官網注冊添加應用,配置妥當
2.在腳本中加入代碼
```php
curl -F "file=@${WORKSPACE}/kk/工程名稱.ipa" -F "uKey=" -F "_api_key=" https://www.pgyer.com/apiv1/app/upload
```
uKey,_api_key是蒲公英系統上的userKey與apiKey

# jenkins設置時區
有可能jenkins的時區不是我們所在的時區,展示的時間就和電腦時間不同,只需在系統設置-腳本命令行 運行
```powershell
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
```


加入上述腳本,點擊運行
# jenkins卸載
一、Windows安裝版本
這個最簡單,在控制面板直接刪除。
如果下載的是war包,先在任務管理器上停止jenkins的服務,在刪除整個war包。
二、Linux下
以Ubuntu 12.04 LTS為例
命令如下:
```powershell
//服務
sudo apt-get remove jenkins
//安裝包,注意這里如果不是ubuntu那就yum
sudo apt-get remove --auto-remove jenkins
//配置和數據
sudo apt-get purge jenkins
sudo apt-get purge --auto-remove jenkins
```
三、Mac下
復制代碼
//進入以下目錄,雙擊運行
/Library/Application Support/Jenkins/Uninstall.command
//也可以這樣運行
sh "/Library/Application Support/Jenkins/Uninstall.command"
//刪除配置,這個可選
```powershell
sudo rm -rf /var/root/.jenkins ~/.jenkins
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm -rf /Applications/Jenkins "/Library/Application Support/Jenkins" /Library/Documentation/Jenkins
sudo rm -rf /Users/Shared/Jenkins
sudo dscl . -delete /Users/jenkins
sudo dscl . -delete /Groups/jenkins
sudo rm -f /etc/newsyslog.d/jenkins.conf
pkgutil --pkgs | grep 'org\.jenkins-ci\.' | xargs -n 1 sudo pkgutil --forget
```
//如果使用brew安裝的,可以執行以下命令
```powershell
brew uninstall jenkins
```
引用: Jenkins卸載方法(Windows/Linux/MacOS)
[https://www.cnblogs.com/EasonJim/p/6277708.html](https://www.cnblogs.com/EasonJim/p/6277708.html)