jenkins打包構(gòu)建shell命令

#!/bin/bash -l

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

#clean

#獲取腳本執(zhí)行目錄

#scrip_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

scrip_path="/Users/admin/Desktop/Work/build_ipa_shell"

#工程絕對(duì)路徑

#project_path=$(dirname "$scrip_path")

project_path="/Users/admin/Desktop/Work/xxx"

echo 'scrip_path :()'${scrip_path}

echo 'project_path :()'${project_path}

#工程名 將XXX替換成自己的工程名

project_name="Deyiche-xiakuan"

#scheme名 將XXX替換成自己的sheme名

scheme_name="Deyiche-xiakuan"

#project_type 項(xiàng)目如果是用cocoapod,就改為 xcworkspace,否則用 xcodeproj

project_type=xcworkspace

#打包模式 Debug/Release

development_mode=Release

#build文件夾路徑

build_path=${project_path}/build

#plist文件所在路徑

exportOptionsPlistPath=${project_path}/build_ipa_shell/ExportOptions-dev.plist

#echo "Place enter the number you want to export ? [ 0:測(cè)試 1:線上 2:auto-test] "

#

#read number

##0測(cè)試 1線上 2auto-test

#while([[ $number != 0 ]] && [[ $number != 1 ]] && [[ $number != 2 ]])

#do

#echo "Error! Should enter 1 or 2 or 0"

#echo "Place enter the number you want to export ? [ 1:app-store 2:ad-hoc 3:dev] "

#read number

#done

number=1

if [ $number == 0 ];then

#??? development_mode=Release Debug

development_mode=Debug

envirument="0"

#??? exportOptionsPlistPath=${project_path}/build_ipa_shell/ExportOptions-appstore.plist

elif [ $number == 1 ];then

development_mode=Debug

envirument="1"

#??? exportOptionsPlistPath=${project_path}/build_ipa_shell/ExportOptions-adhoc.plist

else

development_mode=Debug

envirument="2"

#??? exportOptionsPlistPath=${project_path}/build_ipa_shell/ExportOptions-dev.plist

fi

info_plist="/Users/admin/Desktop/Work/XiaKuan/Deyiche-xiakuan"/Info.plist

#exportOptionsPlistPath=${project_path}/build_ipa_shell/ExportOptions-adhoc.plist

#exportOptionsPlistPath=${project_path}/build_ipa_shell/ExportOptions-Appstore.plist

#exportOptionsPlistPath是你先archive,export之后ipa包同目錄下的同名文件,包含了證書與配置文件信息,這個(gè)也可以手寫plist,但是手寫麻煩,直接用打包好現(xiàn)成的

exportOptionsPlistPath=${scrip_path}/ExportOptions.plist

/usr/libexec/PlistBuddy -c "Set :RunEnvirment ${envirument}" ${info_plist}

#導(dǎo)出.ipa文件所在路徑

exportIpaPath=${project_path}/ipa_files/${development_mode}

# 生成保存ipa文件的目錄

if [ ! -d ${project_path}/ipa_files ];

then

mkdir -p ${project_path}/ipa_files;

fi

# 打包類型

if [ $project_type == "xcodeproj" ];

then

project_build=project

else

project_build=workspace

fi

# 進(jìn)入項(xiàng)目目錄,方便后面的操作

cd ${project_path}

echo '///-----------'

echo '/// 正在清理工程'

echo '///-----------'

#xcodebuild \

#clean -configuration ${development_mode} -quiet? || exit

echo '///--------'

echo '/// 清理完成'

echo '///--------'

echo ''

echo '///-----------'

echo '/// 正在編譯工程:'${development_mode}

echo '///-----------'

xcodebuild \

archive -${project_build} ${project_path}/${project_name}.${project_type} \

-scheme ${scheme_name} \

-configuration ${development_mode} \

-archivePath ${build_path}/${project_name}.xcarchive? -quiet? || exit

echo '///--------'

echo '/// 編譯完成'

echo '///--------'

echo ''

echo '///----------'

echo '/// 開始ipa打包'

echo '///----------'

xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \

-configuration ${development_mode} \

-exportPath ${exportIpaPath} \

-exportOptionsPlist ${exportOptionsPlistPath} \

-quiet || exit

if [ -e $exportIpaPath/$scheme_name.ipa ]; then

echo '///----------'

echo '/// ipa包已導(dǎo)出'

echo '///----------'

open $exportIpaPath

else

echo '///-------------'

echo '/// ipa包導(dǎo)出失敗 '

echo '///-------------'

fi

echo '///------------'

echo '/// 打包ipa完成? '

echo '///-----------='

echo ''

# 打開生成ipa的目錄

open ${exportIpaPath}

# echo '///-------------'

# echo '/// 開始發(fā)布ipa包 '

# echo '///-------------'

# if [ $number == 1 ];then

# #驗(yàn)證并上傳到App Store

# # 將-u 后面的XXX替換成自己的AppleID的賬號(hào),-p后面的XXX替換成自己的密碼

# altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"

# "$altoolPath" --validate-app -f ${exportIpaPath}/${scheme_name}.ipa -u XXX -p XXX -t ios --output-format xml

# "$altoolPath" --upload-app -f ${exportIpaPath}/${scheme_name}.ipa -u? XXX -p XXX -t ios --output-format xml

# else

# #上傳到Fir

# # 將XXX替換成自己的Fir平臺(tái)的token

# fir login -T XXX

# fir publish $exportIpaPath/$scheme_name.ipa

# fi

#蒲公英上的User Key

uKey="5261cf40a3408a4d237d154df398075d"

#蒲公英上的API Key

apiKey="acea93e9056b474f8c5b9f0bbec25ef2"

#要上傳的ipa文件路徑

IPA_PATH="/Users/admin/Desktop/Work/XiaKuan/ipa_files/Debug/下款.ipa"

#執(zhí)行上傳至蒲公英的命令,這句不需要修改

curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" https://www.pgyer.com/apiv2/app/upload

exit 0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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