关于iOS自动化构建其实并不复杂,通过一些简单的Git与Xcode指令,加上UI,我们自己也可以动手编写一款自动化构建工具。这在之前的博客中也有涉及,有兴趣的朋友可以在如下地址找到这篇博客:

自己动手设计一款iOS自动构建发布工具:my.oschina.net/u/2340880/b…

本篇博客主要记录使用Jenkins搭建iOS自动化构建项目的过程,关于Jenkins的更多自动化脚本的应用,有机会后面再出专门的博客介绍。

一、Jenkins的安装与启动

Jenkins的安装非常方面,在如下官网可以直接下载Jenkins的安装包,其中有支持各个平台的安装包,选择自己所需要的进行下载安装即可。

jenkins.io/

安装完成后,Jenkins会自动启动运行,在当前电脑的8080端口开启一个Web应用服务,如果是第一次安装启动,我们需要配置一个账户作为初始用户。

对于在Mac上Jenkins的启动,有两种方式:

方式一:直接运行Java归档文件启动Jenkins

如果是Mac电脑,Jenkins安装完成后,在Applications目录下会多出一个Jenkins文件夹,这个文件夹中包含一个jenkins.war的文件,如下图所示:

使用如下命令来启动Jenkins:

java -jar /Applications/Jenkins/jenkins.war

使用这种方式启动的Jenkins,要关闭服务需要找到Jenkins服务对应的PID,在终端输入如下命令:

ps

在终端输出的信息中,可以看到Jenkins服务所对应的PID号,如下图:

终端使用如下命令将此服务杀死即可:

kill -9 PID号

方式二:使用Mac的启动进行控制器启动Jenkins

如果成功安装了Jenkins,在Mac电脑磁盘的资源库中的LaunchDaemons文件夹下可以找到Jenkins的启动配置文件,如下图:

在命令行中执行如下命令即可启动Jenkins服务:

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

使用如下命令关闭Jenkins服务:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

二、创建持续集成项目

在Jenkins的主页选择新建一个项目,创建选项中,我们输入项目名称,并选择构建一个自由风格的软件,如下图:

下一步将进入到项目配置界面,首先需要设置下通用的配置,如下图:

其中,描述部分可以填写项目的相关介绍,丢弃旧的构建设置构建记录保存的天数和最多保持多少个构建记录等。

源码管理的配置是比较重要的一步,其用来设置构建项目从哪里拉取项目的源代码以及进行源码更新的操作。如下图:

如果使用的是Git仓库,如上图所示,需要配置项目的路径,账户以及要进行构建的分支。账户的主要用途是使得Jenkins有权限拉取项目的代码,如果之前没有添加过,可以点击右侧的Add按钮进行添加,如下图:

可以选择配置用户名加密码的方式添加账户,也可以使用SSH公钥的方式。

下一步我们需要配置构建的触发器,构建触发器有多种形式,比如定时触发构建,远程触发,代码提交后触发等等,如下图:

其中远程触发是指我们可以通过远程访问Jenkins服务器地址加上令牌参数来触发构建。

之后再构建一栏中选择增加构建步骤->执行Shell,添加如下Shell脚本:

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
/usr/local/bin/pod install
xcodebuild -archivePath "/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/你的项目名.xcarchive" -workspace 你的项目名.xcworkspace -sdk iphoneos -scheme "你的项目名" -configuration "Release" archivexcodebuild -exportArchive -archivePath "/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/你的项目名.xcarchive" -exportPath "/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/buildIPA" -exportOptionsPlist '/Users/Shared/Jenkins/Home/workspace/Tictalk-iOS/ExportOptions.plist' -allowProvisioningUpdates
curl -F "file=@/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/buildIPA/你的项目名.ipa"

上面脚本中,xcodebuild -archivePath 命令用来编译项目,如果你的项目没有使用workspace,需要将命令中的workspace修改成project,configuration参数用来配置编辑的方式,Release为发布环境。xcodebuild -exportArchive 命令用来到处API包,需要额外注意,提前我们需要在/Users/Shared/Jenkins/Home/workspace/Jenkins项目名称/你的项目名这个目录下添加一个ExportOptions.plist文件,新Xcode如果不配置这个文件是无法打包成功的。curl -F 命令是用来将打包好的IPA包自动上传到蒲公英分发平台。

ExportOptions.plist文件编写格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>compileBitcode</key><false/><key>method</key><string>ad-hoc(IPA包模式)</string><key>provisioningProfiles</key><dict>(下面设置bundleID对应的provisioningProfiles文件名)<key>com.***</key><string>AD_HOC</string><key>com.***.TKNotificationCentent</key><string>Content</string><key>com.***.TKNotificationService</key><string>Service</string></dict>(下面配置证书)<key>signingCertificate</key><string>iPhone Distribution</string><key>signingStyle</key><string>manual</string><key>stripSwiftSymbols</key><true/>(下面配置teamID)<key>teamID</key><string>KJYHPT****</string><key>thinning</key><string><none></string>
</dict>
</plist>

三、构建可能出错的地方

配置完了上面的脚本,你可以尝试点击立即构建按钮进行构建,当然构建过程中极有可能会出错,你可以根据log输出检查下是否是因为下面的问题。

1.git相关命令出错

可能是Jenkins找不到git所在位置,在Jenkins的系统设置中选择全局工具配置,配置git路径如下图所示:

2.pod相关命令出错

