最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于VSTS的Xamarin.Android持續(xù)集成步驟詳解

 更新時(shí)間:2022年04月02日 12:54:50   作者:重典  
這篇文章主要介紹了基于VSTS的Xamarin.Android持續(xù)集成步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

這些天做了一個(gè),這里分享下

Build Agent 環(huán)境需求

DotNetFramework

msbuild 

visualstudio

AndroidSDK 

JDK

Xamarin.Android

Build的部分分為以下步驟

1. 還原NuGet包

a. 這步之所以存在,原因?yàn)槲沂褂昧薠amarin.Android進(jìn)行編譯,而沒(méi)有直接對(duì)解決方案使用MSBUILD進(jìn)行編譯,所以需要單獨(dú)還原一下NuGet包

b. 解決方案路徑填寫 **\*.sln 即可

2. 替換版本號(hào)

a. Xamarin.Android的版本號(hào)與AndroidManifest.xml中的versionName與versionCode有關(guān),我在這里使用Powershell將版本號(hào)替換成了新的

b. 此腳本傳遞參數(shù)為當(dāng)前源代碼路徑,$(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進(jìn)行編譯

b. 輸出目錄我設(shè)定在了$(Agent.BuildDirectory)\bin$(BuildConfiguration)

c. 配置使用用戶入隊(duì)時(shí)的配置$(BuildConfiguration)

4. 獲取編譯Andorid的AndroidManifest數(shù)據(jù)

例如 packagename/label/versionName等

a. 這個(gè)是我自己寫的一個(gè)VSTS擴(kuò)展,用于獲取一些應(yīng)用的基本信息,并存儲(chǔ)在對(duì)應(yīng)的變量中,以備后續(xù)步驟使用(生成ReleaseNote時(shí))

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

5. 對(duì)編譯好的Android apk進(jìn)行簽名

a. 使用 VSTS自帶的Android簽名 功能進(jìn)行簽名

b. 需要勾選 為APK簽名,并填入Keystore密碼、Keystore別名,密鑰密碼

c. Jarsigner 參數(shù): -verbose -sigalg MD5withRSA -digestalg SHA1

d. 勾選Zipalign

6. 刪除多余的文件

a. 因?yàn)榫幾g時(shí) DLL 也會(huì)被復(fù)制過(guò)來(lái),所以需要?jiǎng)h除下多余的文件,只留APK

7. 生成 ReleaseNotes

a. 使用的是 rfennell 的生成ReleaseNote的VSTS擴(kuò)展

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

b. 我這里將 ReleaseNotes,生成了一個(gè) MarkDown :ReleaseNotes.md,以備發(fā)布時(shí)使用

8. 生成預(yù)發(fā)布腳本

a. 我提前寫了一個(gè)預(yù)發(fā)布Powershell腳本用于將APK發(fā)布到Bugly,主要是調(diào)用 CURL,這里就不詳述了

這樣,就可以進(jìn)行 手動(dòng)或自動(dòng)集成的操作

小技巧:

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

引用:

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ù)集成步驟詳解的詳細(xì)內(nèi)容,更多關(guān)于VSTS的Xamarin.Android持續(xù)集成的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android OpenGLES2.0等腰直角三角形和彩色的三角形(三)

    Android OpenGLES2.0等腰直角三角形和彩色的三角形(三)

    這篇文章主要為大家詳細(xì)介紹了Android OpenGLES2.0等腰直角三角形和彩色的三角形,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android view滑動(dòng)懸浮固定效果實(shí)現(xiàn)代碼示例

    Android view滑動(dòng)懸浮固定效果實(shí)現(xiàn)代碼示例

    本篇文章主要介紹了Android view滑動(dòng)懸浮固定效果實(shí)現(xiàn)代碼示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • android實(shí)現(xiàn)音樂(lè)跳動(dòng)效果的示例代碼

    android實(shí)現(xiàn)音樂(lè)跳動(dòng)效果的示例代碼

    這篇文章主要介紹了android實(shí)現(xiàn)音樂(lè)跳動(dòng)效果的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Android shape 繪制圖形的實(shí)例詳解

    Android shape 繪制圖形的實(shí)例詳解

    這篇文章主要介紹了Android shape 繪制圖形的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Android編程實(shí)現(xiàn)長(zhǎng)按彈出選項(xiàng)框View進(jìn)行操作的方法

    Android編程實(shí)現(xiàn)長(zhǎng)按彈出選項(xiàng)框View進(jìn)行操作的方法

    這篇文章主要介紹了Android編程實(shí)現(xiàn)長(zhǎng)按彈出選項(xiàng)框View進(jìn)行操作的方法,結(jié)合實(shí)例形式分析了Android事件響應(yīng)及彈窗的功能、布局相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • GridView實(shí)現(xiàn)桌面圖標(biāo)顯示案例

    GridView實(shí)現(xiàn)桌面圖標(biāo)顯示案例

    這篇文章主要為大家詳細(xì)介紹了GridView實(shí)現(xiàn)桌面圖標(biāo)顯示案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android Jetpack架構(gòu)組件 ViewModel詳解

    Android Jetpack架構(gòu)組件 ViewModel詳解

    這篇文章主要介紹了Android Jetpack架構(gòu)組件 ViewModel詳解,ViewModel類讓數(shù)據(jù)可在發(fā)生屏幕旋轉(zhuǎn)等配置更改后繼續(xù)存在,ViewModel類旨在以注重生命周期的方式存儲(chǔ)和管理界面相關(guān)的數(shù)據(jù)。感興趣可以來(lái)學(xué)習(xí)一下
    2020-07-07
  • Android Binder的原理與使用

    Android Binder的原理與使用

    這篇文章主要介紹了Android Binder的原理與使用,幫助大家更好的理解和學(xué)習(xí)使用Android開(kāi)發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Kotlin startActivity跳轉(zhuǎn)Activity實(shí)現(xiàn)流程詳解

    Kotlin startActivity跳轉(zhuǎn)Activity實(shí)現(xiàn)流程詳解

    在Android當(dāng)中,Activity的跳轉(zhuǎn)有兩種方法,第一個(gè)是利用startActivity(Intent intent);的方法,第二個(gè)則是利用startActivityForResult(Intent intent,int requestCode);的方法,從字面上來(lái)看,這兩者之間的差別只在于是否有返回值的區(qū)別,實(shí)際上也確實(shí)只有這兩種區(qū)別
    2022-12-12
  • Android評(píng)分RationBar控件使用詳解

    Android評(píng)分RationBar控件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android評(píng)分RationBar控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論

黔西县| 平山县| 卢龙县| 玉山县| 临武县| 库伦旗| 瓦房店市| 平顶山市| 威海市| 淮南市| 武义县| 绥中县| 登封市| 罗山县| 富锦市| 岚皋县| 镇平县| 贞丰县| 石渠县| 鄱阳县| 抚宁县| 疏附县| 叶城县| 方山县| 东阿县| 三明市| 巴林左旗| 常宁市| 铜梁县| 玉龙| 莆田市| 资溪县| 巴楚县| 大厂| 澎湖县| 隆昌县| 六盘水市| 澄迈县| 崇信县| 温宿县| 东乌|