TFS从2015版本开始支持跨平台持续集成环境,通过提供开源的buildagent为Windows/Linux/macOS提供统一的持续集成环境管理能力.本文将介绍如何使用VSTS/TFS搭建iOS持续集成环境。Apple的iOS开发平台是一个相对封闭的生态系统。开发者必须使用macOS和XCode来完成应用程序的编译和打包操作,但这并不妨碍您使用其他操作系统进行编码和测试。例如,使用跨平台开发技术,如ApacheCordova、React、Xamarin等。你可以使用Windows作为你的开发环境,使用你喜欢的IDE,如:VisualStudio、Eclipse、IntelliJ甚至VisualStudioCode,Sublime等进行编码开发,但是需要打包成ipa的时候还是需要macOS来完成。因此,今天我们就按照最典型的原生应用开发方式,看看如何使用VSTS/TFS搭建持续集成环境。另外,在后续的文章中,我还会介绍如何使用VSTS/TFS将打包后的iOS应用直接发布到AppleStore。#1创建项目或获取项目代码为了演示方便,我把代码放在github上https://github.com/ups216/FoodTracker打开Xcode获取代码#2在TFS中创建一个gitrepo并添加到项目的远程地址从新建的repo上获取地址,在XCode中添加remote并将代码推送到tfs#3从github下载vsts-agent并链接到我们的tfs项目下载地址:https://github.com/Microsoft/vsts-agent/releases并按照上面页面中的说明安装~/$mkdirmyagent&&cdmyagent~/myagent$tarxzf~/Downloads/vsts-agent-osx.10.11-x64-2.107.0.tar.gz后安装完成,运行config.sh配置代理,这里需要填写2个关键参数,一个是服务器地址,一个是代理池的名称(建立代理池)。代理池可以在tfs的后台配置页面进行配置。请记住将运行代理的帐户添加到代理池中。在服务帐户中,我们现在可以运行run.sh来启动我们的构建代理#4创建持续集成定义单击TFS生成页面上的新建按钮并选择Xcode构建模板选择我们刚刚推送的存储库页面FoodTracker存储库的代码,并勾选“持续集成”选项,这样每次我们把代码推送到这个仓库时,都会自动触发生成。创建完成后,我们首先切换到“Variables”页面配置以下参数。注意这里最后一个参数是P12_PWD。这里我使用一个加密的变量来保存我的开发者账号P12证书的秘密,这样我就不用把开发者证书分发给所有需要的开发者,只把这个证书保存在服务器上。这对于使用企业证书进行开发的团队尤其有用,避免了企业证书的泄露。完成后,我们进入“生成”页面,配置XCode构建任务。注意,我已经把从XCode或者AppleDeveloperCenter导出的ProvisionProfile和P12证书文件保存在certificate的code目录下,但是证书的密码在上面配置的参数$(P12_PWD)一栏填写。这样我们就可以在CI过程中完成ipa的签名操作了。#5RunBuild可以在Xcode中修改代码,push到TFS,然后buildagent会自动触发运行,也可以手动运行。运行成功后,可以在构建页面点击“项目”下载编译打包的ipa文件。简单总结一下,使用VSTS/TFS我们不仅可以管理Windows环境下的项目开发,还可以管理macOS和Linux上的开发流程。新版TFS内置了很多跨平台开发的构建任务,并且这些任务的源代码是开源的,方便我们统一管理不同平台的开发团队,统一衡量代码质量。对于iOS开发,开发者证书的管理是很多小规模团队头疼的事情。如果证书不分发给每个开发者,则不能打包,但是分发证书意味着任何获得证书的开发者都可以使用企业证书分发应用程序。使用一个中心化的CI来完成证书的签名操作是很好的解决这个问题的方法。【本文为专栏作家“徐磊”原创稿件,转载请通过作者微信公众号devopshub获得授权】点此查看该作者更多好文
