1 安装Jenkins

Jenkins是基于Java开发的一种持续集成工具。所以呢,要使用Jenkins必须使用先安装JDK。

JDK安装

JDK 下载地址

jdk 1.8.png

安装JDK的过程略,别说你不会安装(如有不会安装的,自行百度)。

Jenkins安装

Jenkins 下载地址

Jenkins安装文件.png

点击图中 Mac OS X,会自动下载【jenkins-1.644.pkg】
安装过程略(双击jenkins-1.644.pkg后,下一步就OK了)。

注意: 1、Jenkins 安装成功后,会创建一个Jenkins用户,而Jenkins的工作区间默认是在【/用户/共享/Jenkins/Home/jobs】目录下,可以用Finder-->前往,进入。
2、Jenkins目录下的文件夹的读写权限只对Jenkins用户开放,所以后面apple证书等必须在Jenkins用户下安装,项目的ipa导出也得在Jenkins用户下操作。(或者用管理员权限修改该目录针对用户的权限)
3、Jenkins的使用是每一个用户都可以使用,所以有可能导致构建版本的时候报错,还是老老实实在Jenkins用户下操作吧。

测试Jenkins安装成功

打开浏览器,输入http://localhost:8080,如果能够正常打开Jenkins,则Jenkins安装成功。

2 安装Jenkins插件

Jenkins里有相当多的插件,使用什么工具就安装什么工具的插件。
比如我们这里使用SVN,就安装SVN的插件,如果你使用Git就安装Git的插件。
因为我已经安装了SVN,所以安装插件的过程就用Git来演示。

安装插件第一步.png

安装插件第二步.png

第三步,搜索,安装插件.png

第四步,安装过程.png

第五步,查看已安装插件.png

3 Xcode以及开发证书设置

因为要使用Xcode命令,所以必须保证Xcode command Line已安装。

3.1 设置apple development 证书

在原来Xcode开发所在用户下,导出发布证书,如果要打企业包(299刀)和公司/个人版包(99刀),则两种证书都要导出,然后拷贝到Jenkins用户环境下,双击安装到Mac 的钥匙串中。

证书设置第一步.png

证书设置第二步.png

注意:因为用户访问钥匙串中的证书需要权限,而用jenkins构建时,不管是用Xcode插件配置还是shell 脚本,都不能输入用户密码,所以必须设置证书的【访问控制】为允许所有应用程序访问此项目。

3.2 安装mobileprovision描述文件

同样需要在Jenkins用户下,安装好打包需要的手机描述文件。

4 配置构建项目

下面讲解构建项目的配置,可以使用本地的项目,也可以使用SVN上的项目(只需要填入svn上工程地址即可),然后输入shell 脚本就可以开始构建了。

4.1 使用本地项目构建

步骤如下:

配置项目,第一步.png

点击OK,在【/用户/共享/Jenkins/Home/jobs】目录下会生成HelloJenkins的目录。

配置项目第二步.png

配置第三步.png

其他的设置项,均不用设置,只需要设置下脚本即可,脚本详细的内容如下:

# 工程名
APP_NAME="HelloJenkins"
# 证书
CODE_SIGN_DISTRIBUTION="iPhone Distribution: XXXXXXXXXXXX"
# info.plist路径
project_infoplist_path="./${APP_NAME}/Info.plist" #取版本号
bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${project_infoplist_path}") #取build值
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}") DATE="$(date +%Y%m%d)"
IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa" echo "=================clean================="
xcodebuild -target "${APP_NAME}" -configuration 'Release' clean echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild -target "${APP_NAME}" -sdk iphoneos -configuration 'Release' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}" SYMROOT='$(PWD)' xcrun -sdk iphoneos PackageApplication "./Release-iphoneos/${APP_NAME}.app" -o ~/"${IPANAME}"

注意1:【-o ~/$IPANAME】表示导出的ipa文件在当前用户的目录下,即【/用户/共享/Jenkins/】下。
其中CODE_SIGN_IDENTITY="iPhone Distribution: xxxxxxxxxx"是你打包使用的证书在钥匙串中的常用名称。
导出的ipa,叫【HelloJenkins_V1.2_20160118.ipa】。

注意2:如果如上图【配置项目第二步.png】那样,在xcodeproj相同目录下,新建一个sh脚本文件,用【sh xxx.sh】命令的话,见下一篇介绍。
如果你的项目中用到了cocoapods,那脚本有几个参数需要调整一下,详情见下一篇。