这一步出错的可能性极大,首先你的电脑可以使用pod不代表jenkins用户有使用pod的权限,最好使用jenkins用户登录电脑,进行pod的更新升级,或者直接使用jenkins用户登录,找到我们的项目,手动使用pod进行第三方的安装。

3.xcodebuild相关命令出错

和git命令出错的问题基本一致,我们需要配置路径。在Jenkins的系统设置中找到系统配置,设置xcode相关工具如下:

4.编译过程中证书或配置文件出错

首先确保你的应用证书放在了钥匙串的系统分类下,如图:

其次,需要将Provisioning Profiles文件复制到下面的目录下,切记:

/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles

最后,请确认可以使用Xcode手动进行编辑和打包。而且证书和Provisioning Profiles文件一定要正确和匹配。

使用Jenkins配置iOS自动化构建工具相关推荐

  1. 实践Jenkins集成Cobertura自动化构建SpringBoot工程

    在每个系统上线正式发布之前,开发同事对其中功能点进行自测,测试同事根据前期设计的测试用例进行功能测试的都是保障系统可靠稳定运行的重要前提.但是,系统上线后故障还偶有发生,那么如何才能将系统代码质量提高 ...

  2. 前端自动化构建工具:用Gulp4.0搭建一个基本的前端开发环境

    一个项目的完成一般需要经过三个步骤:初始化.开发和部署.在前端开发过程中,我们经常需要依靠一些自动化构建工具来优化前端工作流程,来帮助我们完成一系列繁琐的工作,例如浏览器热更新.ES6编译.代码压缩. ...

  3. Maven(自动化构建工具)

    目录 Maven简介 1.1 软件开发中的阶段 1.2 Maven能做什么 1.3 什么是Maven 1.4 Maven的概念 1.5 Maven安装 Maven的核心概念 2.1约定的目录结构 2. ...

  4. 【LINUX修行之路】——工具篇gcc/g++的使用和自动化构建工具make/makefile

    学习范围:✔️LINUX ✔️ gcc/g++✔️make/makefile 本文作者:蓝色学者 文章目录 一.前言 二.概念 什么是gcc/g++? 什么是make/makefile? 三.教程 3 ...

  5. 亚信UED前端流程自动化构建工具

    亚信UED前端流程自动化构建工具 亚信UED前端流程自动化构建工具 aiflow 亚信 gulp 项目由亚信CMC UED团队创建,用于解决前端项目构建的流程管理,以及复杂度问题解决. 亚信UED前端 ...

  6. 前端工程化实战 - 自动化构建工具

    文章目录 一.自动化构建简介 二.自动化构建初体验 2.1 场景描述 2.2 实际操作体验 三.常用的自动化构建工具 3.1 Grunt 3.2 Gulp 3.3 FIS 四.自动化构建工具 Grun ...

  7. 前端自动化构建工具合集之gulp-姜威-专题视频课程

    前端自动化构建工具合集之gulp-2984人已学习 课程介绍         Gulp自动化构建系统,使用node.js串流让构建更的组合,利用外挂(plugins)使应用更灵活,简单的四个命令,组合 ...

  8. express搭建项目--express自动化构建工具

    express自动化构建工具 一.   安装express-generator 全局安装express自动化构建工具 npm install -g express-generator 使用expres ...

  9. python自动化构建工具_Python自动化构建工具scons使用入门笔记

    这段时间用到了scons,这里总结下,也方便我以后查阅. 一.安装sconsLinux环境(以CentOS为例) 1.yum安装 yum install scons 2.源码安装 下载scons:ht ...

最新文章

  1. WCF方法拦截及OperationInvoker传递参数到WCF方法的实现
  2. crontab 案例
  3. 单例模式---懒汉模式与饿汉模式
  4. memcached 安装小结-1
  5. gatsby_如何在Gatsby.js中使用本地状态保持页面之间的状态
  6. Java进阶知识点:协变与逆变
  7. 测试监控系列:使用vb批量统计nmon结果
  8. Spring Cloud Gateway替代zuul作为API网关(一)
  9. 腾讯云服务器公网ip无法访问
  10. 隐秘?混乱?商业化?记者深入总部,探寻OpenAI“拯救世界”背后的真相
  11. 华为电脑管家装到D盘_春节过后你的电脑该减肥了 Win10清理C盘瘦身全攻略
  12. 各个国家的邮编规则集
  13. 解决default activity not found办法大全
  14. css 标点符号换行问题
  15. 台式计算机垃圾清理程序,PC Cleaning Utility(电脑垃圾清理软件)
  16. ACD_把dwg像控件一样放到界面
  17. “黎明”号新任务继续“锁定”谷神星
  18. java取模数,Java中的模数
  19. Deep Retinex Decomposition for Low-Light Enhancement 论文阅读笔记
  20. 疫情当前,「在家远程办公」可能是最佳选择

热门文章

  1. linux分区_解决Linux下挂载的NTFS分区(Windows分区)只读问题。
  2. 21天打卡Andoid学到的一些小知识-第十五十六天
  3. JAVA-JVM的钩子函数
  4. VA01/VA02/VA03 屏幕增强
  5. 惠普台式机带的正品三星内存,供内存真伪辨别参考
  6. element ui 电商后台商品属性管理页面
  7. Docker Swarm使用NFS作为共享存储
  8. Linux终端连接redis数据库【重点】
  9. Performance API
  10. 制作建筑轮廓矢量数据教程 导出dxf、shp等各种矢量格式