jenkins 自動打包(支持多證書)

1、新建需要打包的項目

1.1、新建打包項目

image.png

1.2、輸入項目名

image.png

1.3、保存

image.png

2、將本地需要打包的項目與jenkins相關(guān)聯(lián)

2.1、點擊立即構(gòu)建

image.png

2.2、會在本地jenkins的workspace中生成test的空文件夾

image.png

2.3、此時將主工程的項目拷貝到test文件夾

image.png

3、配置jenkins中打包的shell腳本

3.1、打包之前更新為最新的代碼

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
git pull
cd /Users/test/.jenkins/workspace/test
pod install

3.2、創(chuàng)建本地Archive文件夾

save_path="/Users/test/.jenkins/workspace/test/Archive"
project_name="lifePgc"
targetProject_sdk="iphoneos14.0"
targetProject_destination="generic/platform=iOS"
configuration="Release"
scheme="$project_name"
workspace_name="${project_name}.xcworkspace"
if [ ! -d "$save_path" ];then
mkdir $save_path
echo "創(chuàng)建文件夾成功"
else
echo "文件夾已經(jīng)存在"
fi

3.3、配置項目中python腳本便于證書的切換

3.3.1、將project.pbxproj文件中B證書的配置改成A證書的

例如以下:
All_Migu_20210203和97DW55HLWV是A證書的
migu_develop_0908和BHV5UM2RRF是B證書的


image.png

3.3.2、同樣將project.pbxproj文件中A證書的配置改B證書的

image.png

3.4、創(chuàng)建本地存放打包文件的Archive文件夾

3.4.1、配置A證書的ExportOptions_A.plist文件,證書名和teamID

image.png

3.4.2、配置B證書的ExportOptions_B.plist文件,證書名和teamID

image.png

3.5、導出A證書的ipa包(B證書也如此)

archive_path="$save_path/${project_name}.xcarchive"
ipa_A_path="$save_path/$(date "+%Y-%m-%d-%H-%M-%S")"
log_A_path="$save_path/log_A.txt"
#如果文件不存在就創(chuàng)建
if [ ! -f "$log_A_path" ];then
touch $log_A_path
echo "log_A文件創(chuàng)建完成"
else
echo "log_A文件已經(jīng)存在"
fi

#改成A證書
cd /Users/test/.jenkins/workspace/test
python3 test_A.py 
xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -destination "$targetProject_destination" -configuration "$configuration" -archivePath "$archive_path" >> $log_A_path
echo "正在導出A證書的ipa包"
xcodebuild -exportArchive -archivePath "$archive_path" -exportPath "$ipa_A_path" -exportOptionsPlist ExportOptions_A.plist >> $log_A_path
echo "已導出A證書的ipa包"

3.6、上傳A證書的包到蒲公英(B證書也如此)

if [ ! -d "$ipa_A_path" ];then
echo "A證書的ipa文件夾不存在,打包失敗"
exit 8
else
IPANAME="lifePgc"
echo "正在上傳A證書的包..."
echo $ipa_A_path
cd $ipa_A_path
curl -F "file=@${IPANAME}.ipa" -F "buildUpdateDescription=A證書-jenkins打包" -F "uKey=653688d43c0d236bdb2853821bc55936" -F "_api_key=c3e2d981cc0eef286178412fa36a0292" https://www.pgyer.com/apiv2/app/upload > result.json
fi

以上uKey和_api_key分別來自于蒲公英的API信息來自于蒲公英的API信息

image.png

以上上傳的包地址“https://www.pgyer.com/apiv2/app/upload”來自于蒲公英文檔中心的上傳接口:
image.png

image.png

4、同步上傳成功消息到微信群

image.png

將以上企業(yè)微信群機器人的配置粘貼到jenkins的配置中即可

#打包成功發(fā)送消息到微信群
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=30721cd4-b382-409c-a5bd-9c136c7ce0cb' \
   -H 'Content-Type: application/json' \
   -d '
   {
     "msgtype": "text",
     "text": {
         "content": "構(gòu)建成功"
     }
   }'
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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