1、新建需要打包的项目
1.1、新建打包项目
1.2、输入项目名
1.3、保存
2、将本地需要打包的项目与jenkins相关联
2.1、点击立即构建
2.2、会在本地jenkins的workspace中生成test的空文件夹
2.3、此时将主工程的项目拷贝到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、创建本地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 "创建文件夹成功"
else
echo "文件夹已经存在"
fi
3.3、配置项目中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、创建本地存放打包文件的Archive文件夹
3.4.1、配置A证书的ExportOptions_A.plist文件,证书名和teamID
3.4.2、配置B证书的ExportOptions_B.plist文件,证书名和teamID
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"
#如果文件不存在就创建
if [ ! -f "$log_A_path" ];then
touch $log_A_path
echo "log_A文件创建完成"
else
echo "log_A文件已经存在"
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信息
以上上传的包地址“https://www.pgyer.com/apiv2/app/upload”来自于蒲公英文档中心的上传接口:
4、同步上传成功消息到微信群
将以上企业微信群机器人的配置粘贴到jenkins的配置中即可
#打包成功发送消息到微信群
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": "构建成功"
}
}'