jenkins构建打包脚本

参考博客:https://wangjianjun0730.github.io/2017/10/Jenkins/

#!/bin/sh -
export LANG=en_US.UTF-8

# 工程名(根据项目自行填写)
APP_NAME="ybej"

# TARGET名称(根据项目自行填写)
TARGET_NAME="ybej"

# 工程根目录#工程源码目录(这里的${WORKSPACE}是jenkins的内置变量表示(jenkins job的路径):/Users/pingankeji/.jenkins/workspace/Mydemos/)   
# ${WORKSPACE}/MyDemos/ 中的MyDemos根据你的项目自行修改
CODE_PATH="${WORKSPACE}"

# 证书
# 证书配置根据自己的项目自行修改
CODE_SIGN_DISTRIBUTION="iPhone Distribution: Zhongshun Yijia international factoring business (Tianjin) Co., Ltd. (F6U8GB65T3)"

# 存放ipa的文件夹名称(根据自己的喜好自行修改)
IPA_DIR_NAME="${TARGET_NAME}_IPA"

# 导出ipa包的路径
IPA_EXPORT_PATH=${CODE_PATH}${IPA_DIR_NAME}

# 导包方式(这里需要根据需要手动配置:AdHoc/AppStore/Enterprise/Development)
EXPORT_METHOD="${EXPORT_TYPE}"

# 导包方式配置文件路径(这里需要手动创建对应的XXXExportOptionsPlist.plist文件,并将文件复制到根目录下[我这里在源项目的根目录下又新建了ExportPlist文件夹专门放ExportPlist文件])
if test "$EXPORT_METHOD" = "AdHoc"; then
    EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportPlist/AdHocExportOptions.plist
    Configuration_Type="Release"
    
elif test "$EXPORT_METHOD" = "AppStore"; then
    EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportPlist/AppStoreExportOptios.plist
    Configuration_Type="Release"

elif test "$EXPORT_METHOD" = "Enterprise"; then
    EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportPlist/EnterpriseExportOptions.plist
    Configuration_Type="Release"

else 
    EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportPlist/DevelopmentExportOptions.plist
    Configuration_Type="Debug"

fi  

# 指ipa定输出文件夹,如果有删除后再创建,如果没有就直接创建
if test -d ${IPA_EXPORT_PATH}; then
    rm -rf ${IPA_EXPORT_PATH}
    mkdir -pv ${IPA_EXPORT_PATH}
    echo ${IPA_EXPORT_PATH}
else
    mkdir -pv ${IPA_EXPORT_PATH}
fi

# 删除工程文件
echo "+++++++++删除工程文件+++++++++"
rm -rf "${TARGET_NAME}.xcarchive"



echo "++++++++++++++change build ++++++++++++++"

cd "${CODE_PATH}/ybej"
buildPlist="Info.plist"
last_build_version=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ${buildPlist})
#这个获取现在的 月日时分 用它来做build号
buildNumber=${last_build_version}$(date +"%d%H%M")
#修改plist文件需要/usr/libexec/PlistBuddy -c命令,CFBundleVersion是修改的这个build号,$buildNumber是你要修改的数值,$buildPlist是你修改哪个地方的plist文件。
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${buildNumber}" "${buildPlist}"

# 进入工程源码根目录
cd "${CODE_PATH}"

echo "++++++++++++++CODE_PATH ${CODE_PATH} ++++++++++++++"

# 更新pod
#/user/local/bin/pod update —verbose —no-repo-update

# 清除工程
echo "++++++++++++++clear++++++++++++++"
xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${TARGET_NAME}" -configuration 'Release' clean

# 获取钥匙串权限(-p 后面的密码为你的开机密码)
/user/bin/security unlock-keychain -p "package" ~/Library/Keychains/login.keychain-db

#将app打包成xcarchive格式文件(PROVISIONING_PROFILE后面是你配置的证书对应的描述文件UUID)
echo "+++++++++++++++++archive+++++++++++++++++"
xcodebuild  archive -workspace "${APP_NAME}.xcworkspace" -scheme "${TARGET_NAME}" -archivePath "${TARGET_NAME}.xcarchive" -configuration "${Configuration_Type}" 
# 将xcarchive格式文件打包成ipa
echo "+++++++++++++++++ipa+++++++++++++++++"
xcodebuild -exportArchive -archivePath "${APP_NAME}.xcarchive" -exportPath "${IPA_EXPORT_PATH}" -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH}


echo "+++++++++++++++++final operation +++++++++++++++++"

if test "$Configuration_Type" = "Release"; then

    deliver -u ybejdev@163.com -a com.ybejia.ybej --ipa ${IPA_EXPORT_PATH}/${APP_NAME}.ipa --skip_screenshots -f --skip_metadata

else 
# 登录fir,此处将APIToken换成自己申请的APIToken(-T 后面是你的fir账号APIToken)
fir login -T 356458773d7cf28bbc693d3f29b5c762
# 发布到fir
fir publish ${IPA_EXPORT_PATH}/${APP_NAME}.ipa
fi
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 听着窗外淅淅沥沥的雨声 闻着满室花香 拿着画笔 爬山虎已经在阳台漫步 百合花在花瓶里吐露芬芳 宣纸上的鸟儿勾勒出轮...
    花落眉心阅读 123评论 0 1
  • 各种正规不正规的测试都表明我适合与文字打交道,其实我自己也想以后从事一份与文字有关的工作,或许当个编辑。 作家是成...
    灵儿学姐阅读 201评论 0 0
  • 经常看兵哥文章的朋友应该知道,如果你想把思维导图落实到工作、生活、学习各个方面,你就要做下面的几件事: 复杂事情简...
    思维导图阅读 366评论 0 2