iOS shell腳本打包

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

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

開頭

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

原理

xcode在jenkins中編譯、shell編譯仍是xcode自身編譯都是須要xcode本身的IDE環境決定的,具體來講就是api

xcodebuild & xcrun這倆傢伙來完成

廢話很少說,直接上腳本,須要的本身改一下便可。xcode

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上探索一些持續構建的工做。bash



文/lp_馬建成(簡書做者) 原文連接:http://www.jianshu.com/p/5abbe0d61cef 著做權歸做者全部,轉載請聯繫做者得到受權,並標註「簡書做者」。
相關文章
相關標籤/搜索