美文网首页
CI持续集成环境搭建-iOS篇

CI持续集成环境搭建-iOS篇

作者: softgoto | 来源:发表于2016-12-06 17:31 被阅读0次

    前言 Continuous integration

    持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布 ,自动化测试)来验证,从而尽早地发现集成错误。 - 摘自百度

    这一篇我们先来搭建 iOS 下的可持续集成环境,我这里的方案是Jenkins+Subversion+Xcode+蒲公英

    先把环境交代一下:
    macOS Sierra 10.12.1
    Xcode 8.1
    版本控制:SVN
    Jenkins ver. 2.34

    第一步 Installing Jenkins

    我这里是通过 brew 来安装的,使用 brew 需要安装 homebrew ,已安装的跳过这步

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    然后

    $ brew install jenkins
    

    Jenkins 需要 Java 1.6+ 的版本,安装时如果出现下面的问题,请更新 Java 版本

    jenkins: Java 1.6+ is required to install this formula.
    You can install with Homebrew Cask: 
      brew install Caskroom/cask/java
    
    You can download from: 
      http://www.oracle.com/technetwork/java/javase/downloads/index.html
    Error: An unsatisfied requirement failed this build.
    

    网上找的资料说安装完成后浏览器会自动打开 Jenkins 的主页 http://localhost:8080/
    但我安装完成后并没有,不过没关系,可以手动打开浏览器,访问👆的地址。

    如果能访问,恭喜你 Jenkins 安装完成了,可以进入下一步了。

    如果不能访问,没关系,在终端中输入:

    $ jenkins
    

    就能启动 Jenkins 服务了

    注意:
    1、执行 jenkins 命令的终端窗口不能关闭,如果关闭服务也会随之关闭
    2、如果遇到端口冲突,请修改 Jenkins 默认端口,修改前请停掉 jenkins 服务

    $ sudo defaults write /Library/Preferences/org.jenkins-ci httpPort xxxx

    第二步 Unlock Jenkins

    打开 localhost 页面之后,首先需要解锁才能进到下一步,解锁需要一个密码,密码存在一个文件中,这个文件的地址在打开的页面上已经显示并且标红了。(忘了截图,地址是在网上找的,具体请参考 localhost 页面标红的路径😂 )

    $ vim /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
    

    把里面的字符串拷出来,粘贴到页面点击 Continue

    然后点击 Install suggested plugins 安装推荐的插件

    等待安装插件 ☕️

    安装完成后,Jenkins 会重启一次

    然后需要 Create First Admin User 输入用户名、密码、邮箱... 点击 Save and Finish

    欢迎使用Jenkins!

    第三步 Installing Plugin

    需要自己安装的插件:

    1、Xcode integration iOS项目配置专用
    2、Post-Build Script Plug-in Build完成后执行脚本用

    插件安装方法:系统管理 -> 管理插件

    管理插件.png

    右上角可以过滤

    安装插件.png

    勾选,直接安装,安装完成后重启

    第四步 Create Item

    点击 新建 输入名称,选择 构建一个自由风格的软件项目 点击OK

    新建.png
    通用设置
    通用设置.png
    源码管理

    因为公司还在用 SVN ,所以这里选择 Subversion 🙄
    1、仓库地址最好写到 Xcode Project 文件这一级目录
    2、SVN账号需要点击 Add 按钮来添加

    源码管理.png SVN账号密码.png
    构建触发器

    暂时没有用到

    构建环境

    暂时没有用到

    构建

    增加构建步骤 选项中选择 Xcode

    General build settings

    1、Target 需要 Build 的 Target ,与 Xcode 中的一致
    2、Clean before build? Yes 编译前先 Clean 一下
    3、Configuration 构建一个 Release 版本
    4、Pack application and build .ipa? 打包构建 ipa 文件
    5、.ipa filename pattern ipa 文件名的规则,我这里用的是编译的 TAG 号,也可以用编译时间和版本号${VERSION} And ${BUILD_DATE}
    6、Output directory ipa 文件输出路径

    General build settings.png
    Code signing & OS X keychain options
    Code signing & OS X keychain options.png
    Advanced Xcode build options

    1、Xcode Schema File 一般填工程名,或者 Schema 分支名字
    2、Xcode Workspace File Xcode Workspace文件名,不需要 .xcworkspace 后缀
    3、Build output directory Build 输出路径

    注意:
    如果项目使用了 Cocoapods 那么 Advanced Xcode build options 配置项中的 Xcode Workspace File 一定要填,要不然编译就会报错😳

    Advanced Xcode build options.png
    构建后操作

    增加构建后操作步骤 选项中选择 Execute a set of scripts

    在 Build 完成后,执行脚本,将ipa文件上传到蒲公英
    请勾选 Execute script only if build succeeds

    Execute a set of scripts.png

    脚本如下

    #!/bin/bash
    
    #蒲公英上的User Key
    uKey="********************"
    #蒲公英上的API Key
    apiKey="********************"
    #要上传的ipa文件路径
    IPA_PATH="${WORKSPACE}/build/${BUILD_TAG}.ipa"
    
    #执行上传至蒲公英的命令
    echo "++++++++ upload ipa file to pgyer +++++++"
    curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" http://www.pgyer.com/apiv1/app/upload
    

    脚本中的的 ${BUILD_TAG} 和前面 General build settings 配置中的 .ipa filename pattern 是对应的

    最后点击 Apply 保存

    左边菜单栏有个 立即构建

    点击就开始自动编译、打包、上传了,如果 Build Success 的话

    如果 Build 失败,请查看 Console Output 输出的日志信息

    温馨提示:
    1、现在大多数项目都使用了 Cocoapods ,并且在提交到 Git 或者 SVN 的时候只提交了 PodfilePodifle.lock 两个文件;Jenkins 管理源码是找仓库同步,直接从仓库 Check OutClone 下来的代码如果没有pod install 是没有 .xcworkspace 文件的,在这种情况下Build肯定会报错的。
    所以,第一次或每次更新 Podfile 文件之后都需要手动 pod install
    2、${WORKSPACE} 在这里 /Users/You Name/.jenkins/workspace

    下一篇 CI持续集成环境搭建-Java篇

    相关文章

      网友评论

          本文标题:CI持续集成环境搭建-iOS篇

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