现在,我正在维护一个Xamarin Multiplatform应用程序,该应用程序只能满足一个客户的需求。 我的Visual Studio解决方案包括一个带有ViewModels和资源的Core项目,以及一个带有UI和平台特定代码的iOS和Android项目。
我现在只需要稍作更改即可为其他客户发布相同的应用程序。
所以我在想,是否有可能有另一个iOS和android应用程序“扩展”我的其他项目,以便我可以覆盖需要更改的部分?
我之所以问是因为,我看到仅通过包含另一个项目而不是覆盖不同的服务即可完全满足该问题的Web应用程序。
答案 0 :(得分:1)
是的,有很多方法可以做到这一点。这只是我头上的两个。
方法1:多个构建配置(中级)
一种方法是创建多个构建配置,然后根据要运行的构建选择要运行的代码。 基本上是这样做,并假设您使用的是Mac,并且UI使用的所有数据都来自Core项目中的ViewModel。然后
方法2:Azure Devops(专家级别)
如果您希望从提交到发布的整个过程自动化,开发人员Scott presented at a Toronto Xamarin Meetup shared准确地介绍了如何使用Azure Devops解决10个以上要发布到不同版本的应用程序的问题。 iOS和Android帐户。他只需要进行一次更改,然后一旦票证/问题/物品/任务被质量检查部门批准,它将直接进入每个商店。它要复杂得多,我将不得不对其进行更多的研究以向您解释。
答案 1 :(得分:1)
如果这些更改还包含一些逻辑,那么我还将继续创建多个Build配置并使用if指令。 然后,在您的代码中可以输入以下内容:
private void ExecuteApiCall()
{
#if COMPANY1
//do something
#elif COMPANY2
//do something else
#else
//do else
}
如果只需要对UI进行一些更改,您还可以考虑具有多个主题,然后仅将一个主题分配给特定客户: https://medium.com/@milan.gohil/adding-themes-to-your-xamarin-forms-app-3da3032cc3a1