gitlab+jenkins自动化打包IOS

实现的效果如图:

安卓:

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/

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

时间: 2024-10-27 20:07:40

gitlab+jenkins自动化打包IOS的相关文章

iOS Jenkins 自动化打包构建

前言 在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的.因此在这种情况下,开发通常都会搭建一个简单的自动化打包平台(Jenkins),自动化构建打包或者上传到蒲公英,firm等分发平台.作为测试也需要了解相关的知识,因为这些工作也有可能测试来做或推动开发去做相关的工作,用以优化提高开发测试效率. 涉及技术点: Jenkins的搭建配置,任务构建 iOS开发环境配置 iOS

jenkins 自动化打包 ipa 的 一些坑

公司申请了一台 mac mini 本来是用来方便iOS专属打包,而搭建Jenkins自动发布平台的,但是鉴于领导是android控 于是乎 对 mac mini 配置进行 大大改造 以至于 本来好好的 iOS项目的打包功能 也陷入瘫痪(关键你改了 你说一声,你也不吭声).... 好吧接下来说问题, 开始自动化编译ipa,哗哗打印日志 突然 error: /usr/bin/codesign --force --preserve-metadata=identifier,entitlements,re

gitlab+jenkins自动化部署

基于gitlab和jenkins的自动化部署 Gitlab基于Jenkins自动化部署教程: https://blog.csdn.net/aaaaaab_/article/details/82012044 https://www.cnblogs.com/dengbingbing/p/10448185.html GitLab是一个代码仓库,用来管理代码. Jenkins是一个自动化服务器,可以运行各种自动化构建.测试或部署任务.所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenki

iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App

继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插件 在Jenkins首页选择系统管理 选择插件管理 搜索xcode, 安装Xcode integration插件 勾上安装后重启, 等待结束 如果出现安装进度条在最后一点卡很近, 手动重启下Jenkins然后到已安装插件中检查是否已经安装了 安装好插件后下面我们开始创建任务 首先点击新建任务 输出任

gitlab+jenkins 自动化部署 持续集成

环境: 1.centos7.6 2.jdk1.8.0_141 3.4G 30G 4core 4.关闭防火墙和selinux 一.安装jenkins 1. 下载jenkins https://pkg.jenkins.io/redhat/  jenkins-2.208-1.1.noarch.rpm 2.安装jdk和jenkins rpm包 rpm -ivh jdk-8u141-linux-x64.rpm rpm -ivh jenkins-2.208-1.1.noarch.rpm 3.启动服务及设置开

Jenkins自动化打包--war包

一.需求 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是>需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven.因本公司仓库使用svn,这里通过svn部署. 二.实验环境 三.实验步骤 1.安装插件 "系统管理"--"管理插件"--"可选插件" Java 项目所需插件下载 2.安装打包工具maven (1)软件下载 wget http://mirror.bit.edu.c

1)gitlab+jenkins自动化发布;gitlab搭建

安装gitlab 参考文档: https://www.yiibai.com/gitlab/gitlab_introduction.html 1.下载epel源 wget http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm 2.wget -O /etc/yum.repos.d/CentOS-Base.repo 3.关闭防火墙和seLinux 4. yum install curl policycoreutils opens

Mac下Unity使用Jenkins自动化打包

重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装  PS:会有权限问题 重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装 重要的事情说三遍:不要使用jenkins dmg安装包直接安装,用brew安装 https://www.xuanyusong.com/archives/3349   宣雨松 原文地址:https://www.cnblogs.com/MuniuTian/p/10452024.html

gitlab+jenkins环境搭建.md

gitlab+jenkins自动化部署环境搭建 环境说明 系统 主机 IP 安装软件 CentOS 7 study-1 192.168.100.51 gitlab.git CentOS 7 study-2 192.168.100.52 jdk.maven.jenkins.git CentOS 7 study-3 192.168.100.53 tomcat.mysql.jenkins.git 所有系统的selinux和iptables都已经关闭,同时需要做好时间同步,机器的hosts文件如下: 1