使用VSTS/TFS搭建iOS持续集成环境
TFS 自2015版开始支持跨平台的持续集成环境,通过提供开源的build agent为 Windows / linux / macOS 提供了统一的持续集成环境管理能力。这篇文章给大家介绍一下如何使用 VSTS/TFS 来搭建 iOS 持续集成环境。
苹果的iOS开发平台是一个相对封闭的生态,开发人员必须使用macOS和XCode才能完成应用程序的编译和打包操作,但这并不妨碍你使用其它的操作系统进行编码和测试。比如使用跨平台开发技术,如 Apache Cordova, React, Xamarin 等你完全可以使用 Windows 作为你的开发环境,使用自己喜欢的IDE,如: Visual Studio, Eclipse, IntelliJ甚至 Visual Studio Code, Sublime等进行编码开发,只是在最后需要打包成ipa的时候你还是需要一台macOS才能完成。所以,我们今天就按照最典型的原生应用的开发方式,看看如何使用VSTS/TFS来搭建持续集成环境。
另外,在后续的文章里,我还给大家介绍如何使用VSTS/TFS将打包好的iOS应用直接发布到 Apple Store上。
#1 创建项目或者获取项目代码
为了演示方便我在github上放置了代码
https://github.com/ups216/FoodTracker
打开Xcode 获取代码

#2 在TFS中创建 git repo并添加到项目的remote地址中

从新建的repo上获取地址

在XCode中添加remote


然后push代码到tfs中


#3 从github下载vsts-agent并链接到我们的tfs项目
下载地址: https://github.com/Microsoft/vsts-agent/releases
并按照以上页面中的说明进行安装
~/$ mkdir myagent && cd myagent
~/myagent$ tar xzf ~/Downloads/vsts-agent-osx.10.11-x64-2.107.0.tar.gz
安装完成后,运行config.sh配置代理

这里需要填写2个关键参数,一个是服务器地址,另外一个是agent pool(构建代理池)的名称
构建代理池可以在tfs的后台配置页面中进行配置,记得要把运行代理的帐户添加到代理池的服务帐户中

现在我们就可以运行 run.sh 来启动我们的构建代理了

#4 创建持续集成定义
在TFS的生成页面中点击新建按钮,并选择 Xcode 构建模版

在选择存储库页面中选择我们刚刚推送过代码的FoodTracker存储库,并勾选“持续集成”选项,这样每次我们推送代码到这个存储库就会自动触发生成。

创建完成后,我们首先切换到“变量”页面中配置以下参数

注意这里的最后一个参数 P12_PWD,这里我使用了一个加密的变量保存了我的开发者账号P12证书的秘密,这样我就不必将开发者证书分发给所有需要的开发人员,而只在服务器上保留这个证书。这对于使用企业证书进行开发的团队尤其有用,避免了企业证书的外泄。
完成后我们进入“生成”页面,对XCode构建任务进行配置,注意以下我在certificate这个代码目录中保存了从XCode或者苹果开发者中心导出的 Provision Profile 和 P12证书文件,但是证书的密码这一栏填入了以上配置的参数 $(P12_PWD)。这样,我们就可以在CI的过程中完成 ipa 的签名操作了。

#5 运行生成
你可以在Xcode修改代码并推送到 TFS,这时构建代理将被自动触发运行,或者也可以手动运行。

运行成功后,可以在构建页面中点击“项目”即可下载编译打包好的ipa文件


简单总结一下,使用VSTS/TFS我们不仅仅可以管理Windows环境上的项目开发,也可以很好的管理 macOS 和 Linux上的开发过程。新版的TFS中内置了很多针对跨平台开发的构建任务,而且这些任务的源代码都是开源的,这样我们可以对不同平台的开发团队进行统一的管理,并进行统一的代码质量度量。
对于iOS开发来说,开发者证书的管理是很多稍具规模的团队都很头疼的事情,如果不把证书分发给每个开发者,就无法打包,但是分发了证书就意味着任何获取了证书的开发者都可以使用企业的证书分发应用。使用集中的CI来完成证书签名操作就很好的解决了这个问题。
使用VSTS/TFS搭建iOS持续集成环境的更多相关文章
- 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...
- Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...
- jenkins下搭建c++持续集成环境
运行环境为centos 5.8 1.下载tomcat,并解压 2.下载jenkins,把jenkins.war放到tomcat的webapp目录下 3.在tomcat的bin目录下执行./star ...
- centos下搭建Jenkins持续集成环境(安装jenkins)
1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...
- centos下搭建Jenkins持续集成环境
1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...
- docker4dotnet #5 使用VSTS/TFS搭建基于容器的持续交付管道
在过去的几篇d4d系列中,我给大家介绍了如何使用docker来支持asp.net core的应用开发,打包的场景.Asp.net core的跨平台开发能力为.net开发人员提供了使用容器进行应用开发的 ...
- CI Weekly #21 | iOS 持续集成快速入门指南
搭建 iOS 持续集成环境要多久?每个 iOSer 都有不同的答案.这次我们整理了 flow.ci 的 iOS 持续集成的相关文档和最佳实践,希望帮你更快地完成构建.更新文档见: flow.ci iO ...
- Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面看看我们是如何几分钟就快速搭建一个持续集成环境吧. 假设我们目前已经有2个maven项目:entities(J ...
随机推荐
- Two Sum & Add Two Numbers
Two Sum 题目:https://leetcode.com/problems/two-sum/ class Solution(object): def twoSum(self, nums, tar ...
- C# web winform 路径
string path = ""; if (System.Environment.CurrentDirectory == AppDomain.Curr ...
- 1044. Shopping in Mars (25)
分析: 考察二分,简单模拟会超时,优化后时间正好,但二分速度快些,注意以下几点: (1):如果一个序列D1 ... Dn,如果我们计算Di到Dj的和, 那么我们可以计算D1到Dj的和sum1,D1到D ...
- java byte[]生成
1. ByteArrayOutputStream extends OutputStream 提供了一个byte数组,和记录写入数组值个数的类. a.实现了write(int)这个抽象函数,这里默认只写 ...
- javaweb-url /
/一直搞得不清不楚 有时候不用加有时加了也行,有时必须加 转发自XXX论坛 推荐使用 <% String path = request.getContextPath(); String base ...
- ORGANIZATION
Leader: Ming Xiang Ph.D students: Bo Yang Yupei Zhang M.Eng. students: Cheng Feng Jinquan Du Youli ...
- ORACLE恢复神器之ODU/AUL/DUL
分享ORACLE数据库恢复神器之ODU.DUL和AUL工具. ODU:ORACLE DATABASE UNLOADER DUL:DATA UNLOADER AUL:也称MyDUL 关于三种工具说明: ...
- Web 开发中 20 个很有用的 CSS 库
转自:http://www.oschina.net/translate/css-libraries-for-developers 在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供 ...
- xps 文件操作笔记
1. 在 Silverlight 显示XPS文件,参考:http://azharthegreat.codeplex.com/ 2. Word,Excel, PPT 文件转换为XPS: 参考一(老外写的 ...
- solr与.net系列课程(三)solr连接数据库
solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...