这篇文章(http://www.jianshu.com/p/3d8f26759606)中讲了用Xcode来构建的方式,然后使用脚本上传到蒲公英,这种方式比较不灵活,使用脚本的方式构建+上传比较方便配置一个新的任务
当前,构建方式主要包括两种:
1.源码 -> .archive文件 -> .ipa文件
2.源码 -> .app文件 -> .ipa文件
这两种方式的主要差异是生成的中间产物不同,对应的,两种构建方式采用的命令也不同。
这里使用的是第一种方式
#!/bin/bash -l
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
echo "=================pod install================="
pod install --verbose --no-repo-update
#配置环境,Release或者Debug,默认release
Configuration="Release"
# 工程名
APP_NAME="xxxxxxx"
# 证书,这里使用生产证书与上面打包环境进行对应
CODE_SIGN_DISTRIBUTION="iPhone Distribution: xxxxx (xxxxxx)"
# info.plist路径
project_infoplist_path="./${APP_NAME}/xxxxxr/Info.plist"
#输出属性列表
ExportOptionPlist="./${APP_NAME}/xxxx/ExportOptions.plist"
# workspace路径
workSpacePath="$WORKSPACE/bhbl-master/${APP_NAME}.xcworkspace"
# 取版本号
bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")
# 取build值
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")
DATE="$(date +%Y%m%d)"
# 要上传的ipa文件路径,这个文件路径需要确定,打包输出的时候,输出到这个指定位置,以后从这个位置上传.ipa文件
IPA_PATH="$WORKSPACE/build/${APP_NAME}_V${bundleShortVersion}_${DATE}"
# 打印指定的文件位置
echo ${IPA_PATH}
echo ${WORKSPACE}
echo ${workSpacePath}
echo "=================clean================="
xcodebuild -workspace "${workSpacePath}" -scheme "${APP_NAME}" -configuration $Configuration clean
echo "=================build================="
xcodebuild -workspace "${workSpacePath}" -scheme "${APP_NAME}" -sdk iphoneos -configuration $Configuration CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}" SYMROOT='$(PWD)'
echo "=================生成 .xcarchive================="
xcodebuild archive -workspace "${workSpacePath}" -scheme ${APP_NAME} -configuration $Configuration -archivePath "${WORKSPACE}/build/${APP_NAME}${DATE}.xcarchive"
echo "=================导出.ipa================="
xcodebuild -exportArchive -archivePath "${WORKSPACE}/build/${APP_NAME}${DATE}.xcarchive" -exportPath "${IPA_PATH}" -exportOptionsPlist ${ExportOptionPlist}
echo "=================upload .ipa tp Pgyer================="
# 上传到蒲公英的话,需要到蒲公英官网获取对应的User Key 和 API Key
#蒲公英上的User Key
uKey="8c7965bxxxxxx3a8cffxxxxxef1eff3f41"
#蒲公英上的API Key
apiKey="a73a3e84cxxxxx57a8cxxxx9fd00"
#执行上传至蒲公英的命令
echo "${IPA_PATH}/${APP_NAME}.ipa"
curl -F "file=@${IPA_PATH}/${APP_NAME}.ipa" -F "uKey=${uKey}" -F "_api_key=${apiKey}" http://www.pgyer.com/apiv1/app/upload
这里面有个文件叫做ExportOptions.plist 这个是需要自己创建的,你可以在工程里面Info.plist文件同级目录下创建,xcodebuild打ipa包的配置文件,我这里这个配置是用来打ad-hoc包的配置
要注意的是那些 路径的要写对
project_infoplist_path
输出属性列表
ExportOptionPlist
workspace路径
workSpacePath