[Xamarin]使用VSTS建置Xamarin.iOS项目

开发完Xamarin的程序,也在模拟器上测试完后,接下来就需要将APP档部署到站台上,以In-House的方式进行部署。这时,可透过VSTS的Task帮助我们进行建置及部属的动作。这一篇分享如何使用VSTS建置Xamarin.iOS的项目以及如何产生IPA档。


Mac上建立Build Agent

要让VSTS可以帮忙建置Xamarin的iOS项目,目前无法直接使用VSTS自己的Hosted Agent,而是需要依赖macOS的设备作为Build Agent以进行Xamarin.iOS项目的Build。

建立Mac的Build Agent,可以参考微软的官方文档-Deploy an agent on OSX

建立Provisioning Profile

如果在开发阶段,只需要部署到iOS模拟器,或是部署连接到macOS设备的iPhone。那么,Build Xamarin.iOS项目是不需要设定Provisioning Profile。但如果到了测试阶段之后,需要进行实机测试,就需要设定Provisioning Profile

Provisioning Profile是Apple用来指定套用到iOS设备上的设定描述档,里面包括了用来签署Source Code用的凭证、所安装的APP的APP ID、可以使用这个APP的iOS设备等。设定Provisioning Profile需到Apple Developer站台上进行设定。如果熟XCode的话,可以使用XCode帮忙快速建立。否则,就需要一步一步手动建立,主要有几个步骤:

  1. 建立凭证:凭证是用来签署(Sign)Source Code用的。我使用Enterprise Program,如果要进行In-House部署,则需要建立Production凭证才行。
  2. 设定App ID:给自己的APP设定一个唯一的APP ID,并且设定要使用到的App Services
  3. 设定Provisioning Profile:有两种Provisioning Profile-DevelopmentDistribution,要进行In-House部署,则需要建立DistributionProvisioning Profile。

建立之后,需要将凭证Provisioning Profile安装到作为Xamarin Mac Agent的macOS设备上。这样,在Visual Studio中设定Xamarin.iOS项目时,就可以直接选择到该Provisioning Profile。

操作画面及步骤可以参考[Xamarin]In-House Distribution

设定Xamarin.iOS项目属性

设定完macOS设备上的设定后,接下来就要到Visual Studio中设定用来串连Apple设备的设定值。

设定iOS Application

开启Xamarin.iOS项目,进入项目属性设定窗口,选择iOS Application页签。把之前在Apple Developer站台所设定的APP ID,设定到Identifier字段中,以让APP拥有该ID。

image

设定iOS Bundle Signing

切换到iOS Bundle Signing页签,这里要设定的是要建立的APP所使用的凭证Provisioning Profile。这里的下拉菜单,会列出所连接的Mac Agent内所拥有的对象。

P02

Identity字段用来设定要该APP的凭证,如果该设备有安装Production凭证,就可以看到下拉菜单中有Distribution(Automatic)可以选取。或是可以明确的指定要使用哪一个凭证。

P03

Provisioning profile则是用来设定使用哪一个Provisioning profile。因为Provisioning profile是一个部署描述档,所以如果有不同的部署设定,例如是使用Ad Hoc而非In-House的方式部署,最好在名称上可以辨识出来,以便于选择。

P04

设定VSTS

在使用VSTS进行Continuous Integration之前,先确认已经在VSTS上建立好Git Repository以作为Xamarin项目的Source Controll之用。设定完macOS设备以及Visual Studio之后,就可以将包含Xamarin.iOS项目的整个Solution Check In到Server上。

确认自己拥有权限可以操作VSTS的Build Definition后,就可以建立一个新的Build Definition。在界面上,可以看到有Xamarin.iOS的模板可以选择。

P05

记得Default agent queue要选取有设定macOS设备的 Agent。

P06

这个Build Definition的模板会建立底下几个Task,会在Build Agent的机器上进行几个动作,主要是restore Xamarin component、Build Xamarin.iOS项目、使用Xamarin Test Cloud进行测试。我的测试项目很简单,没有Xamarin component,也不需要使用Xamarin Test Cloud进行测试,所以可以把底下这两个Task删掉。

P07

因此,只剩下三个Task。Copy FilePublish Artifact这两个Task都是在做文件处理,比较没问题。所以只要设定好Build Xamarin.iOS solution这一个Task,就大功告成了。

设定Xamarin.iOS solution位置

而这一个Task,最基本的动作是设定Solution档的位置。只要按下...功能键,即会开启对话窗口,带入Git Repository的目录供你选择Solution档的位置。

P08 P09

设定签署凭证及Provisioning Profile

接下来要设定APP的签署凭证及Provisioning Profile。这个动作,在Visual Studio中已经有做过了。所以如果刚好你的Build Agent跟Visual Studio中的Mac Agent是同一台,那么这些字段保持空白即可,因为可以套用直接项目的设定。但如果想要另外设定,例如Visual Studio中设定的是Development凭证,但希望VSTS在建置时使用Distribution凭证。这时,就需要在Task中设定凭证及Provisioning Profile的位置。

P10

最后,如果想要产生ipa档,记得要把Create App Package这个选项勾选起来。这样,当VSTS的Build执行成功后,就可以在Build Agent那台macOS设备的myagent目录下找到建置完成的ipa档了。

P11

有了ipa档,就可以依据需求执行In-House部署,或是iTunes部署。这些动作都可以搭配VSTS的Release Management做到自动化。解放烦杂重复的工作,可以让我们的工作更加的愉快。

原文:大专栏  [Xamarin]使用VSTS建置Xamarin.iOS项目


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11491086.html