2017-07-18 80 views
0

我们需要将xamarin android应用程序构建为多个构建配置。我们有不同的KeyStore文件来演唱来自不同构建配置的应用程序。这意味着在构建时我们需要选择正确的密钥库文件和密码。我们设法使用字符串插值来引用密钥库文件的路径。关于密码,它是非常棘手的。是否有可能从另一个构建变量的值构造一个vsts构建变量?

考虑例如

多个构建配置 测试下方 开发 PROD 下面建立变量进行了相应的密钥库文件的密码 KeyStorePasswordTest KeyStorePasswordDev KeyStorePasswordProd

现在在构建可变部分,我们有定义了另一个构建变量,其值如下 KeyStorePassword ------- $(“KeyStorePassword $(BuildConfiguration)”)

where valid BuildConfiguration is Test, Dev & Prod. 

有人可以帮助我吗?这可以通过shell脚本完成,但我们需要一个安全的解决方案,因此决定使用VSTS构建服务器功能。

我们使用的是TFS 2015服务器,并且构建在Mac Mini构建代理上运行。

回答

0

是的,您可以使用shell脚本任务来根据不同的构建配置分配不同的密码。

shell脚本为:

#!/bin/bash 

temp=$(echo "KeyStorePassword$BuildConfiguration") 
if [ $temp = "KeyStorePasswordDev" ] 
then 
{ 
# what you want to set password 
} 
elif [ $temp = "KeyStorePasswordProd" ] 
then 
{ 
# what you want to set password 
} 
elif [ $temp = "KeyStorePasswordTest" ] 
then 
{ 
# what you want to set password 
} 
else 
{ echo "no such config or password" } 
fi 

参数的shell脚本任务:

"$(BuildConfiguration)" "$(KeyStorePasswordDev)" "$(KeyStorePasswordTest)" "$(KeyStorePasswordProd)" 

注: 由于$(BuildConfiguration)变量通常被定义为debugrelease,您可以命名不同可变名称。

+0

不错。谢谢。会试一试。 – Jeeva

+0

您现在可以通过shell脚本任务成功设置密码吗? –

相关问题