现在,我正在维护一个Xamarin多平台应用程序,它只需要满足一个客户的需求。我的Visual解决方案包括一个带有ViewModels和资源的核心项目,以及一个带有UI和平台特定代码的iOS和Android项目。
现在,我必须发布相同的应用程序,为不同的客户,只有轻微的变化。
所以我想知道,是否有可能让另一个iOS和安卓应用程序“扩展”我的其他项目,这样我就可以覆盖需要修改的部分了吗?
我之所以问这个问题,是因为我看到web应用程序仅仅通过包含另一个项目来满足这个问题,而不是覆盖不同的服务。
发布于 2019-06-18 19:52:26
是的,有很多方法可以做到。这里只有两个到达我头上的。
方法1:多个构建信任(中间级别)
一种方法是创建多个构建配置,并根据正在运行的构建选择要运行的代码。基本上,为了做到这一点,并假设您使用的是Mac,并且您的UI使用的所有数据都来自您的核心项目中的ViewModels。然后
。按下Ok和puis瞧!
方法2: Azure Devops (专家级)
如果您想实现从提交到发布的整个过程自动化,开发人员斯科特MacDougall,出席多伦多Xamarin Meetup共享会议,您可以使用Azure来管理超过10个应用程序,这些应用程序将被发布到不同的iOS和Android帐户。他只需要做一次改变,然后一旦QA批准了票证/发布/项目/任务,它就会直接进入每一家商店。这件事要复杂得多,我得多研究一下才能向你解释。
发布于 2019-06-19 08:22:59
如果这些更改还包括一些逻辑,那么我还将创建多个构建配置并使用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
https://stackoverflow.com/questions/56656005
复制相似问题