ios 自动打包命令_【实践】iOS使用Jenkins实现自动化打包并上传蒲公英
作者:怪獸monster
鏈接:https://www.jianshu.com/p/f4a0093d3bed
一、安裝本地Jenkins
1、通過Home brew安裝本地Jenkins
brew install Jenkins
沒安裝Home Brew的可使用命令自行安裝
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2、啟動(dòng)Jenkins
終端輸入命令啟動(dòng)Jenkins
jenkins
待Jenkins啟動(dòng)后,瀏覽器打開:http://localhost:8080/
3、解鎖Jenkins
按照提示到文件所在目錄并拷貝初始密碼,解鎖Jenkins。
4、安裝插件
安裝插件.png
可以選擇推薦的插件,也可自行選擇插件安裝。
5、設(shè)置登錄賬號(hào)密碼
設(shè)置登錄賬號(hào)密碼.png
二、配置Jenkins
1、安裝插件
到系統(tǒng)管理-->插件管理-->可選插件中,搜索安裝以下插件:Keychains and Provisioning Profiles Management(用來管理本地keychain和iOS證書)Xcode integration (用于xcode構(gòu)建)
插件安裝.png
搜索安裝插件.png
2、配置證書
插件安裝完成后,在系統(tǒng)管理中找到剛安裝的Keychains and Provisioning Profiles Management插件:
Keychains and Provisioning Profiles Management.png
3、配置login.keychain和描述文件
1、login.keychain文件路徑:
~/Library/Keychains
如果該路徑下只有l(wèi)ogin.keychain-db,可以復(fù)制出來刪除-db。
2、Provisioning Profiles路徑一般為:
/User/{用戶名}/Library/MobileDevice/Provisioning Profiles
配置證書.png
配置完成后點(diǎn)擊Save保存。
三、新建任務(wù)
1、創(chuàng)建一個(gè)自由風(fēng)格的任務(wù):
新建任務(wù).png
2、項(xiàng)目配置:
1、丟棄舊的構(gòu)建(按需填寫)
丟棄舊的構(gòu)建.png
2、源碼管理:
源碼管理.png
3、構(gòu)建環(huán)境:
構(gòu)建環(huán)境.png
4、增加構(gòu)建步驟:
可選Xcode編譯,也可以選擇Shell腳本使用Xcodebuild命令編譯,這里只介紹shell腳本的方式:增加構(gòu)建步驟-->Execute shell
echo "=================1.創(chuàng)建環(huán)境及文件路徑================="# $HOME表示 Jenkins 的主目錄# 項(xiàng)目輸出路徑OUTPUT_PATH="/Users/guaishou/autopackaging"echo $OUTPUT_PATHif [ ! -d $OUTPUT_PATH ]; thenmkdir $OUTPUT_PATHfi# 創(chuàng)建當(dāng)前任務(wù)下的 項(xiàng)目文件 環(huán)境# ${JOB_NAME} 當(dāng)前任務(wù)名稱JOB_NAME_PATH="$OUTPUT_PATH/${JOB_NAME}"echo $JOB_NAME_PATHif [ ! -d $JOB_NAME_PATH ]; thenmkdir $JOB_NAME_PATHfi# 項(xiàng)目工程名APP_NAME="sudi"#項(xiàng)目scheme名稱,一般跟都是跟APP_NAME是一致的SCHEME_NAME="jixain" # 項(xiàng)目中 Info.plist 的絕對路徑PLIST_PATH="$HOME/jenkins/workspace/${JOB_NAME}/${APP_NAME}/${APP_NAME}/Info.plist"# 獲取項(xiàng)目的版本號(hào)、App名稱BUNDLE_SHORT_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PLIST_PATH}")DISPLAY_NAME=$(/usr/libexec/PlistBuddy -c "Print CFBundleDisplayName" "${PLIST_PATH}")# ipa存放的路徑IPA_PATH="${JOB_NAME_PATH}/build"# 創(chuàng)建 ipa 路徑文件夾if [ ! -d $IPA_PATH ];thenecho '文件夾不存在,創(chuàng)建文件夾'mkdir $IPA_PATHelseecho '文件夾已存在,刪除文件夾內(nèi)所有文件'rm -rf $IPA_PATH/*fi# archive 文件路徑ARCHIVE_PATH="${IPA_PATH}/${APP_NAME}_${BUILD_ID}.xcarchive"echo "=================2.進(jìn)入工程目錄================="cd $HOME/jenkins/workspace/${JOB_NAME}/${APP_NAME}echo "=================3.清理工程================="xcodebuild clean -target "${APP_NAME}" -configuration 'Release'echo "=================4.解鎖鑰匙串================="# 這里讀取了 Jenkins 下的 Library 中的 Keychains#如果構(gòu)建環(huán)境配置看keychain,此步驟可省略
security unlock-keychain -p "電腦登錄密碼" "${HOME}/Library/Keychains/login.keychain-db"echo "=================5.打包生成 xcarchive 文件================="# 這里采用了自動(dòng)簽名的方式,可自行配置 CODE_SIGN_IDENTITY 和 PROVISIONING_PROFILE# 如果是使用了cocopods的workspace,可將 -project 替換為 -workspace , .xcodeproj 替換為 .xcworkspacexcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${SCHEME_NAME}" -configuration "Debug" -archivePath "${ARCHIVE_PATH}"echo "=================6.導(dǎo)出 ipa ================="# ExportOptions.plist主要是描述了導(dǎo)出的 ipa 使用的相關(guān)證書和配置文件# 不知道怎么填寫的自行百度xcodebuild -exportArchive -archivePath $ARCHIVE_PATH -exportPath "${IPA_PATH}" -exportOptionsPlist "${JOB_NAME_PATH}/ExportOptions.plist"echo "=================7.上傳到蒲公英發(fā)布平臺(tái) ================="PASSWORD=555555GIT_MESSAGE=`git log -1 | sed -n '5,$p'`
curl -F "file=@${IPA_PATH}/${SCHEME_NAME}.ipa" \-F "uKey=你的User Key" \-F "_api_key=你的Api Key" \-F "buildInstallType=2" \-F "buildUpdateDescription=commitId:${GIT_COMMIT}-message:${GIT_MESSAGE}" \-F "buildPassword=${PASSWORD}" \
https://www.pgyer.com/apiv2/app/upload
echo "=================8.通知企業(yè)微信 ================="CURL_PSOT_DATA=" ? {
? ? ? ?\"msgtype\": \"text\",
? ? ? ?\"text\": {
? ? ? ? ? ?\"content\" : \"${DISPLAY_NAME}_iOS_${BUNDLE_SHORT_VERSION}構(gòu)建成功!\n環(huán)境:Debug\n下載:蒲公英對應(yīng)下載地址\n密碼:${PASSWORD}\n更新:${GIT_MESSAGE}\" ? ? ? ?}
? }"
curl '企業(yè)微信機(jī)器人地址' \ ? -H 'Content-Type: application/json' \ ? -d "$CURL_PSOT_DATA"
關(guān)于蒲公英部分和企業(yè)微信部分,可以去蒲公英官網(wǎng)和企業(yè)微信中查看對應(yīng)的API。
三、立即構(gòu)建
立即構(gòu)建.png
點(diǎn)擊立即構(gòu)建,就可以完成iOS項(xiàng)目的自動(dòng)構(gòu)建了。
四、多分支多環(huán)境打包配置
1、參數(shù)化構(gòu)建:
參數(shù)化構(gòu)建.png
按照上圖方式配置完后,需要在shell腳本中對以下進(jìn)行修改:
xcodebuild clean -target "${APP_NAME}" -configuration '${bulidEnvironment}'
xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${SCHEME_NAME}" -configuration "${bulidEnvironment}" -arch arm64 -archivePath "${ARCHIVE_PATH}"
源碼管理里的分支應(yīng)該填對用的git參數(shù)名稱:
源碼管理.png
配置完成后,立即構(gòu)建按鈕就會(huì)變成這樣:
構(gòu)建.png
點(diǎn)進(jìn)去選擇對用的分支和參數(shù)進(jìn)行構(gòu)建:
多參數(shù)構(gòu)建.png
總結(jié)
以上是生活随笔為你收集整理的ios 自动打包命令_【实践】iOS使用Jenkins实现自动化打包并上传蒲公英的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python安装vpython_VPyt
- 下一篇: 提取点的dn值_干货在线 | DEM数据