码迷,mamicode.com
首页 > 移动开发 > 详细

gitlab+jenkins自动化打包IOS

时间:2019-07-24 19:33:01      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:空白   code   自动   tla   分配   echo   new   ons   http   

实现的效果如图:

安卓:

IOS:

功能说明:

 

因为搭建平台写了一系列博文,这里作一个总结与整理

 

具体的配置:

首先jenkins需要的插件:

  • build-name-setter:用于修改Build名称
  • description setter plugin:用于在修改Build描述信息,在描述信息中增加显示QRCode(二维码)
  • Build Name and Description Setter
  • Git Parameter 参数化构建分支

1.MAC搭建jenkins

  • 注意:直接下载war包, 不要下载Mac OS X,

参照:MAC 安装jenkins

 

 

Tips:

最好是把jenkins.war包放在tomcat中运行,这样比较方便配置开机自启动,

如果使用java命令启动jenkins,每次开机都要使用命令去启动会很麻烦

 

2.jenkins创建测试job

 

3.配置与gitlab连接,别忘记在jenkins宿主机配置gitlab的host

 技术图片

4.构建-打包脚本 

 

 1 ## !/bin/sh
 2 ## 项目名
 3 TARGET_NAME="5i5jAPP"
 4 ## xcworkspace文件所在目录 
 5 TARGET_PATH="5i5jWorkspace/5i5jAPP"
 6 ## Scheme名
 7 SCHEME="5i5jAPP"
 8 ##=======================
 9 ## 编译类型
10 BUILD_TYPE=${ENV}
11 ## 当前目录
12 SORCEPATH=${WORKSPACE}
13 ## workspace名
14 SPACE=${WORKSPACE}/${TARGET_PATH}/${TARGET_NAME}.xcworkspace
15 ##xcarchive文件的存放路径
16 ARCHIVEPATH=$SORCEPATH/build/$SCHEME.xcarchive
17 ## ipa文件的存放路径
18 EXPORTPATH=$SORCEPATH/build/$SCHEME
19 ## ExportOptions.plist文件的存放路径
20 EXPORTOPTIONSPLIST=$SORCEPATH/build/ExportOptions.plist
21 ## 导出后的ipa路径
22 EXPORTPATHIPA=$SORCEPATH/build/$SCHEME/$SCHEME.ipa
23 
24 
25 echo -e "============First Build Clean============"
26 ## 清理缓存
27 xcodebuild clean -workspace $SPACE -scheme ${SCHEME} -configuration ${BUILD_TYPE}
28 
29 echo -e "============Build Clean============"
30 ## 输出关键信息
31 echo -e "  TARGET_NAME    : ${TARGET_NAME}"
32 echo -e "  BUILD_TYPE    : ${BUILD_TYPE}"
33 echo -e "  SORCEPATH    : ${SORCEPATH}"
34 echo -e "  ARCHIVEPATH    : ${ARCHIVEPATH}"
35 echo -e "  EXPORTPATH    : ${EXPORTPATH}"
36 echo -e "  EXPORTOPTIONSPLIST    : ${EXPORTOPTIONSPLIST}"
37 
38 echo -e "============Build Archive============"
39 
40 ## 导出archive包
41 xcodebuild archive -workspace ${SPACE} -scheme ${SCHEME} -archivePath $ARCHIVEPATH
42 
43 echo -e "============Build Archive Success============"
44 
45 echo -e "============Export IPA============"
46 
47 ## 导出IPA包
48 xcodebuild -exportArchive -archivePath $ARCHIVEPATH -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}
49 
50 echo -e "============Export IPA SUCCESS============"
51 
52 ## 编译完成时间 20181030_0931
53 BUILD_DATE="$(date +‘%Y%m%d_%H%M‘)"
54 
55 ## info.plist路径
56 PROJECT_INFOPLIST_PATH="${SORCEPATH}/${TARGET_PATH}/${TARGET_NAME}/Info.plist"
57 ## 取版本号
58 BUNDLESHORTVERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${PROJECT_INFOPLIST_PATH}")
59 ## 取build值
60 VERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${PROJECT_INFOPLIST_PATH}")
61 ## ipa更名规则  项目名V版本_年月日_时分
62 IPANAME="${TARGET_NAME}V${BUNDLESHORTVERSION}_${BUILD_DATE}.ipa"
63 ## 更名后ipa路径
64 EXPORTPATHNEWIPA=$EXPORTPATH/$IPANAME
65 
66 echo -e "============Export end :${BUILD_DATE}============"
67 echo -e "============IPA Old Name: ${EXPORTPATHIPA}============"
68 echo -e "============IPA New Name: ${EXPORTPATHNEWIPA}============"
69 
70 ## IPA更名
71 cp $EXPORTPATHIPA $EXPORTPATHNEWIPA
72 
73 echo -e "============Create New Name Success============"
74 
75 ## 删除老IPA
76 ##rm $EXPORTPATHIPA
77 
78 ##echo -e "============Delete Old Name Success============"

 

5.将ipa文件上传蒲公英

参照:

 

6.构建成功,在构建历史中展示二维码

jenkins插件set build description使用规则

 

7.收集编译成功物

 

8.自定义build名字

  在Build History列表中,构建任务的名称默认显示为按照build次数递增的BUILD_NUMBER。有时候我们可能想在build名称中包含更多的信息,例如包含当次构建的SCHEMECONFIGURATION,这时我们就可以通过修改BuildName实现。

  Jenkins默认不支持BuildName设置,但可通过安装build-name-setter插件进行实现。安装build-name-setter插件后,在配置页面的Build Environment栏目下会出现Set Build Name配置项,然后在Build Name中就可以通过环境变量参数来设置build名称。

  例如,要将build名称设置为上面截图中的StoreCI_Release_#130样式,就可以在Build Name中配置为${SCHEME}_${CONFIGURATION}_#${BUILD_NUMBER}

除了在Build Name中传递环境变量参数,build-name-setter还可以实现许多更加强大的自定义功能,大家可自行探索。

 

9.通过git parameter动态选择仓库中的分支进行打包

 参照:

jenkins-参数化构建(三)插件:Git Parameter

https://www.cnblogs.com/zhaojingyu/p/9862443.html

 

遇到的问题及解决办法:

搭建jenkins:

初次打开jenkins页面一片空白的解决办法

 

其它配置:

JENKINS针对不同项目组对用户进行权限分配

 

感谢大佬:

提供了很多思路:

 

https://debugtalk.com/post/iOS-Android-Packing-with-Jenkins/

 

gitlab+jenkins自动化打包IOS

标签:空白   code   自动   tla   分配   echo   new   ons   http   

原文地址:https://www.cnblogs.com/kaerxifa/p/11221267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!