iOS shell腳本打包


原文鏈接:http://www.jianshu.com/p/5abbe0d61cef

參考鏈接:http://blog.csdn.net/potato512/article/details/52176073

開頭

前面幾片記錄了jenkins的使用,配置一個jenkins環境,我們需要一個比較閑得筆記本做這份工作,不可能自己的本一直開着這個服務,動不動CPU風扇狂轉,其他性能下降,反而會影響我們工作,怎么辦了,寫個shell腳本幫我們完成工程打包、上傳。

原理

xcode在jenkins中編譯、shell編譯還是xcode自身編譯都是需要xcode自己的IDE環境決定的,具體來說就是

xcodebuild & xcrun這倆家伙來完成

廢話不多說,直接上腳本,需要的自己改一下即可。

project打包上傳

#!/usr/bin/bash #next test #1.證書 #2.打包狀態每部判斷 #設置Xcode的Build Settings->Code Signing Resource Rules Path的值為:$(SDKROOT)/ResourceRules.plist #xcodeproj文件的絕對路徑 PROJECT="/Users/mac/Desktop/pro/git/MCPayDemo/MCPayDemo.xcodeproj" SCHEME="MCPayDemo" #iPhone Distribution: IDENTITY="iPhone Developer: ma jiancheng (xxxxx)" #Distribution Provision File Path PROVISIONING_PROFILE="/Users/mac/Library/MobileDevice/Provisioning\ Profiles/ead3e7e7-a2e8-45c2-98fa-008f3712xxxx.mobileprovision" #輸出ipa文件的路徑, 最好是絕對路徑 OUTDIR="/Users/mac/Desktop/pro/git/MCPayDemo/output" PRODUCTDIR=${OUTDIR} #FIR 秘鑰 FIRTOKEN="5558b26ae383df7390b880xxxxxxx" #蒲公英aipKey PAPIKEY="c1ad57c15a5bb0c770c51639xxxxxxx" #蒲公英uKey PUKEY="d5eb8f86040b9ae6108ed4c58xxxxxxx" if [ ! -f $PROVISIONING_PROFILE ]; then echo "Please download the provision file for "${PROVISIONING_PROFILE} exit 4; fi echo "~~~~~~~~~~~~~~~~清理工程~~~~~~~~~~~~~~~~編譯工程~~~~~~~" echo "${OUTDIR}${SCHEME}.ipa" echo "xcrun -sdk iphoneos PackageApplication -v ${PRODUCTDIR}/${SCHEME}.app -o ${OUTDIR}/${SCHEME}.ipa --sign ${IDENTITY} --embed ${PROVISIONING_PROFILE}" xcodebuild -project "${PROJECT}" -scheme "${SCHEME}" -configuration Release clean build CODE_SIGN_IDENTITY="${IDENTITY}" -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR} #打包成 .ipa echo "~~~~~~~~~~~${SCHEME}.ipa}~~~scuess" echo "xcrun -sdk iphoneos PackageApplication -v ${PRODUCTDIR}/${SCHEME}.app -o ${OUTDIR}/${SCHEME}.ipa --sign \"${IDENTITY}\" --embed ${PROVISIONING_PROFILE}" xcrun -sdk iphoneos PackageApplication -v "${PRODUCTDIR}/${SCHEME}.app" -o "${OUTDIR}/${SCHEME}.ipa" # --sign "\"${IDENTITY}\"" --embed "${PROVISIONING_PROFILE}" #上傳到測試平台 -> fir.im fir p "${OUTDIR}/${SCHEME}.ipa" -T "${FIRTOKEN}" echo "-------------------->fir.im------->蒲公英---------" echo "curl -F file=@${OUTDIR}/${SCHEME}.ipa -F uKey=${PUKEY} -F _api_key=${PAPIKEY} http://www.pgyer.com/apiv1/app/upload" curl -F "file=@${OUTDIR}/${SCHEME}.ipa" -F "uKey=${PUKEY}" -F "_api_key=${PAPIKEY}" "http://www.pgyer.com/apiv1/app/upload" echo "\n\n"

