#!/bin/bash --login
APP_NAME=pghuifudashi
FIR_TOKEN=60bfa54d65eecff02341d5b5ffb814c0
DING_TOKEN=dd7319d515734f844e757370c5cbed7c3c7463a17b34d1b1dfd076ced26748c7
#archive路径
ARCHIVEPATH=build/${APP_NAME}
#ipa导出路径
#Xcode11 获取版本号的方法,Xcode11之前可以通过info.plist直接获取
VERSION_NUMBER=`sed -n '/MARKETING_VERSION/{s/MARKETING_VERSION = //;s/;//;s/^[[:space:]]*//;p;q;}' ./${APP_NAME}.xcodeproj/project.pbxproj`
FILENAME="${APP_NAME}_${VERSION_NUMBER}_${BUILD_NUMBER}_${SCHEME}_${CONFIGURATION}_$CERTIFICATE"
EXPORTPATH=build/$SCHEME/$FILENAME
#exportOpthionsPlist配置
ExportOptionsPlist=./ExportOptionsPlist_adhoc.plist
#configuration配置
Configuration=Release
if [ $CERTIFICATE == "Development" ] ; then
ExportOptionsPlist=./ExportOptionsPlist_dev.plist
elif [ $CERTIFICATE = "Adhoc" ] ; then
ExportOptionsPlist=./ExportOptionsPlist_adhoc.plist
elif [ $CERTIFICATE = "AppStore" ] ; then
ExportOptionsPlist=./ExportOptionsPlist_appstore.plist
else
ExportOptionsPlist=./ExportOptionsPlist_adhoc.plist
fi
if [ $SCHEME == "Test" ] ; then
if [ $CONFIGURATION = "Debug" ] ; then
Configuration=TestDebug
else
Configuration=TestRelease
fi
elif [ $SCHEME == "Stage" ] ; then
if [ $CONFIGURATION = "Debug" ] ; then
Configuration=StageDebug
else
Configuration=StageRelease
fi
else
if [ $CONFIGURATION = "Debug" ] ; then
Configuration=Debug
else
Configuration=Release
fi
fi
#输出设定的变量值
echo "现在的环境是:${Configuration}"
echo "===DESCRIPTION: ${DESCRIPTION}==="
# 解锁对login.keychain的访问,codesign会用到,-p表示你的mac账号登陆密码
security unlock-keychain -p "gsx666" $HOME/Library/Keychains/login.keychain
# 清理构建目录
echo "===开始 clean==="
xcodebuild -workspace ./${APP_NAME}.xcworkspace -scheme $SCHEME -configuration $Configuration clean
echo "===clean 结束==="
# 设置build号,这里设置为Jenkins的BUILD_NUMBER
/usr/libexec/PlistBuddy -c "Set CFBundleVersion ${BUILD_NUMBER}" "./${APP_NAME}/Info.plist"
# 构建
echo "===开始 archive==="
xcodebuild archive -workspace ./${APP_NAME}.xcworkspace -scheme $SCHEME -configuration $Configuration -archivePath ${ARCHIVEPATH} clean build
echo "===archive 结束==="
#导出IPA包
echo "===正在导出ipa==="
xcodebuild \
-exportArchive -archivePath ./build/${APP_NAME}.xcarchive \
-exportPath ${EXPORTPATH} \
-exportOptionsPlist ${ExportOptionsPlist} \
-allowProvisioningUpdates YES
#上传到fir
if [ $CERTIFICATE != "AppStore" ] ; then
/usr/local/bin/fir publish -T "${FIR_TOKEN}" -D "${DING_TOKEN}" -c "${DESCRIPTION}" $EXPORTPATH/$SCHEME.ipa
fi
网友评论