持续部署/交付在移动开发中的应用

在本文中,将探讨如何在移动开发环境中采用持续部署/交付。

第一步 - 获取一台Mac电脑

是的,他们总得想办法卖掉这些设备,对吧?还有什么比要求拥有一台来构建他们的(不幸地非常成功的)移动平台更好的方法呢?如果无法从自己的设备(或者朋友的)中设置一台,那么下一个最好的选择是使用macincloud.com的按需付费(或专用构建代理)计划。不幸的是,不能使用他们提供的VSTS构建代理计划,因为需要构建生成IPA文件,这需要所有的证书/配置文件混乱,因此需要实际的UI访问。

将Mac添加为构建代理

Mac需要处理来自VSTS的构建请求。因此,需要在它上面安装构建代理,就像在关于在云中创建自己的构建代理的帖子中一样。

要创建Mac上的构建代理,请按照Microsoft的说明操作。建议遵循最后“如何作为服务运行”的步骤,以便它在任何未知的重启后仍然可以运行。继续吧,等回来会在这里。

一旦配置了构建代理,需要在Mac上获取所有的证书和杂物。发现的最好的指南是Xamarin提供的。为了节省带宽,不会在这里详细说明。

将使用Xamarin.iOS构建iOS应用程序,因此需要在可能服务CI请求的所有构建代理上安装它。

第二步 - 配置持续集成构建

现在,是时候配置构建了,就像为其他两个平台所做的那样:重要的是(字面上)指出的那部分;代理队列。需要选择放置Mac构建代理的队列,而不是托管队列。

由于将构建一个特定于Xamarin.iOS的解决方案,建议创建一个单独的SLN用于构建iOS项目。这也将非常适合团队中的任何开发者实际上使用Mac(带有Xamarin Studio)进行开发。在构建定义完成后,将此解决方案定位在构建定义中显示的“Xamarin.iOS”任务中。

由于Xamarin与NuGet的不兼容性,Xamarin附带的nuGet v2.8.5 - 它在依赖性评估中有一个错误,如果选择了正确的(错误的?)包,这个问题就会出现。话虽如此,修复它并不难。使用shell脚本!

在开始时添加一个新的构建任务(有点像之前做的PowerShell),指向一个看起来像这样的脚本文件:

Bash # !/bin/sh curl -s -O https://dist.nuget.org/win-x86-commandline/v2.8.6/nuget.exe mono nuget.exe restore App-MacOSX.sln

保存此文件并将其推送到仓库,然后在新构建任务中定位它:

设置这个也很容易:这里的“复制根”部分充当包含所有iOS特定内容的目录(如果还记得在第一部分中的仓库结构)。然后,该过程提取所有生成的IPA文件并将它们放入服务器上的“drop”文件夹中,就像想要的那样。

第三步 - 创建发布定义

现在是时候将其推送到HockeyApp了!正如可能预期的那样,Hockey的iOS集成非常好。只需按照为Android所做的那样设置,但使用*.ipa作为“二进制文件路径”,而不是*.apk:

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485