記錄jenkins-ios-Xcodebuild-xcrun-蒲公英

首先安裝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ī)器的
以上只是jenkins很基礎(chǔ)的一些使用,具體的高級使用有待探索,感謝開源世界,以及因?yàn)闀r(shí)間有點(diǎn)長,忘了都爬過誰的文章了,總之,Thx!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容