Mac下Jenkins+SVN+Xcode构建持续导出环境
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" if [ ! -f "$project_infoplist_path" ] then echo "*************************************" echo "*** plist文件路径错误! ****" echo "*** plist文件路径错误! ****" echo "*************************************" exit fi #取版本号 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%H%M%S)" IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa" # 导出路径 IPA_PATH=~/"${IPANAME}" 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 "${IPA_PATH}" if [ -f "$IPA_PATH" ] then echo "*************************************" echo "* iPa 导出成功 *" echo "* iPa 导出成功 *" echo "* iPa 导出成功 *" echo "* iPa 导出成功 *" echo "*************************************" echo "安装文件路径:${IPA_PATH}" #要上传到蒲公英的ipa文件路径 echo "${IPA_PATH}">> text.txt else echo "*************************************" echo "* iPa 导出失败 *" echo "* iPa 导出失败 *" echo "* iPa 导出失败 *" echo "* iPa 导出失败 *" echo "*************************************" echo "安装文件路径:${IPA_PATH}" fi 注意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 这里如果想要构建svn 上某个版本的工程,只需要再路径后面加上@版本号即可。 例如:http://192.168.1.1:8999/svn/iOS/TestDemo@150。 第三步,设置shell 脚本,与上面的一样。 第四步,立即构建即可。 提示:构建成功后,还有一些选项可以设置,比如自动上传到蒲公英或者fir.im,或者邮件通知等。 还可以设置构建触发器,设置在某个时刻自动构建等条件。因为这些设置都挺简单的,而我们目前还未用到,大家自行研究一下吧。
Mac下Jenkins+SVN+Xcode构建持续导出环境的更多相关文章
- Mac下Jenkins+SVN+Xcode构建持续
1 安装Jenkins Jenkins是基于Java开发的一种持续集成工具.所以呢,要使用Jenkins必须使用先安装JDK. JDK安装 JDK 下载地址 jdk 1.8.png 安装JDK的过程略 ...
- Jenkins + svn + maven 构建持续集成环境搭建
Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...
- Jenkins+Svn+Docker搭建持续集成环境 自动部署
一.准备工作: 两台服务器:192.168.206.212,192.168.206.213 自己新建一个maven项目 其中两台机子做下面的软件配置 212机子: 安装expect并配置: 安装jen ...
- 转:Mac下搭建svn服务器和XCode配置svn
Mac下搭建svn服务器和XCode配置svn 先打开命令行终端. 1.创建svn repository svnadmin create /yourpath/svnroot/repository 2. ...
- iOS开发MAC下配置svn
版本控制对于团队合作显得尤为重要,那么如何在iOS开发中进行版本控制呢?在今天的博客中将会介绍如何在MAC下配置SVN服务器,如何导入我们的工程,如何在Xcode中进行工程的checkOut和Comm ...
- Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...
- MAC 下安装 SVN
在mac下安装svn走了很多弯路,进过探索,现在对svn的安装做了总结,可以分为2种: 1.由于 xCode自带svn,所以可以安装xCode 1).打开App Store,搜索xCode,下载安装 ...
- Docker 结合Jenkins 构建持续集成环境
Docker 结合Jenkins 构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...
- Mac下利用(xcode)安装git
Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...
随机推荐
- plsql中的执行体
在plsql中的sql windows窗口中,可以编写一段执行体来达到一定的目的,类似于写一段程序,可有逻辑判断. 大概的格式为 declare ----定义变量 begin ----- 执行体: e ...
- python核心编程第2章课后题答案(第二版36页)
2-5 Loops and Numbers a) i = 0 while i <11: print i i += 1 b) for i in range(0,11): pri ...
- Linq学习<二>
http://www.cnblogs.com/wyqlijin/archive/2011/02/25/1964934.html 这位仁兄写的比较高深,建议大家看看 一: 这一篇以一个数据类为例,操作数 ...
- 编写高质量代码改善C#程序的157个建议——建议10: 创建对象时需要考虑是否实现比较器
建议10: 创建对象时需要考虑是否实现比较器 有对象的地方就会存在比较,在.NET的世界中也一样.举个最简单的例子,在UI中,有一个10个人的Salary列表.根据排序的需要,列表要支持针对基本工资来 ...
- 设计模式01: Singleton 单例模式(创建型模式)
Singleton 单例模式(创建型模式) 动机(Motivation)当进行软件开发是会有这样一种需求:在系统中只有存在一个实例才能确保它们的逻辑正确性.以及良好的效率.这应该是类设计者的责任,而不 ...
- bzoj 3224/Tyvj 1728 普通平衡树(splay)
Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数 ...
- 【转】Android系统概览
这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...
- SQL 2005报错之Restore fail for Server 'DatabaseServerName'.
Restore fail for Server 'DatabaseServerName'.(Microsoft.SqlServer.Smo) Additional information: Syste ...
- arcconf工具操作手册V1.0
arcconf工具操作手册 1.1.1 arcconf工具初始化和去初始化硬盘 [命令功能] PMC阵列卡系统下初始化硬盘,可以将raw盘状态变成ready状态,以便进一步组建raid和设置热备盘: ...
- 看了这篇Dubbo RPC面试题,让天下没有难面的面试题!
前言: RPC非常重要,很多人面试的时候都挂在了这个地方!你要是还不懂RPC是什么?他的基本原理是什么?你一定要把下边的内容记起来!好好研究一下!特别是文中给出的一张关于RPC的基本流程图,重点中 ...