【自动化】-jenkins + xcode + Cordova项目 iOS自动化集成打包 总结
这片文章来源自己业余的研究,总体很吃力,一些前辈说自动化很简单,但是当本人搞起来的时候却是多次碰壁,可能是本人比较菜。相对之前的自动化测试,目前存在很多新的东西,那么接下来我将带你进入自动化测试的大门。
文章结构:
1、了解自动化以及主流的持续集成
2、Jenkins自动化构建工具使用手册
3、基于Cordova项目进行自动化签名打包
好,这里不逼逼,直接上😄
一、 了解自动化以及主流的自动化构建工具
1、自动化测试概念
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
详细:https://www.cnblogs.com/tinghai8/p/5703341.html
2、主流的持续集成
详细:http://cloud.51cto.com/art/201508/487605.htm
二、Jenkins自动化构建工具使用手册
1、认识Jenkins
个人理解: 解决我们团队开发提交代码时库的干净性和可运行性以及自动化打包
一篇博客帮你详细理解Jenkins: https://www.2cto.com/kf/201609/544550.html
2、安装Jenkins
2.1 安装方式好几种 反正我都才过坑
-01: homebrew 安装 (homebrew 不再介绍,不懂的找度娘😄)
-02: 直接去Jenkins官网下载对用的版本 具体怎么下载 找个博客随便一看便知
本人主要使用以上两种方式:
推荐使用homebrew安装或者使用yum 都可以
-01: 下载插件慢但是多尝试就会成功,运行只要环境配置的对构建时clone都会成功
-02坑: 下载插件很快但是在构建时clone失败
注: 安装Jenkins之前要有Java环境 可以在cmd中输入 Java -version 如果没有打印出来版本好说明失败 具体怎么配置Java环境 :
1、Java官网下载jdk1.8(我的是1.8)
2、点击安装包安装
3、配置环境变量
3.1、 Mac: 打开 .bash_profile 没有创建个 touch .bash_profile 输入以下内容 Java基本都在/Library/Java下 如果在你找到它下面的Home复制即可
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH
保存并退出;
3.2、 source .bash_profile 使环境变量成功
3.3、在Terminal中输入java -version,显示jdk信息,则配置成功。
3、开始使用Jenkins
3.1 进入浏览器访问 http://localhost:8080 这个端口可以在Jenkins的系统配置自己指定默认是8080
第一次进入出现你要你输入密码 不用担心Jenkins为我们设置为默认的用户admin 密码在图中红色的路径文件里面
3.2 、建议点击推荐安装
插件安装选项
插件安装过程
如果部分插件出现了安装失败,不用担心稍后进入jenkins手动安装就可以了。
3.3、创建自己的Jenkins用户
按照要求填写
3.4、Jenkins界面,如果右上方有红色的警告,点击查看依赖插件没有装也会有警告,我这里是jenkins有新的版本了。
Jenkins界面
3.5、插件安装,点击系统管理>管理插件>,这里就不逐个说明了,每个插件点进去都有介绍,下面的插件列表没有的在可选插件里面搜索出来,选中安装完重启jenkins就可以了
第一页
第二页
第三页
回归主题:
今天我们演示Cordova项目iOS 结合git 自动化构建和签名打包
需要具备的条件:
Xcode
git
没有可以下载
4、配置Jenkins做完以上后现在我们可以回到jenkins配置了
4.1 新建任务
在首页点击新建任务,这里我们选择构建一个自由风格的项目,点击ok
新建任务
配置构建任务其他参数
4.2 新建任务
4.2.1、在首页点击新建任务,这里我们选择构建一个自由风格的项目,点击ok
4.2.2、配置构建任务其他参数
这里官方的说明很容易理解就不做解释了
4.2.3、源码
源码管理,这里有svn和git可供选择,我使用的是git。勾选git填写仓库地址Credentials点击后面那个add去添加一个,如下面介绍。Branches to build这里默认的分支master,可修改成你需要构建项目的那条分支,源码库浏览器选自动就可以了。
4.2.4、添加Credentials
我这里使用的是账号密码模式,也可选择使用ssh把对应的key填写正确就可以了,ID是分配不用填写,填写完成之后点击add。
4.2.5、构建
这里有两种方式:
第一种: xcode 插件 没有的可以到 Jenkins系统管理 -》 插件管理 下载 Xcode integration安装重启jenkins
第二种:shell脚本 由于自己的项目是cordova 较原声iOS项目不一样 本人采用这种 自己写自动化构建脚本
构建脚本:
这里着重介绍下Cordova脚本打包
思路是借用原声iOS Xcodebuild工具打包
第一步:我们clone下库上的代码
第二步: 安装我们项目需要的一些依赖包
第三步: 安装iOS平台
第三步: 将自己写的自动化打包脚本autoArchive.sh (名字自定义)以及签名plist文件copy到iOS目录下
第四步: 执行 autoArchive.sh 即可
附上自己写的ios自动化打包脚本和打包plist文件 放在git地址 :
https://git.cloud.sengled.com/ggz/autoarchive/blob/master/autoArchiveScript
这些步骤中重要几点:
#注意:脚本目录和WorkSpace目录在同一个目录
#工程名字(Target名字)
Project_Name="xxx"
#workspace的名字
Workspace_Name="xxxxx"
#配置环境,Release或者Debug,默认release
Configuration="Release"
#Teamid
developmentTeamid="xxxxx"
#AppStore版本的Bundle ID
AppStoreBundleID="com.xxx.xxx"
#enterprise的Bundle ID
EnterpriseBundleID="com.xx.xxx.union2"
#AppStore证书名#描述文件
APPSTORECODE_SIGN_IDENTITY="iPhone Distribution: xxxx"
APPSTOREROVISIONING_PROFILE_NAME="xx-xx-xx-xx-xxx"
#企业(enterprise)证书名#描述文件
ENTERPRISECODE_SIGN_IDENTITY="iPhone Distribution: xxxxx"
ENTERPRISEROVISIONING_PROFILE_NAME="xxx-xx-xxx-xx-xxxx"
#加载各个版本的plist文件
AppStorePlistDir=./AppStoreExportOptionsPlist.plist
EnterprisePlistDir=./EnterpriseExportOptionsPlist.plist
AppStoreExportOptionsPlist=${AppStorePlistDir}
EnterpriseExportOptionsPlist=${EnterprisePlistDir}
这里主要是 签名 证书 和配置文件一定要对应一定对应 再强调一遍 我主要是卡在这一块
有疑问可以参考以下分享 这个大哥我不懂就跟我讲的很明白 在此感谢🙏:
https://www.jianshu.com/p/722adedaa3bf
或者给我留言我会及时给你回应
这里写的不够详细,有问题一起看看,现在较之前的使用有很大区别
比如:
1、不用脚本采用用Xcode插件构建,构建之前要配置到证书和配置文件 Mac10.12之前没有login.keychain文件 而是login.keychain-db 看了好几个博客但是都不行
2、寻找配置文件的 uuid 证书 位置 之前Xcode8.0之前可以直接找到 现在 Xcode9.0 很蛋疼 我是把之前打得包拿出来 查看包内容 用命令拿到打包相关信息的 就是说很坑
现在更新后坑很多,遇到问题留言一起看看。