美文网首页iOS开发技巧iOS开发攻城狮的集散地iOS
iOS 持续集成——Xcode server&Bots自

iOS 持续集成——Xcode server&Bots自

作者: weiweilong | 来源:发表于2018-03-06 14:27 被阅读168次
前言:一直想学习一下iOS的持续集成,最近开发企业内部app,打包测试发布更加频繁。所以有时间就研究了一下关于自动打包。

说起自动打包,首先想到的肯定是Jenkins,Jenkins可提供各种插件使用,支持不同平台,并且还是免费的。Jenkins + fastlane可实现构建、上传、测试、证书管理等一系列自动化。但是我在搭建好环境,安装好插件,配置好仓库ssl和开发证书,尝试了n次后,就是没有成功。。无奈对脚本语言的不熟悉。但是最近看到了关于Xcode server的东西,Xcode是支持持续集成的,之前的macOS Server是需要在Apple开发网站中下载的,并且还需要开发者账号的兑换码。在Xcode9更新后,macOS Server中的Xcode部分就直接集成到了Xcode中。但是有开发账号还是可以兑换一个macOS Server作为网站服务器😏。

言归正传,这是一篇技术文!首先看下使用Server&Bots在持续集成时可以做什么。

  • 指定远程仓库,获取具体分支最新代码,可合并操作。
  • 进行自动Archive,对代码进行静态分析,对代码进行单元测试,配置debug release。
  • 设置打包签名 证书。
  • 开始持续集成触发条件。(定时、在有新代码提交时、手动)
  • 持续集成前执行的脚本(pre-integration script)、持续集成后执行的脚本(post-integration script)。

流程开始:

1、Xcode->Preferences->server&bots,选择当前Mac登录账户,打开。
server&bots.png
2、创建bot

server的开关打开,代表server已经启动。然后开始创建bot。
首先解释一下bot:bot是一个构建工作的描述。一个bot对应一个独立工作空间,相对于jenkins,,bot可以类比jenkins的一个项目。持续集成的配置都在bot中设置。

开始创建bot
  • 第一步打开需要持续集成的项目(前提需要这个项目需要已经上传到远程仓库)。

  • 选择并配置服务。 Product->create Bots。server 下拉选择add new server,在列表中选择本机已启动的服务器,输入用当前mac登录的户名和密码。content as选择registered user。Xcode Server的账户配置可在Xcode-> Preferences->accounts中修改。


    create new bot.png
  • next 工程资源控制。next 选择工程需要持续集成的分支,我的测试工程中就只有一个分支,所以没有选择。就只有master了。


    source control.png
  • next 编译打包配置。archive expert选择使用plist文件自定义选项,plist文件在手动执行archive后,在导出的ipa文件夹中有ExportOptions.plist。选择plist文件,plist文件在企业证书打包时很重要,需要配置ipa下载路径、图片下载路径等。Configuration选择release,后面需要上传蒲公英。

bulid configuration.png
  • next 构建触发器配置。Integrate 选项中有periodically(周期性触发)、On commit(提交时触发)、Manually(手动触发),根据需要选择触发条件,这里选择手动触发。
bot Integrate.png
  • next 证书签名配置。首先顶部options中有提供自动管理证书的选项,顶部也可切换手动添加证书到server。这里我选择的是手动添加打包需要的证书。


    手动打码不容易.png
  • next 设置环境变量。这一步可设置预集成和后整合触发器所需的环境变量,执行的Run Script构建阶段所需的任何环境变量。环境变量设置可参考Xcode服务器环境变量参考。但是这里并没有用到。直接下一步🤷‍♀️。

    Configure environment.png
  • 配置bot触发器。可设置集成前后的脚本、邮件发送服务。这里点击左下角 + 添加一个post-integration script。右边可勾选触发器触发的动作。根据需要选择触发动作,这里只选择当构建成功才执行脚本(只勾选success)。

post-integration script.png

又到写脚本的时候了。这里只需要配置将打好的ipa,调用蒲公英提供api上传即可。首先打开蒲公英提供的蒲公英api文档

蒲公英api.png

获取到ukey和_api_key后,编写脚本,掉接口上传。脚本如下:

#!/bin/sh
curl -F "file=@$XCS_PRODUCT" \
-F "uKey=you uKey" \
-F "_api_key=you _api_key" \
https://qiniu-storage.pgyer.com/apiv1/app/upload

然后在确保代码commit之后,command+9 选择创建的bot,点击Integration开始,没错误就代表成功了。


success.png

蒲公英管理后台也能看到上传的应用,简单的持续集成就算完成了。有问题欢迎提问。

相关文章

网友评论

  • 那个写代码的:大佬牛皮
  • SwordDevil:兄弟 我卡到创建bot,这块我创建的时候提示Creating a bot requires that the project be under source control that is accessible by the server.
    SwordDevil:@weiweilong 兄弟 要不加下QQ聊吧 我对这块挺感兴趣的 看到你文章 想试一下 你QQ多少?
    SwordDevil:@weiweilong 没上传到远程仓库~ 但是上传到自己服务器的SVN上面了
    weiweilong:“第一步打开需要持续集成的项目(前提需要这个项目需要已经上传到远程仓库)。”
    兄嘚项目有上传到远程仓库了吗
  • isletn:Mark

本文标题:iOS 持续集成——Xcode server&Bots自

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