【自动化】-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 很蛋疼 我是把之前打得包拿出来 查看包内容 用命令拿到打包相关信息的  就是说很坑 


现在更新后坑很多,遇到问题留言一起看看。   

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容