首先安裝jenkins
網(wǎng)址:https://jenkins.io/

Welcome
然后正確選擇你所需要的版本,我們這里要打包ios工程,所以請選擇Mac OS X

tips.如果你需要打包android工程,可以選擇在linux上搭建,然后配置linux為主節(jié)點(diǎn),mac為從節(jié)點(diǎn),具體在"系統(tǒng)管理-管理節(jié)點(diǎn)"中添加,之后可以指派任務(wù)在某個(gè)節(jié)點(diǎn)上構(gòu)建
新建項(xiàng)目
- 選擇構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目
- 選擇強(qiáng)制在mac主機(jī)上構(gòu)建ios項(xiàng)目

-
配置代碼來源,勾選上git,配置倉庫,帳號,要打包的分支
- 構(gòu)建觸發(fā)器(留坑,以后搞,暫時(shí)手動控制)

構(gòu)建環(huán)境
keychain是打包機(jī)器導(dǎo)出的,之后在"系統(tǒng)管理-Keychains and Provisioning Profiles Management"中導(dǎo)入,順手也把構(gòu)建證書與發(fā)布證書導(dǎo)入,這里選擇構(gòu)建證書

- 構(gòu)建
我這里分三部分
1.防止亂碼
是否需要更新pod由項(xiàng)目決定
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
#pod install --verbose --no-repo-update
2.具體構(gòu)建
# 工程名XXX
APP_NAME="XXX"
# 證書,等等手動簽名,xcode自動簽名反正我沒搞定(/ □ \)
CODE_SIGN_DISTRIBUTION="iPhone Distribution: XXXXXXX"
# info.plist路徑
project_infoplist_path="./${APP_NAME}/Info.plist"
#取版本號
bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}")
#取build值
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}")
#寫個(gè)日期等等給包做個(gè)后綴
DATE="$(date +%Y%m%d)"
IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa"
#要上傳的ipa文件路徑,可自定義,不過要注意權(quán)限問題!
IPA_PATH="$HOME/${IPANAME}"
echo ${IPA_PATH}
echo "${IPA_PATH}">> ipaPath.txt
echo "=================clean================="
#重點(diǎn),因?yàn)橹懊俺隽撕芏鄼?quán)限問題,google后有大神建議直接在shell中獲取權(quán)限,userkey是mac的賬戶的密碼,也是構(gòu)建打包的那個(gè)賬號
security unlock-keychain -p userkey /Users/XXX/Library/Keychains/login.keychain
#好了,開始打包了,這里是release版本
xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" -configuration 'Release' clean
echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_NAME}" -sdk iphoneos -configuration 'Release' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}" SYMROOT='$(PWD)'
#這一步會報(bào)個(gè)warn,說參數(shù)過時(shí)直接給你換新的了,沒關(guān)系,繼續(xù),以后研究
xcrun -sdk iphoneos PackageApplication "./Release-iphoneos/${APP_NAME}.app" -o ${IPA_PATH}
3.上傳蒲公英
去蒲公英注冊個(gè)帳號.順手扔個(gè)應(yīng)用上去.拿到ukey和apikey
IPA_PATH=$(cat ipaPath.txt)
rm -rf ipaPath.txt
echo "++++++++++++++upload+++++++++++++"
#替換為你自己的兩個(gè)key
curl -F "file=@${IPA_PATH}" -F "uKey=xxx" -F "_api_key=xxx" https://qiniu-storage.pgyer.com/apiv1/app/upload
完成
踩過的一些坑
- scheme 在打包服務(wù)器上的工程里設(shè)置為share
- xcode的簽名方式改為手動能避免很多麻煩,雖然xcode更新了自動簽名是蘋果的一番好意
- 構(gòu)建步驟開始前一定記得手動給權(quán)限,敲黑板!
- keychain是打包機(jī)器的
