使用Azure DevOps部署Android应用程序并为不同环境编辑APK

使用Azure DevOps部署Android应用程序并为不同环境编辑APK,android,xamarin,azure-devops,Android,Xamarin,Azure Devops,这是一个概念/设计问题 我们有一个Xamarin表单应用程序,我正在为Azure DevOps中的Android版本创建一个构建和发布管道。 我们总共有4个环境:内部环境、RC环境、暂存环境和生产环境。 对于其中的每一个,我都创建了一个powershell预构建脚本,该脚本更改了一些配置xml文件、应用程序图标(不同环境下的不同颜色)甚至应用程序名称和软件包名称(这样我们就可以在一台设备上安装所有4个,并能够使用不同的服务器进行测试) 现在我有了一个内置的DevOps,它运行预构建脚本来修改所有

这是一个概念/设计问题

我们有一个
Xamarin表单
应用程序,我正在为Azure DevOps中的Android版本创建一个构建和发布管道。 我们总共有4个环境:内部环境、RC环境、暂存环境和生产环境。
对于其中的每一个,我都创建了一个
powershell
预构建脚本,该脚本更改了一些配置xml文件、应用程序图标(不同环境下的不同颜色)甚至应用程序名称和软件包名称(这样我们就可以在一台设备上安装所有4个,并能够使用不同的服务器进行测试)

现在我有了一个内置的DevOps,它运行预构建脚本来修改所有这些内容,构建项目,签署
apk
并发布它。在我的发布管道中,我无法使用此逻辑,因为我需要能够将不同的应用部署到
App Center

所以我决定拆分构建,它将只是构建,然后发布管道将有阶段-alpha将运行脚本并修改应用程序,对其进行签名,并将其放入alpha组进行测试,从Beta阶段到Beta阶段等等

但是,这意味着我必须在使用powershell生成
.apk
后修改它。例如,
Android清单
文件的内容看起来不再像XML,其中包含奇怪的
NUL
DLE
和其他符号。这会让我的生活更艰难

我是否使用为所有环境准备的包在构建管道中构建所有4个包?这将增加很多时间,所以这是不可取的,但它将节省我以后编辑APK


在这种情况下,什么是最佳实践,你能建议我做什么,改变我做任何事情的方式还是什么?

既然apk必须在CI中完成签名,为什么不尝试使用不同的并行签名构建?然后将值与变量一起传递,以构建具有不同符号的apk。