workspace打包上傳

/#!/usr/bin/bash ############################################# /# batch rename # /# Input : $1 SCHEME # /# eg:需要編譯的scheme # /# Input : $2 PROVISION PREFIX # /# eg: mobileprovision文件的名稱 # ############################################# #next test #1.證書 #2.打包狀態每部判斷 #設置Xcode的Build Settings->Code Signing Resource Rules Path的值為:$(SDKROOT)/ResourceRules.plist #xcodeproj文件的絕對路徑[修改] WORKSPACE_PATH="/Users/mac/Desktop/car/Runnor.CarService.IosApp/" WORKSPACE_NAME="MCCarServiceiPhone" SCHEME="MCCarServiceiPhone" #生成的APP名稱,根據xcode項目 plist來定 APPNAME="MCCarServiceiPhone" #iPhone Distribution: FOO. IDENTITY="\"iPhone Developer: ma jiancheng (xxxxxxxxx)\"" #Distribution Provision File Path PROVISIONING_PROFILE="/Users/mac/Library/MobileDevice/Provisioning\ Profiles/ead3e7e7-a2e8-45c2-98fa-008f3712382d.mobileprovision" #輸出ipa文件的路徑, 最好是絕對路徑 OUTDIR="${WORKSPACE_PATH}/output" #FIR 秘鑰 FIRTOKEN="5558b26ae383df7390b880bexxxxxxx" #蒲公英aipKey PAPIKEY="c1ad57c15a5bb0c770c51639xxxxxxx" #蒲公英uKey PUKEY="d5eb8f86040b9ae6108ed4c5xxxxxxxx" if [ ! -f $PROVISIONING_PROFILE ]; then echo "Please download the provision file for " ${PROVISIONING_PROFILE} exit 4; fi echo "~~~~~~~~~~~~~~~~清理工程~~~~~~~~~~~~~~~~編譯工程~~~~~~~" echo "${OUTDIR}${APPNAME}.ipa" echo "xcodebuild -workspace ${WORKSPACE_NAME}.xcworkspace -scheme ${SCHEME} -configuration Release clean build CODE_SIGN_IDENTITY=${IDENTITY} -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR}" xcodebuild -workspace "${WORKSPACE_PATH}/${WORKSPACE_NAME}.xcworkspace" -scheme "${SCHEME}" -configuration Release clean build CODE_SIGN_IDENTITY="${IDENTITY}" -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR} #打包成 .ipa echo "~~~~~~~~~~~${APPNAME}.ipa}~~~scuess" echo "xcrun -sdk iphoneos PackageApplication -v ${OUTDIR}/${APPNAME}.app -o ${OUTDIR}/${APPNAME}.ipa --sign ${IDENTITY} --embed ${PROVISIONING_PROFILE}" xcrun -sdk iphoneos PackageApplication -v "${OUTDIR}/${APPNAME}.app" -o "${OUTDIR}/${APPNAME}.ipa" # --sign "${IDENTITY}" --embed "${PROVISIONING_PROFILE}" #上傳到測試平台 -> fir.im echo "-------------------->fir.im------->蒲公英---------" #fir p "${OUTDIR}/${SCHEME}.ipa" -T "${FIRTOKEN}" # -> 蒲公英 echo "curl -F file=@${OUTDIR}/${APPNAME}.ipa -F uKey=${PUKEY} -F _api_key=${PAPIKEY} http://www.pgyer.com/apiv1/app/upload" curl -F "file=@${OUTDIR}/${APPNAME}.ipa" -F "uKey=${PUKEY}" -F "_api_key=${PAPIKEY}" "http://www.pgyer.com/apiv1/app/upload" echo "\n\n" #--------------------end--------------

結語

這個shell語句寫的比較簡單,等閑暇會在本文優化。本文是jenkins的一個衍生,后續會在jenkins上探索一些持續構建的工作。



文/lp_馬建成(簡書作者)
原文鏈接:http://www.jianshu.com/p/5abbe0d61cef
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM