基于VSTS的Xamarin.Android持续集成步骤详解
目录
- Build Agent 环境需求
- Build的部分分为以下步骤
- 1. 还原NuGet包
- 2. 替换版本号
- 3. 编译Android程序
- 4. 获取编译Andorid的AndroidManifest数据
- 5. 对编译好的Android apk进行签名
- 6. 删除多余的文件
- 7. 生成 ReleaseNotes
- 8. 生成预发布脚本
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 $filePathls $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的Xamarin.Android持续集成步骤详解】
文章图片
小技巧:
关于敏感数据,一些敏感数据,比如签名时的密码、其实可以在 生成定义 的 变量 中进行定义,并设置为加密变量 ,这样在传输或编辑时,都将无法查看此变量
文章图片
引用:
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持续集成的资料请关注脚本之家其它相关文章!
推荐阅读
- vue|vue cli3.x打包后如何修改生成的静态资源的目录和路径
- Web开发|Linux 必会的高频操作
- Linux|Linux 常用高频基础命令
- 从kill-chain的角度检测APT攻击
- 用非暴力沟通原则为您的团队赋能
- C#|C#中Messagebox的简单使用
- 数据库|安装sql server走过的弯路,收集了一些安装sql遇到的问题
- 影像组学病理切片案例教学课程(免费赠送)另有现成的代码,模型供大家上手使用
- Docker远程连接设置的实现示例
- Python中的列表及其操作方法