Mac上(iOS項目)用Jenkins做持續集成(CI)注意事項及總結

注意事項:

1、安裝Jenkins一定要從命令行安裝(brew install jenkins),切記不要從Jenkins官網直接下載安裝。因爲後者會默認安裝在Mac的Shared目錄下,之後會遇到很多訪問權限問題。

2、Jenkins默認安裝的那些插件其實可以直接跳過,之後自己把需要安裝的插件自行安裝即可。

3、插件可以在插件管理裏邊直接一鍵安裝,如果安裝慢的話也可以自己去下載Jenkins插件(下載地址:http://updates.jenkins-ci.org/download/plugins/),然後在插件管理高級裏邊上傳,之後重啓Jenkins就可以使用了。

4、Manager Jenkins中會有報紅的提示,這些可以忽略,只要自己用的那幾個插件沒問題,就不影響打包。

5、如果Jenkins版本過低想升級的話,可以去下載最新的jenkins.war包,然後將解壓後的文件替換如下文件夾中的內容,重啓Jenkins,即可完成Jenkins的升級。

6、在編寫shell腳本文件時,打出來的包最好放在Jenkins當前workspace的文件夾(如:/Users/[username]/.jenkins/workspace/xxx)中,假如你放到桌面,Jenkins會因爲沒有訪問權限導致打包失敗。

7、注意證書、team、配置文件、項目的scheme、Debug/Release等一定要匹配。

8、xcodebuild -exportArchive 命令,也就是從.xcarchive文件導出IPA包的操作,需要一個ExportOptions.plist文件,這個文件從之前用xcode打出來的.xcarchive文件中複製過來就行。

9、項目構建完成後自動發送郵件通知測試人員,如果你想用qq郵箱或者163郵箱去發送郵件,需要登錄qq或者163去獲取SMTP服務授權碼(參考:https://www.jianshu.com/p/c9ae989a7dc8?from=timeline&isappinstalled=0)。我是用的公司郵箱,在Extended E-mail Notification和E-mail Notification中沒有勾選Use SMTP Authentication,配置如下,可以給公司內同後綴名的郵箱發送郵件,但不能給qq郵箱或者163郵箱發送:

10、當有新代碼提交Git的時候,我們希望Jenkins能夠自動構建,而不是自己去手動點擊。

方式一:是去配置這個選項,但這種方式需要去GitLab設置webhook URL,如果GitLab權限不夠就比較麻煩了。如下:

方式二:這種就比較簡單了,設置Poll SCM去輪詢,比如每5分鐘檢查一下是否有代碼更新(圖中*與*之間需要有空格,否則報錯),如果有更新就自動構建,如下:

 

總結一下用Jenkins做持續集成(CI)的整體流程:

當Git上每次有代碼提交時,Jenkins自動觸發構建操作打出IPA包,然後組裝manifest.plist文件,將IPA包和manifest.plist文件傳到公司服務器指定目錄,之後,自動發送郵件給所有測試人員。讓前端同事幫忙寫一個H5頁面(只寫一次就行了),H5頁面的內容就是動態抓取服務器存放的那些IPA包,以列表的形式展示在web頁面上,比如頁面列表中有一項develop_2019-01-01_xxx,點擊的鏈接應該是這樣的:itms-services://?action=download-manifest&url=https://xxx.com/download/ios/app/app1.plist,需要符合蘋果的itms協議,並且必須是https(不支持http),然後在iPhone手機上點擊鏈接之後就會提示下載安裝。

上邊是完全自己公司來做持續集成的整體流程,如果IPA包上傳到蒲公英這種三方平臺做持續集成,那麼就簡單了,Jenkins打出IPA包之後,直接上傳蒲公英平臺,郵件通知測試人員去蒲公英平臺下載最新的測試包即可。

 

manifest.plist文件的獲取:

manifest.plist可以從Xcode打包的時候,勾選下面這個選項獲得:

manifest.plist中的內容大概是這樣的,每次打包組裝manifest.plist文件時需要更改裏邊的屬性:

 

Mac上Jenkins服務的開啓和關閉:

1、用安裝包安裝的Jenkins

     啓動jenkins: sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

     停止jenkins:sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

2、用brew安裝的的Jenkins

      啓動jenkins: brew services start jenkins

      停止jenkins:brew services stop jenkins

      重啓Jenkins:brew services restart jenkins

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章