前言
之前在网上找了一些文章参考,一位必须先拿到Info配置文件才能读取相关信息,其实完全不需要先读取info文件,只需要先打包,然后在读取中间文件xxx.app里的Info.plist一样能得到相关信息,记录脚本如下:
platform_scheme_sign
为参数化构建中的选择参数,格式为#平台名称#scheme名称#发布证书
tagOrBranchName
为参数构建中的git参数,用于选中构建的分支或tag
# 工程名
APP_NAME="XXXX"
#***************动态配置部分*********************
#平台名称#scheme名称#发布证书
#xxxx#xxxx#iPhone Distribution: xxxx Co., Ltd.
platform_scheme_sign_Array=(${platform_scheme_sign//\#/ })
# 平台及SVN文件夹名称
svnName=${platform_scheme_sign_Array[0]}
#target/scheme名称
SCHEMECA=${platform_scheme_sign_Array[1]}
#code sign
signName=${platform_scheme_sign##*#}
#打包日期(年月日)
DATEOFDAY="$(date +%Y%m%d)"
#打包的时间(年月日-时分秒)
DATE="$(date +%Y%m%d-%H%M%S)"
#*************************************
#下面2行是集成有Cocopods的用法
echo "=================clean================="
security unlock-keychain -p xxx /xxxx/Library/Keychains/login.keychain
xcodebuild -workspace "./xxxx/${APP_NAME}.xcworkspace" -scheme ${SCHEMECA} -configuration 'Release' clean
echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild -workspace "./xxx/${APP_NAME}.xcworkspace" -scheme ${SCHEMECA} -sdk iphoneos -configuration 'Release' CODE_SIGN_IDENTITY="${signName}" SYMROOT='$(PWD)' -allowProvisioningUpdates
#生成xxx.app
xcrun -sdk iphoneos PackageApplication "./Release-iphoneos/${SCHEMECA}.app" -o "${WORKSPACE}/Release-iphoneos/${SCHEMECA}_${DATE}.ipa"
##读取打包后的内容的Info
InfoPath="${WORKSPACE}/Release-iphoneos/${SCHEMECA}.app/Info.plist"
echo InfoPath
#bundleId=$(/usr/libexec/PlistBuddy -c "print CFBundleIdentifier" "${InfoPath}")
#取build值
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${InfoPath}")
#取APP名称
#displayNmae=$(/usr/libexec/PlistBuddy -c "print CFBundleName" "${InfoPath}")
#打包代码的分支
tagOrBranchName=${GIT_BRANCH_TAG/origin\//""}
#生成的唯一名称
UNIQUE_NAME="${APP_NAME}_${SCHEMECA}_V${bundleShortVersion}_${tagOrBranchName}_${DATE}"
IPANAME="${UNIQUE_NAME}.ipa"
svnPath="/xxx/${svnName}/${DATEOFDAY}"
#如果没有文件夹,则创建文件夹
if [ ! -d $svnPath ];then
mkdir -p $svnPath
fi
mv "${WORKSPACE}/Release-iphoneos/${SCHEMECA}_${DATE}.ipa" "${svnPath}/${IPANAME}"
网友评论