# keychain-这里可能你进去看到只有login.keychain-db,复制一份然后去掉-db即可
security unlock-keychain -p 111111 ${HOME}/library/keychains/login.keychain
# 工程名-在xcode中查看PROJECT
APP_NAME="Runner"
# target-在xcode中查看TARGETS
TARGET_NAME="Runner"
# 模式
CONFIGURATION="Release"
# 路径 这个路径要自己看/Users/你的电脑用户名/.jenkins/workspace/下的,你每建一个项目,构建后都会在这下面创建对应的文件夹存放git clone下来的项目
WORKSPACE_PATH=${WORKSPACE}/ios/${APP_NAME}.xcworkspace
# 这个是导出ipa用的文件,用xcode导出一个对应模式的ipa就能获取到,把那个文件的路径放这里
EXPORT_OPTIONS=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}/ExportOptions.plist
ArchivePath=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}
EXPORTIPA=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}
# 清空存放ipa的文件夹
#cd ${EXPORTIPA}
#rm -rf *
# flutter pub get
cd ${WORKSPACE}/
#flutter pub get
# build app,里面的primary是前面的target
flutter build ios --release
curl -X POST -H "Content-Type: application/json" \
-d '{"msg_type":"text","content":{"text":"jenkins脚本正在打包ios"}}' \
https://open.feishu.cn/open-apis/bot/v2/hook/95d20add-3cc9-4bad-97eb-2b817d34281a
# 进入原生项目 archive和export
cd ${WORKSPACE}/ios/
#pod install
date=`date '+%Y%m%d_%H.%M.%S'`
# 导出achive,里面的primary是前面的target
xcodebuild archive -workspace ${WORKSPACE_PATH} -scheme "Runner" -configuration ${CONFIGURATION} -sdk iphoneos -archivePath ${ArchivePath}/runner_${date}.xcarchive
# 导出ipa
xcodebuild -exportArchive -archivePath ${ArchivePath}/runner_${date}.xcarchive -exportPath ${EXPORTIPA}/runner_${date} -exportOptionsPlist ${EXPORT_OPTIONS}
new=/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}/runner_${date}/WikiFX.ipa
echo -e "\033[32m =================ipa在/Users/mac/Desktop/WikiFx_APP/WikiFx_iOS/${buildType}/runner_${date}/WikiFX.ipa ================= \033[0m"
echo "==========当前分支:${branchName}=========="
#飞书机器人webhook 地址
api=https://open.feishu.cn/open-apis/bot/v2/hook/95d20add-3cc9-4bad-97eb-2b817d3428ee
#要发送的信息
content="-打包类型:${buildType}\n-分支:${branchName}\n-更新内容:${uploadDescription}\n-ipa包目录在:${new}\n-下载链接:http://d.maps9.com/mlvq"
#换行用\n 空格用\t
fir login -T "9392a78ca4489b3be9b60b5eac8d76bb"
fir publish $new
echo -e "\033[32m =================上传成功 ================= \033[0m"
curl -X POST \
$api \
-H 'Content-Type: application/json' \
-d '{
"msg_type": "post",
"content": {
"post": {
"zh_cn": {
"title": "WikiFx_iOS打包成功!",
"content": [
[
{
"tag": "text",
"un_escape": true,
"text": "'$content'"
}
],
[
]
]
}
}
}
}'
Flutter Jenkins自动化打包-iOS篇
于 2022-11-01 15:20:32 首次发布