Jenkins+cocoapods+Bugly自動(dòng)打包配置教程

最近公司在iOS開(kāi)發(fā)小組的要求下,購(gòu)置了一臺(tái)Mac mini作為安卓組和蘋果組自動(dòng)打包機(jī)器。兩組商量過(guò)后,決定使用Jenkins作為打包工具,畢竟Jenkins比較成熟。而蘋果組配置Jenkins的任務(wù),落在了我的頭上。

準(zhǔn)備步驟

1.實(shí)現(xiàn)iOS自動(dòng)打包,首先要首Mac OSX環(huán)境,本文使用的是一臺(tái)Mac mini,系統(tǒng)版本為10.12.1。
2.安裝Xcode,這個(gè)不用多說(shuō)。
3.配置好Jenkins,因?yàn)镴enkins自動(dòng)打包比較成熟,網(wǎng)上隨便一搜都有Jenkins安裝教程。
4.確保pod命令能正常使用。

開(kāi)始配置

Jenkins配置由于項(xiàng)目使用的是Git倉(cāng)庫(kù),首先配置shh key在Jenkins首頁(yè),左邊菜單欄中點(diǎn)擊Credentials,配置自己的shh key


配置SHH.png

我們自動(dòng)打包用的是Xcode的自動(dòng)簽名,所以不需要配置系統(tǒng)keyChain和開(kāi)發(fā)證書。
然后在Jenkins中指定pod的運(yùn)行路徑在Jenkins菜單中點(diǎn)擊"系統(tǒng)管理"->"系統(tǒng)設(shè)置"->"全局屬性",填入相應(yīng)鍵值。

全局屬性.png

值:在終端中輸入命令

echo $PATH
echo.png

復(fù)制值填入即可。

我在配置過(guò)程中,由于缺少這一步,導(dǎo)致在下面使用pod命令時(shí),出現(xiàn)pod command not found錯(cuò)誤。翻了好久的帖子才找到解決方法。

新建項(xiàng)目

打開(kāi)本地Jenkins頁(yè)面,點(diǎn)擊左邊菜單欄中的新建。

新建項(xiàng)目.png

填寫項(xiàng)目名稱,選擇"構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目",然后在下面點(diǎn)擊OK。完成項(xiàng)目新建。

項(xiàng)目配置

General填入描述內(nèi)容,按需選擇是否丟棄舊的構(gòu)建。

General.png

源碼管理

源碼管理.png

選擇Git,分別填入項(xiàng)目地址,選擇剛剛配置的SSH證書,項(xiàng)目分支

構(gòu)建

嗯,我們不需要配置開(kāi)發(fā)證書,直接來(lái)到構(gòu)建環(huán)節(jié)點(diǎn)擊增加構(gòu)建步驟,增加一個(gè)Execute shell。


Execute shell.png
  • 第一個(gè)shell是使用pod命令更新依賴庫(kù)
pod命令.png
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
pod update --verbose --no-repo-update

export語(yǔ)句是將控制臺(tái)語(yǔ)言環(huán)境設(shè)置為UTF-8格式,以免出現(xiàn)Podfile文件打開(kāi)錯(cuò)誤。pod命令可以使用pod install,隨你便。

  • 第二個(gè)shell是使用XcodeBuild和Xrun命令進(jìn)行編譯和打包
XcodeBuild.png

你需要修改的是:1.修改項(xiàng)目名稱。
2.修改IPA_PATH,Jenkins的目錄是/Users/用戶名/.jenkins/workspace/項(xiàng)目名。3.IPA_PATH中的Build文件夾是我自己新建的文件夾,用于存放所有打包出來(lái)的ipa文件,你也可以指定其它文件夾。

# 工程名APP_NAME=""

# info.plist路徑project_infoplist_path="./${APP_NAME}/Info.plist"

#取版本號(hào)bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")

#取build值bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")

DATE="$(date +%Y%m%d)"IPANAME="${APP_NAME}_Debug_V${bundleShortVersion}_${DATE}.ipa"

#要上傳的ipa文件路徑IPA_PATH="/Users/xxkj/.jenkins/workspace/c-ios-Debug/Build/${IPANAME}"

echo ${IPA_PATH}
echo "${IPA_PATH}">> ipaPath.txt

xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" -configuration 'Debug' clean

xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" -sdk iphoneos -configuration 'Debug' SYMROOT='$(PWD)'

xcrun -sdk iphoneos PackageApplication "./Debug-iphoneos/${APP_NAME}.app" -o "${IPA_PATH}"
  • 第三個(gè)shell是自動(dòng)上傳至Bugly更新APP
Bugly配置.png

修改對(duì)應(yīng)Bugly應(yīng)用的exp_id和app_key。

# 工程名APP_NAME=""

# exp_idEXP_ID=""

# app_keyAPP_KEY=""

DATE="$(date +%Y%m%d)

"IPANAME="${APP_NAME}_Debug_V${bundleShortVersion}_${DATE}.ipa"

#要上傳的ipa文件路徑IPA_PATH="/Users/xxkj/.jenkins/workspace/c-ios-Debug/Build/${IPANAME}"

curl --insecure -X "PUT" -F "file=@${IPA_PATH}" -F "exp_id=${EXP_ID}" -F "title=${IPANAME}" https://api.bugly.qq.com/beta/apiv1/exp?app_key=${APP_KEY}

構(gòu)建后操作

項(xiàng)目自動(dòng)打包完成后,會(huì)自動(dòng)上傳到Bugly,也可以從打包機(jī)下載到本地。點(diǎn)擊"增加構(gòu)建后操作步驟"->"Archive the artifacts"

構(gòu)建后操作.png
Build/*.ipa

此操作會(huì)將Build文件夾中所有ipa文件收集起來(lái),在項(xiàng)目面板中供下載。

最后一個(gè)成功的構(gòu)建結(jié)果.png

最后記得點(diǎn)擊保存到這一步已經(jīng)配置完成了,返回項(xiàng)目菜單點(diǎn)擊立即構(gòu)建嘗試一下吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容