返回顶部
首页 > 资讯 > 移动开发 >基于VSTS的Xamarin.Android持续集成步骤详解
  • 719
分享到

基于VSTS的Xamarin.Android持续集成步骤详解

2024-04-02 19:04:59 719人浏览 八月长安
摘要

目录Build Agent 环境需求Build的部分分为以下步骤1. 还原NuGet包2. 替换版本号3. 编译Android程序4. 获取编译Andorid的Androi

这些天做了一个,这里分享下

Build Agent 环境需求

dotnetFramework

msbuild 

visualstudio

AndroidSDK 

jdk

Xamarin.Android

Build的部分分为以下步骤

1. 还原NuGet包

a. 这步之所以存在,原因为我使用了Xamarin.Android进行编译,而没有直接对解决方案使用MSBUILD进行编译,所以需要单独还原一下NuGet包

b. 解决方案路径填写 **\*.sln 即可

2. 替换版本号

a. Xamarin.Android的版本号与AndroidManifest.xml中的versionName与versionCode有关,我在这里使用Powershell将版本号替换成了新的

b. 此脚本传递参数为当前源代码路径,$(Build.SourcesDirectory)

c. 脚本代码:

param(
        [string]$path
    )
    if([String]::IsNullOrEmpty($path)){
        $path= $($MyInvocation.MyCommand.Definition.Replace("build\changeVersion.ps1" ,""))
    }
    write $path
    $pattern='android:versionName="[^"]+"'
    $version=[String]::FORMat('android:versionName="{0}.{1}"',[DateTime]::Now.Year-2013,[DateTime]::Now.ToString("M.d.H"))
    $filePath = [System.IO.Path]::Combine($path,"source\AndroidAppProject\Properties")
    write $filePath
    ls $filePath *.xml | %{sc -Path $_.FullName -Value $($(GC $_.FullName) -replace $pattern,$version) }

3. 编译Android程序

a. 使用TSTS自带的Xamarin.Android进行编译

b. 输出目录我设定在了$(Agent.BuildDirectory)\bin$(BuildConfiguration)

c. 配置使用用户入队时的配置$(BuildConfiguration)

4. 获取编译Andorid的AndroidManifest数据

例如 packagename/label/versionName等

a. 这个是我自己写的一个VSTS扩展,用于获取一些应用的基本信息,并存储在对应的变量中,以备后续步骤使用(生成ReleaseNote时)

b. https://GitHub.com/chsWord/zou-vsts-tasks

5. 对编译好的Android apk进行签名

a. 使用 VSTS自带的Android签名 功能进行签名

b. 需要勾选 为APK签名,并填入Keystore密码、Keystore别名,密钥密码

c. jarsigner 参数: -verbose -sigalg MD5withRSA -digestalg SHA1

d. 勾选Zipalign

6. 删除多余的文件

a. 因为编译时 DLL 也会被复制过来,所以需要删除下多余的文件,只留APK

7. 生成 ReleaseNotes

a. 使用的是 rfennell 的生成ReleaseNote的VSTS扩展

 Https://github.com/rfennell/vNextBuild/tree/master/Extensions/GenerateReleaseNotes

b. 我这里将 ReleaseNotes,生成了一个 markdown :ReleaseNotes.md,以备发布时使用

8. 生成预发布脚本

a. 我提前写了一个预发布Powershell脚本用于将APK发布到Bugly,主要是调用 CURL,这里就不详述了

这样,就可以进行 手动或自动集成的操作

小技巧:

关于敏感数据,一些敏感数据,比如签名时的密码、其实可以在 生成定义 的 变量 中进行定义,并设置为加密变量 ,这样在传输或编辑时,都将无法查看此变量

引用:

Vsts build 中可以使用的变量:

https://www.visualstudio.com/zh-cn/docs/build/define/variables

Bugly api文档

https://bugly.qq.com/docs/user-guide/api-beta/?v=20160824161206

获取 Xamarin.Android AndroidManifest 信息

https://github.com/chsword/zou-vsts-tasks

以上就是基于VSTS的Xamarin.Android持续集成步骤详解的详细内容,更多关于VSTS的Xamarin.Android持续集成的资料请关注编程网其它相关文章!

--结束END--

本文标题: 基于VSTS的Xamarin.Android持续集成步骤详解

本文链接: https://lsjlt.com/news/144914.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作