Jenkins+SVN+fir.im+BugHD搭建持續整合,實現IOS自動化打包、Bug實時動態監測
由於公司負責產品過多,因此有很多APP要管理、打包、測試和釋出,因此每週有很多時間浪費在這些事情上面;產品?總是天天跟在屁股後面要版本,測試員要改bug和打包,每天都要跟他們脣槍舌戰上半天;實在沒辦法了,才想起我之前一直想搞的持續整合,儘量實現程式碼管理、打包、釋出和測試的自動化;雖然還有很多的路要走,但是先慢慢一點一點實現。
本文概要:
1.Jenkins環境的搭建和工程建立及配置;
2.fir.im自動釋出;
3.BugHD實現Crash監測;
Jenkins環境的搭建和工程建立及配置
1.Jenkins環境的搭建
Jenkins是基於Java開發的工具,因此要使用Jenkins必須要安裝JDK,可以在終端輸入“java -version”來檢視是否支援Java環境,如果沒有版本資訊則請下載安裝,JDK安裝地址;
Jenkins的安裝有兩種方式:
(1).官網下載安裝包安裝;
(2).Homebrew方式安裝;
(1).官網下載安裝包安裝
在Jenkins官網地址下載安裝包,一直繼續即可,沒什麼特別注意的;
安裝完成之後,Safari可能會自動開啟,如果沒有自動開啟,開啟瀏覽器,輸入http://localhost:8080;
第一次開啟jenkins,會提示在指定地址獲取初始金鑰來解鎖,到指定地址獲取一串字元輸入進去就好,由於沒有許可權,可以使用終端cd進去,然後用cat指令檢視;
然後是安裝預設外掛,
外掛安裝進度指示;
接著輸入使用者名稱和密碼就OK了,
進入主介面,至此我們就完成了安裝包方式對Jenkins的安裝及賬號配置,隨後需要對其進行一系列的工程配置;
(2).Homebrew方式安裝
通過終端輸入“brew --version”檢視是否安裝過Homebrew,如果沒安裝過請參考Mac下使用國內映象安裝Homebrew這篇文章;
在終端輸入安裝命令:
$ brew install jenkins
輸入啟動命令:
$ jenkins
看到這一段, 記事本儲存金鑰備用
Please use the following password to proceed to installation:
------------------------------(金鑰)
然後就是跟剛才類似的過程:
瀏覽器訪問 http://localhost:8080
在解鎖頁面輸入剛才記錄的金鑰,接下來請參考如上的安裝包方式的流程;
2.工程建立及配置
接下來就開始在Jenkins中安裝外掛及建立和配置工程。
在主頁面選擇系統管理,
然後選擇管理外掛,
在可選外掛頁過濾欄,安裝如下外掛:
1.Xcode integrationXcode外掛
2.Subversion Plug-inSVN程式碼管理外掛
3.Git pluginGit程式碼管理外掛(這個要看具體使用的程式碼管理工具進行安裝,使用Git就安裝這個,SVN就上面那個,我是使用SVN。)
4.Keychains and Provisioning Profiles Management證照管理外掛
5.Email Extension Plugin郵件通知外掛(可選)
6.GitHub pluginGitHub外掛(可選)
安裝後重啟Jenkins;
建立一個新任務>選擇建立自由風格的軟體專案;
然後確定專案的名稱,簡介,勾選丟棄舊的構建,並設定保持的最大個數;
原始碼管理:
選擇SVN(或Git),輸入倉庫地址(引導至工程主目錄),首次使用需要新增SVN登入賬號和密碼並選中,其他不用更改;
構建觸發器:
就是告訴jenkins什麼時候自動構建,暫不設定;
構建設定:
1.在Target處新增對應工程的Target,因為有的工程包含多個target,此處需要與當前建立的任務目的一致;
2.勾選Clean before build;
3..ipa檔案命名格式可採用XXXX_{BUILD_DATE};
4.Output目錄,就是打包的ipa檔案存放處,誰便定個地址;
證照設定:
由於每個工程對應的證照和PP檔案已經設定好,此處只要勾選Unlock KeyChain,然後在keychain path輸入:${HOME}/Library/Keychains/login.keychain;keychain Password處輸入開機密碼;
高階設定:
如果使用了Cocoapods,則需要在高階設定處額外進行一些配置;
1.在Xcode Schema file處填寫當前target對應的Scheme名稱;
2.SDK處寫iphoneos;
3.Xcode Workspace File就寫自己workspace的名稱即可,不需要字尾;
4.Build output directory跟剛才的ipa輸入地址一樣即可;
構建後設定:
此處就開始需要fir.im和BugHD以及Worktile等外部應用支援;因此暫時先不設定此部分,在把其餘幾項搞定後再返回來新增,先儲存剛才的設定;
fir.im自動釋出
沒賬號的先去fir.im官網註冊。然後需要安裝fir的上傳外掛;
具體可參考官方指導檔案:fir.im Jenkins 外掛使用方法
Jenkins 外掛下載地址
BugHD實現Crash監測
由於我使用BugHD監測Crash記錄,因此也順帶著配置了一下BugHD;
有fir.im賬號就可以登入,BugHD官網;
由於在Jenkins中配置構建後設定的時候需要繫結當前應用的BugHD的專案ID,因此首先建立專案,
建立後如下:
BugHD的使用也很簡單iOS版使用方法,具體如下:
第一步:建立專案,獲取General Key
General Key 用來唯一標識您的應用,為防止別人濫用,請勿洩露,建立每個專案時將自動生成專案對應的 General Key,可在專案列表頁檢視每個專案對應的 General Key 值
第二步:匯入 SDK(二選一即可)
1.下載 KSCrash framework,並將下載的 framework 資料夾拖到 Xcode 專案中,匯入專案時請勾選 “Copy items if needed”。
備註:KSCrash 為開源崩潰收集專案,詳情可檢視: KSCrash GitHub 專案
2.使用 Pod,在 Podfile中加入 pod 'KSCrash', '~> 1.8',然後使用 pod install 安裝,例如:platform :ios, '8.0'target 'YOUR_TARGET' do pod 'KSCrash', '~> 1.8' ....end
2.在應用的設定中, Build Phases -> Link Binary With Libraries 裡新增依賴庫:
libc++.tbd
libz.tbd
SystemConfiguration.framework
注意:以上為 Xcode 7 配置,如果使用 Xcode 7 以前的版本請新增以下依賴庫:
libc++.dylib
libz.dylib
SystemConfiguration.framework
3."Build Settings"->"Other Linker Flags"新增 -ObjC 欄位
第三步:呼叫 SDK
在 AppDelegate.m 中匯入標頭檔案: <KSCrash/KSCrashInstallationStandard.h>
然後在 application:didFinishLaunchingWithOptions: 方法中加入:
KSCrashInstallationStandard* installation = [KSCrashInstallationStandard sharedInstance]; installation.url = [NSURL URLWithString:@"https://collector.bughd.com/kscrash?key=**22ecbcdef6539dea4fb8c453bfa99914**"]; [installation install]; [installation sendAllReportsWithCompletion:nil];
注意:
如果配置後收不到 crash ,請將 didFinishLaunchingWithOptions 方法中配置的部分放到最後,避免與其他 SDK 有介面衝突KSCrash 不接收 Debug 模式下的崩潰資訊因為使用的是第三方kscrash,所以Bughd上沒有顯示沒有啟用,有crash產生後會自動啟用。
接著上文的構建後配置
首先在構建後操作步驟中選擇Upload to fir.im;
然後開始配置fir.im外掛:
具體過程如下:
- fir.im Token(必填)
fir.im Token 檢視方法:直接點選 API token 進行檢視.
2.IPA/APK Files(可選)
接下來,選擇生成 ipa/apk 檔案路徑
注意:
1.如果沒有填寫該選項,插會件自動預設查詢 Jenkins 建立的專案目錄下的 apk/ipa 檔案
2.IPA/APK檔名稱預設會設定成.apk結尾,iOS需要改成.ipa
3.BugHD token(可選)
作用:BugHD上傳 mapping.txt/dSYM 檔案 API 的呼叫許可權
注意:如果需要上傳符號表則是必填項;不需要上傳混淆表,則不需要填寫
BugHD token 檢視方法:請訪問 BugHD API token,登入後進行檢視。
4、BugHD project ID(可選)
作用:判斷具體上傳到指定的 bughd 專案
注意:如果需要上傳符號表,則是必填項;不需要上傳則不用填寫
BugHD project ID 檢視方法: 請訪問 BugHD Projects,登入後找到你要上傳符號表的專案,進入該專案,選擇 專案設定 選項卡進行檢視。
5.dSYM File or mapping File(可選)
作用:選擇生成 dSYM/mapping.txt 檔案路徑
注意:如果需要上傳符號表,則是必填項;不需要上傳則不用填寫
6、 Build Notes(可選)
作用:上傳 fir.im 後,可顯示出更新日誌
設定完成後,返回到Jenkins主頁面,然後在對應任務下選擇立即構建,如果配置沒有問題的話,當執行完後,即可在fir.im上看到自己的應用;
在fir.im的應用管理頁面看到,當前應用已經發布上來,點選預覽可以獲取詳情及二維碼等,用微信掃描二維碼就可以下載了;
然後登入BugHD,同樣在應用管理頁面,選擇同步fir.im專案,則改專案的資料即可自動與fir.im的進行關聯;
至此,已經介紹了大部分內容
相關文章
- Gitlab Runner實現NetCore自動化持續整合GitlabNetCore
- iOS如何實現自動化打包iOS
- iOS 持續整合系列 - 自動化 Code ReviewiOSView
- 本地Jenkins.war+SVN實現全自動化持續整合Jenkins
- iOS--利用Fastlane實現自動化打包iOSAST
- iOS 持續整合方案,傻瓜式一鍵全自動化打包、上傳!—— PythoniOSPython
- iOS使用fastlane實現持續整合iOSAST
- 《轉載》Jenkins持續整合-自動化部署指令碼的實現《python》Jenkins指令碼Python
- Appium+Python實現iOS自動化測試~環境搭建APPPythoniOS
- jenkins介面、UI自動化持續整合JenkinsUI
- 自動化專案Jenkins持續整合Jenkins
- 使用 fastlane 實現自動化打包AST
- 思考如何將自動化測試加入持續整合中
- iOS自動整合打包釋出iOS
- Jenkins+Python自動化測試持續整合詳細教程JenkinsPython
- Airtest結合tidevice實現IOS自動化測試AIIDEdeviOS
- jenkins+ant+jmeter介面自動化的持續整合測試框架JenkinsJMeter框架
- 新夢想幹貨分享——持續整合的自動化測試
- 知物由學 | SDK API自動化測試與持續整合API
- Jenkins上實現Python + Jenkins + Allure Report 介面自動化測試持續整合,並生成allure-report測試報告JenkinsPython測試報告
- 使用 Fastlane 實現 iOS 跟 Android 自動打包指令碼ASTiOSAndroid指令碼
- Jenkins+Svn+Docker搭建持續整合環境 自動部署JenkinsDocker
- vuepress與travis-cli持續整合自動化部署Vue
- Python的iOS自動化打包PythoniOS
- iOS自動化打包(fastlane使用)iOSAST
- iOS自動化編譯打包iOS編譯
- Jenkins+GitLab+Docker+SpringCloud+Kubernetes實現可持續自動化微服務JenkinsGitlabDockerSpringGCCloud微服務
- Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發JenkinsGitlabXCodeiOS
- 使用 Xcode Server 持續整合 & 打包測試XCodeServer
- Practice – iOS 專案持續整合實踐(一)iOS
- Practice - iOS 專案持續整合實踐(一)iOS
- Docker容器的自動化監控實現Docker
- springboot整合quarzt實現動態定時任務Spring Boot
- 用 gitlab-runner 實現微信小程式可持續化自動部署Gitlab微信小程式
- Jenkins + Git + fastlane + 蒲公英實現自動化打包上傳JenkinsGitAST
- 使用Jenkins實現前端自動化打包部署(Linux版本)Jenkins前端Linux
- 如何實現高度自動化測試?
- Postman實現UI自動化測試PostmanUI
- 【原創】win11完美搭建macos13實現IOS自動化測試環境MaciOS