注意3(2016.02.17更新):CODE_SIGN_IDENTITY 这个属性可以不设置,直接设置profile就可以了,编译时会自动去匹配对应的CODE_SIGN_IDENTITY,需要注意的是设置profile时,设置的是其UUID值。例如【PROVISIONING_PROFILE='f035763e-e847-4db8-ac10-0004809fdc90'】

点击保存,然后点击左侧菜单,立即构建,即可开始构建。

立即构建.png

构建成功.png

构建结果.png

4.2 使用svn地址构建

第一步,新建项目,与上面的一样。
第二步,不用将工程拷贝到jobs目录下了,直接在配置里源码管理那一栏设置svn地址

SVN配置.png

第三步,设置shell 脚本,与上面的一样。
第四步,立即构建即可。

Mac下Jenkins+SVN+Xcode构建持续的更多相关文章

  1. Mac下Jenkins+SVN+Xcode构建持续导出环境

    1 安装Jenkins Jenkins是基于Java开发的一种持续集成工具.所以呢,要使用Jenkins必须使用先安装JDK. JDK安装 JDK 下载地址 jdk 1.8.png 安装JDK的过程略 ...

  2. Jenkins + svn + maven 构建持续集成环境搭建

    Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...

  3. 转:Mac下搭建svn服务器和XCode配置svn

    Mac下搭建svn服务器和XCode配置svn 先打开命令行终端. 1.创建svn repository svnadmin create /yourpath/svnroot/repository 2. ...

  4. iOS开发MAC下配置svn

    版本控制对于团队合作显得尤为重要,那么如何在iOS开发中进行版本控制呢?在今天的博客中将会介绍如何在MAC下配置SVN服务器,如何导入我们的工程,如何在Xcode中进行工程的checkOut和Comm ...

  5. MAC 下安装 SVN

    在mac下安装svn走了很多弯路,进过探索,现在对svn的安装做了总结,可以分为2种: 1.由于 xCode自带svn,所以可以安装xCode 1).打开App Store,搜索xCode,下载安装 ...

  6. Mac下利用(xcode)安装git

    Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...

  7. Ubuntu系统下Jenkins的git构建基本方法

    上一博文讲到了本地脚本的构建方法. 本篇博文主要讲“Ubuntu系统下Jenkins的git构建基本方法”. 点击保存后即可完成简单的构建. 构建触发器 这个触发器是决定什么时候触发构建,可以设置为定 ...

  8. Jenkins+svn+ant+tomcat持续集成

    转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...

  9. Mac 下使用svn

    作为一个一直使用windows系统的人,还真不知道mac上的svn如何使用,偶然机会下现在需要. 查过后发现 mac 是自带svn的,在我装好xcode后,再安装 Command Line Tools ...

随机推荐

  1. PHP相关笔记

    扩展包(相关链接):https://packagist.org/: 插件postman主要应用于web开发时get.post请求时查看其响应:

  2. paramiko 的使用

    paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于远程连接机器执行基本命令,也可以执行shell脚本 基于用户名密码连接: def ssh_connect ...

  3. 机器学习实战笔记(Python实现)-07-分类性能度量指标

    1.混淆矩阵 下图是一个二类问题的混淆矩阵,其中的输出采用了不同的类别标签 常用的衡量分类性能的指标有: 正确率(Precision),它等于 TP/(TP+FP) ,给出的是预测为正例的样本中的真正 ...

  4. Java JDBC Thin Driver 连接 Oracle 三种方法说明(转载)

    一.JDBC 连接Oracle 说明 JDBC 的应用连接Oracle 遇到问题,错误如下: ORA-12505,TNS:listener does not currently know of SID ...

  5. 1-1 Linux系统安装

    虚拟机下配置网络时 rhel7.2安装新建虚拟机内存2G CPU 1核2线 硬盘20G存为单个文件 使用ISO镜像 桥接网卡引导界面:    Install Red Hat Enterprise L ...

  6. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  7. 初识WebService

    一.什么是Web服务 Web服务是一种可以用来解决跨网络应用集成问题的开发模式,目的是保证不同平台的应用服务可以互操作 二.Web服务的三个核心 Soap: SOAP(Simple Object Ac ...

  8. vs2015 编译时错误列表中没有错误,dll却没有生成出来

    最近发现vs2015的一个问题, 编译时,错误列表中没有错误,dll却没有生成出来,vs重启也无效 解决: 多次排查发现如果一个类库设置的是framework 4.0版本,但引用了framework4 ...

  9. [LeetCode] Maximum Subarray 最大子数组

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  10. SQLite源程序分析之回叫机制

    1.SQL访问数据库非常方便,只需简单的三个函数: sqlite3_open(char* szDbFileName, sqlite3 ** db) sqlite3_exec(sqlite3 *db, ...