美文网首页
利用Jenkins持续集成iOS项目

利用Jenkins持续集成iOS项目

作者: 星星点灯0_0 | 来源:发表于2017-09-25 11:23 被阅读0次

    简介

    一般的小公司可能测试要求没那么严格,打包也不会那么严格,但是对于大公司,并且测试人员众多,打包频繁的话,打包测试就成了一件很耗费时间的事,而且打包环境可能会有测试,预生产,生产等环境,打包的时候如果再去配置这些环境的话也很容易出错,所以部署自动化会为我们节省很多时间,也能减少一些不必要的问题出现.

    过程

    1.Jenkins下载安装 https://jenkins.io/

    下载安装完以后发现界面是这样的(浏览器访问地址:http://localhost:8080)

    屏幕快照 2017-09-05 上午10.10.50.png

    因为Jenkins依赖于Java运行环境,因此需要首先安装Java的SDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    安装完以后再访问http://localhost:8080就能访问Jenkins了

    屏幕快照 2017-09-05 上午10.28.04.png

    启动完以后出现如下界面

    屏幕快照 2017-09-05 上午10.30.13.png

    意思就是让你去该路径复制密码填入输入框

    /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
    

    访问的时候没有权限的话修改权限为读与写

    302189FE-9993-43D3-A84B-554F0295A203.png

    输入完密码之后跟着它的步骤走就可以设置用户名和密码
    接着就进入Jenkins主页面了,点击创建一个新任务->构建一个自由风格的软件项目
    接着就进入项目的配置页面,如下:


    28673C8D-C166-4606-881A-A68F32BC1DCC.png

    点击add,到一个授权的页面,填写格式如下,不在红框的可以不填

    195EACF9-0E4F-4E69-8A9B-12CBBF154167.png

    Private Key 为私钥在电脑的~/.ssh目录下,同时要把公钥添加到仓库网站上,如果没有公私钥,则要先生成公私钥.


    屏幕快照 2017-09-05 下午4.52.15.png

    接下来我们继续配置信息

    195EACF9-0E4F-4E69-8A9B-12CBBF154167.png

    如果我们要做自动定时打包就需要配置上图中的构建触发器了
    Build periodically:周期进行构建
    例如:H 19 * * * (每天晚上7点必须构建一次源码)
    Poll SCM:有更新就build
    例如:*/3 * * * * (每3分钟检查一次源码变化,如果有更新才build)

    继续配置下面的信息

    屏幕快照 2017-09-06 上午10.36.00.png

    构建环境

    需要配置证书和描述文件
    回到主页,在系统管理页面添加插件,选择“Keychains and Provisioning Profiles Management”
    然后再进行证书的配置

    62B317F1C7D2B755EFA8EF4EA7A95E81.png C8EAA000-3BD8-487F-BECA-F23215A56273.png
    Keychain路径:/Users/管理员用户名/Library/keychains/login.keychain
    把keychain拖拽到按钮位置处即可上传,注意后缀要为keychain,不然会报错
    

    接下来是shell脚本的配置,这里我们需要先安装fastlane

    fastlane 安装

    sudo gem install -n /usr/local/bin fastlane   安装
    fastlane --version  查看版本
    fastlane init     进入项目目录进行初始化,会创建一个fastlane的文件夹
    

    项目目录如下:

    屏幕快照 2017-09-25 上午11.37.17.png
    Appfile:用于存储应用程序标识符和Apple ID 等信息
    Fastfile:配置管理 lane  我们打包主要是配置这个文件
    Deliverfile:配置应用在 iTunes Connect 中的各种信息,和 ICC 中的数据是一一对应的
    metadata:包含应用在 iTunes Connect 中的各种信息
    screenshots:包含截图数据
    

    脚本编写

    接下来就是相关脚本的编写,我们主要的命令是集中在Fastfile中
    首先我们需要创建两个仓库,一个是用来放证书的,一个是用来放代码的
    在工程目录下

    fastlane match init   //会创建一个Matchfile
    

    相关配置如下:


    屏幕快照 2017-09-25 下午12.36.38.png

    Fastfile脚本命令编写:

    匹配证书


    屏幕快照 2017-09-25 下午12.41.04.png

    如果开发者网站上添加了新的设备,则匹配的时候需要添加force_for_new_devices参数,置为true,就能更新到包含所有UDID的证书

    上传测试包到蒲公英

    fastlane add_plugin pgyer
    

    fastlane 命令如下图


    4743F29C-803B-4839-A2A2-D5300B527BED.png

    api_key和user_key需登录蒲公英官网获取,这里如果做的好点,可以弄一套环境把相关变量进行隐藏,后续补上
    我们先自己用fastlane打包试一下,看能否正常匹配证书,打包上传,没问题的话,就去Jenkins上配置一下脚本,然后进行构建
    脚本命令如下:

    //电脑钥匙串解锁,123456为电脑密码
    security unlock-keychain -p 123456 login.keychain
    //安装项目依赖的所有gem包
    bundle install
    // 执行fastlane中的develop命令
    fastlane develop
    

    参考资料:
    https://github.com/fastlane/fastlane
    https://www.pgyer.com/doc/view/jenkins_ios
    http://www.jianshu.com/p/8e3921416071?utm_source=desktop&utm_medium=timeline

    相关文章

      网友评论

          本文标题:利用Jenkins持续集成iOS项目

          本文链接:https://www.haomeiwen.com/subject/frqujxtx.html