2015-04-07 74 views
0

我们正在构建一个连接到云的Xamarin.Android应用程序。 我们针对不同的环境有不同的云URL,即开发,分期和生产。 每当我为特定环境生成APK时,都会发现自己手动更改网址。 我遇到了Gradle/ANT改变“口味”的方法,但由于它在Xamarin中不可用,我该如何去做呢?如何管理Xamarin中的不同环境?它使用MSBuild配置文件吗?任何帮助,将不胜感激!针对不同环境构建不同的APK(Xamarin.Android)

编辑: 我目前有:

/// <summary> 
///  The application URL for PROD 
/// </summary> 
//private const string ApplicationUrl = "https://prod.azure-mobile.net/"; 

/// <summary> 
///  The application URL for DEV 
/// </summary> 
private const string ApplicationUrl = "https://dev.azure-mobile.net/"; 

在这种情况下,我们手动注释/取消注释的URL的不同构建(开发/分期/生产)和产生的APK。我知道这不是一个最佳的解决方案,并且容易出错。

+0

这听起来像是使用[T4文本转换](https://msdn.microsoft.com/en-us/library/bb126445.aspx)的候选人。你可以包含一些你想要实现的样本/伪代码吗?这会给我一些工作来为你建立一个样本。 – matthewrdev

+0

另外,您如何区分开发/分期/生产版本?这是一个手动过程还是由像Bamboo或Jenkins这样的自动构建系统标记? – matthewrdev

+0

@MattR这是一个手动过程(不涉及竹子/詹金斯)。添加了伪代码。 –

回答

1

我可能会在Development,Staging和Production中定义不同的构建配置(在Project Options中)。然后,您可以定义符号(在选项的Compiler页面中)并使用预处理器指令来更改代码中ApplicationUrl的定义。构建每一个只是在下拉菜单中选择适当的配置。

我还会更改每个配置的输出路径,以便将APK写入不同的文件夹,以减少有关构建每个APK的配置的任何可能混淆。

缺点是,如果您更改任何其他项目选项,您需要确保您对每个配置都进行更改,但由于此操作不经常进行,因此可能是一个合理的折中方案。

相关问题