1额湘、新建需要打包的項(xiàng)目
1.1、新建打包項(xiàng)目
1.2富弦、輸入項(xiàng)目名
1.3、保存
2氛驮、將本地需要打包的項(xiàng)目與jenkins相關(guān)聯(lián)
2.1腕柜、點(diǎn)擊立即構(gòu)建
2.2、會(huì)在本地jenkins的workspace中生成test的空文件夾
2.3、此時(shí)將主工程的項(xiàng)目拷貝到test文件夾
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唉铜、配置項(xiàng)目中python腳本便于證書的切換
3.3.1台舱、將project.pbxproj文件中B證書的配置改成A證書的
例如以下:
All_Migu_20210203和97DW55HLWV是A證書的
migu_develop_0908和BHV5UM2RRF是B證書的
3.3.2、同樣將project.pbxproj文件中A證書的配置改B證書的
3.4潭流、創(chuàng)建本地存放打包文件的Archive文件夾
3.4.1竞惋、配置A證書的ExportOptions_A.plist文件,證書名和teamID
3.4.2幻枉、配置B證書的ExportOptions_B.plist文件碰声,證書名和teamID
3.5、導(dǎo)出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 "正在導(dǎo)出A證書的ipa包"
xcodebuild -exportArchive -archivePath "$archive_path" -exportPath "$ipa_A_path" -exportOptionsPlist ExportOptions_A.plist >> $log_A_path
echo "已導(dǎo)出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分別來(lái)自于蒲公英的API信息來(lái)自于蒲公英的API信息
以上上傳的包地址“https://www.pgyer.com/apiv2/app/upload”來(lái)自于蒲公英文檔中心的上傳接口:
4、同步上傳成功消息到微信群
將以上企業(yè)微信群機(jī)器人的配置粘貼到j(luò)enkins的配置中即可
#打包成功發(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)建成功"
}
}'