美文网首页前端部署自动化
Jenkins+SVN+fir.im+BugHD搭建持续集成,实

Jenkins+SVN+fir.im+BugHD搭建持续集成,实

作者: JonneyDai | 来源:发表于2017-06-30 12:00 被阅读208次

    由于公司负责产品过多,因此有很多APP要管理、打包、测试和发布,因此每周有很多时间浪费在这些事情上面;产品🐶总是天天跟在屁股后面要版本,测试员要改bug和打包,每天都要跟他们唇枪舌战上半天;实在没办法了,才想起我之前一直想搞的持续集成,尽量实现代码管理、打包、发布和测试的自动化;虽然还有很多的路要走,但是先慢慢一点一点实现。

    本文概要:
    1.Jenkins环境的搭建和工程创建及配置;
    2.fir.im自动发布;
    3.BugHD实现Crash监测;


    Jenkins环境的搭建和工程创建及配置

    1.Jenkins环境的搭建

    Jenkins是基于Java开发的工具,因此要使用Jenkins必须要安装JDK,可以在终端输入“java -version”来查看是否支持Java环境,如果没有版本信息则请下载安装,JDK安装地址

    Jenkins的安装有两种方式:
    (1).官网下载安装包安装;
    (2).Homebrew方式安装;

    (1).官网下载安装包安装

    Jenkins官网地址下载安装包,一直继续即可,没什么特别注意的;

    开始安装.png 安装完成.png

    安装完成之后,Safari可能会自动打开,如果没有自动打开,打开浏览器,输入http://localhost:8080
    第一次打开jenkins,会提示在指定地址获取初始密钥来解锁,到指定地址获取一串字符输入进去就好,由于没有权限,可以使用终端cd进去,然后用cat指令查看;

    解除锁定.png

    然后是安装默认插件,


    安装默认插件.png

    插件安装进度指示;


    插件安装进度指示.png

    接着输入用户名和密码就OK了,


    账号界面.png

    进入主界面,至此我们就完成了安装包方式对Jenkins的安装及账号配置,随后需要对其进行一系列的工程配置;


    主界面.png
    (2).Homebrew方式安装

    通过终端输入“brew --version”查看是否安装过Homebrew,如果没安装过请参考Mac下使用国内镜像安装Homebrew这篇文章;

    在终端输入安装命令:

    $ brew install jenkins

    输入启动命令:

    $ jenkins

    看到这一段, 记事本保存密钥备用

    Please use the following password to proceed to installation:
    ------------------------------(密钥)

    然后就是跟刚才类似的过程:
    浏览器访问 http://localhost:8080
    在解锁页面输入刚才记录的密钥,接下来请参考如上的安装包方式的流程;

    2.工程创建及配置

    接下来就开始在Jenkins中安装插件及创建和配置工程。

    在主页面选择系统管理,


    主页面.png

    然后选择管理插件,


    管理插件.png 插件管理页面.png

    在可选插件页过滤栏,安装如下插件:
    1.Xcode integrationXcode插件
    2.Subversion Plug-inSVN代码管理插件
    3.Git pluginGit代码管理插件(这个要看具体使用的代码管理工具进行安装,使用Git就安装这个,SVN就上面那个,我是使用SVN。)
    4.Keychains and Provisioning Profiles Management证书管理插件
    5.Email Extension Plugin邮件通知插件(可选)
    6.GitHub pluginGitHub插件(可选)
    安装后重启Jenkins;

    创建一个新任务>选择创建自由风格的软件项目;


    创建新任务.png

    然后确定项目的名称,简介,勾选丢弃旧的构建,并设置保持的最大个数;


    Snip20170630_7.png

    源码管理:
    选择SVN(或Git),输入仓库地址(引导至工程主目录),首次使用需要添加SVN登录账号和密码并选中,其他不用更改;


    Snip20170630_8.png

    构建触发器:
    就是告诉jenkins什么时候自动构建,暂不设置;


    Snip20170630_9.png

    构建设置:
    1.在Target处添加对应工程的Target,因为有的工程包含多个target,此处需要与当前创建的任务目的一致;
    2.勾选Clean before build;
    3..ipa文件命名格式可采用XXXX_{VERSION}_{BUILD_DATE};
    4.Output目录,就是打包的ipa文件存放处,谁便定个地址;

    Snip20170630_10.png

    证书设置:
    由于每个工程对应的证书和PP文件已经设置好,此处只要勾选Unlock KeyChain,然后在keychain path输入:${HOME}/Library/Keychains/login.keychain;keychain Password处输入开机密码;


    Snip20170630_11.png

    高级设置:
    如果使用了Cocoapods,则需要在高级设置处额外进行一些配置;
    1.在Xcode Schema file处填写当前target对应的Scheme名称;
    2.SDK处写iphoneos;
    3.Xcode Workspace File就写自己workspace的名称即可,不需要后缀;
    4.Build output directory跟刚才的ipa输入地址一样即可;


    Snip20170630_12.png

    构建后设置:
    此处就开始需要fir.im和BugHD以及Worktile等外部应用支持;因此暂时先不设置此部分,在把其余几项搞定后再返回来添加,先保存刚才的设置;


    fir.im自动发布

    没账号的先去fir.im官网注册。然后需要安装fir的上传插件;
    具体可参考官方指导文件:fir.im Jenkins 插件使用方法
    Jenkins 插件下载地址


    BugHD实现Crash监测

    由于我使用BugHD监测Crash记录,因此也顺带着配置了一下BugHD;
    有fir.im账号就可以登录,BugHD官网
    由于在Jenkins中配置构建后设置的时候需要绑定当前应用的BugHD的项目ID,因此首先创建项目,

    Snip20170630_13.png
    创建后如下:
    Snip20170630_14.png

    BugHD的使用也很简单iOS版使用方法,具体如下:
    第一步:创建项目,获取General Key
    General Key 用来唯一标识您的应用,为防止别人滥用,请勿泄露,建立每个项目时将自动生成项目对应的 General Key,可在项目列表页查看每个项目对应的 General Key 值
    第二步:导入 SDK(二选一即可)
    1.下载 KSCrash framework,并将下载的 framework 文件夹拖到 Xcode 项目中,导入项目时请勾选 “Copy items if needed”。
    备注:KSCrash 为开源崩溃收集项目,详情可查看: KSCrash GitHub 项目
    2.使用 Pod,在 Podfile中加入 pod 'KSCrash', '~> 1.8',然后使用 pod install 安装,例如:platform :ios, '8.0'target 'YOUR_TARGET' do pod 'KSCrash', '~> 1.8' ....end

    2.在应用的设置中, Build Phases -> Link Binary With Libraries 里添加依赖库:
    libc++.tbd
    libz.tbd
    SystemConfiguration.framework

    注意:以上为 Xcode 7 配置,如果使用 Xcode 7 以前的版本请添加以下依赖库:
    libc++.dylib
    libz.dylib
    SystemConfiguration.framework

    3."Build Settings"->"Other Linker Flags"添加 -ObjC 字段


    第三步:调用 SDK
    在 AppDelegate.m 中导入头文件: <KSCrash/KSCrashInstallationStandard.h>

    然后在 application:didFinishLaunchingWithOptions: 方法中加入:

    KSCrashInstallationStandard* installation = [KSCrashInstallationStandard sharedInstance]; installation.url = [NSURL URLWithString:@"https://collector.bughd.com/kscrash?key=**22ecbcdef6539dea4fb8c453bfa99914**"]; [installation install]; [installation sendAllReportsWithCompletion:nil];

    注意:
    如果配置后收不到 crash ,请将 didFinishLaunchingWithOptions 方法中配置的部分放到最后,避免与其他 SDK 有接口冲突KSCrash 不接收 Debug 模式下的崩溃信息因为使用的是第三方kscrash,所以Bughd上没有显示没有激活,有crash产生后会自动激活。


    接着上文的构建后配置
    首先在构建后操作步骤中选择Upload to fir.im;


    Snip20170630_17.png

    然后开始配置fir.im插件:


    Snip20170630_18.png

    具体过程如下:

    1. fir.im Token(必填)
      fir.im Token 查看方法:直接点击 API token 进行查看.
    fir.im

    2.IPA/APK Files(可选)
    接下来,选择生成 ipa/apk 文件路径
    注意:
    1.如果没有填写该选项,插会件自动默认查找 Jenkins 创建的项目目录下的 apk/ipa 文件
    2.IPA/APK文件名称默认会设置成.apk结尾,iOS需要改成.ipa

    3.BugHD token(可选)
    作用:BugHD上传 mapping.txt/dSYM 文件 API 的调用权限
    注意:如果需要上传符号表则是必填项;不需要上传混淆表,则不需要填写

    BugHD token 查看方法:请访问 BugHD API token,登录后进行查看。

    fir.im

    4、BugHD project ID(可选)
    作用:判断具体上传到指定的 bughd 项目
    注意:如果需要上传符号表,则是必填项;不需要上传则不用填写

    BugHD project ID 查看方法: 请访问 BugHD Projects,登录后找到你要上传符号表的项目,进入该项目,选择 项目设置 选项卡进行查看。

    fir.im
    5.dSYM File or mapping File(可选)
    作用:选择生成 dSYM/mapping.txt 文件路径
    注意:如果需要上传符号表,则是必填项;不需要上传则不用填写

    6、 Build Notes(可选)
    作用:上传 fir.im 后,可显示出更新日志

    设置完成后,返回到Jenkins主页面,然后在对应任务下选择立即构建,如果配置没有问题的话,当执行完后,即可在fir.im上看到自己的应用;


    Snip20170630_19.png

    在fir.im的应用管理页面看到,当前应用已经发布上来,点击预览可以获取详情及二维码等,用微信扫描二维码就可以下载了;


    Snip20170630_20.png

    然后登录BugHD,同样在应用管理页面,选择同步fir.im项目,则改项目的资料即可自动与fir.im的进行关联;


    至此,已经介绍了大部分内容

    相关文章

      网友评论

        本文标题:Jenkins+SVN+fir.im+BugHD搭建持续集成,实

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