基于VSTS的Xamarin.Android持續(xù)集成步驟詳解
這些天做了一個,這里分享下
Build Agent 環(huán)境需求
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. 此腳本傳遞參數(shù)為當前源代碼路徑,$(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數(shù)據(jù)
例如 packagename/label/versionName等
a. 這個是我自己寫的一個VSTS擴展,用于獲取一些應用的基本信息,并存儲在對應的變量中,以備后續(xù)步驟使用(生成ReleaseNote時)
b. https://github.com/chsword/zou-vsts-tasks
5. 對編譯好的Android apk進行簽名
a. 使用 VSTS自帶的Android簽名 功能進行簽名
b. 需要勾選 為APK簽名,并填入Keystore密碼、Keystore別名,密鑰密碼
c. Jarsigner 參數(shù): -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,以備發(fā)布時使用
8. 生成預發(fā)布腳本
a. 我提前寫了一個預發(fā)布Powershell腳本用于將APK發(fā)布到Bugly,主要是調用 CURL,這里就不詳述了
這樣,就可以進行 手動或自動集成的操作

小技巧:
關于敏感數(shù)據(jù),一些敏感數(shù)據(jù),比如簽名時的密碼、其實可以在 生成定義 的 變量 中進行定義,并設置為加密變量 ,這樣在傳輸或編輯時,都將無法查看此變量

引用:
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持續(xù)集成步驟詳解的詳細內容,更多關于VSTS的Xamarin.Android持續(xù)集成的資料請關注腳本之家其它相關文章!
相關文章
Android OpenGLES2.0等腰直角三角形和彩色的三角形(三)
這篇文章主要為大家詳細介紹了Android OpenGLES2.0等腰直角三角形和彩色的三角形,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
Android view滑動懸浮固定效果實現(xiàn)代碼示例
本篇文章主要介紹了Android view滑動懸浮固定效果實現(xiàn)代碼示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Android編程實現(xiàn)長按彈出選項框View進行操作的方法
這篇文章主要介紹了Android編程實現(xiàn)長按彈出選項框View進行操作的方法,結合實例形式分析了Android事件響應及彈窗的功能、布局相關操作技巧,需要的朋友可以參考下2017-06-06
Android Jetpack架構組件 ViewModel詳解
這篇文章主要介紹了Android Jetpack架構組件 ViewModel詳解,ViewModel類讓數(shù)據(jù)可在發(fā)生屏幕旋轉等配置更改后繼續(xù)存在,ViewModel類旨在以注重生命周期的方式存儲和管理界面相關的數(shù)據(jù)。感興趣可以來學習一下2020-07-07
Kotlin startActivity跳轉Activity實現(xiàn)流程詳解
在Android當中,Activity的跳轉有兩種方法,第一個是利用startActivity(Intent intent);的方法,第二個則是利用startActivityForResult(Intent intent,int requestCode);的方法,從字面上來看,這兩者之間的差別只在于是否有返回值的區(qū)別,實際上也確實只有這兩種區(qū)別2022-12-12

