首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可能为不同的客户构建一个Xamarin多平台应用程序项目?

是否有可能为不同的客户构建一个Xamarin多平台应用程序项目?
EN

Stack Overflow用户
提问于 2019-06-18 19:41:55
回答 2查看 884关注 0票数 4

现在,我正在维护一个Xamarin多平台应用程序,它只需要满足一个客户的需求。我的Visual解决方案包括一个带有ViewModels和资源的核心项目,以及一个带有UI和平台特定代码的iOS和Android项目。

现在,我必须发布相同的应用程序,为不同的客户,只有轻微的变化。

所以我想知道,是否有可能让另一个iOS和安卓应用程序“扩展”我的其他项目,这样我就可以覆盖需要修改的部分了吗?

我之所以问这个问题,是因为我看到web应用程序仅仅通过包含另一个项目来满足这个问题,而不是覆盖不同的服务。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-18 19:52:26

是的,有很多方法可以做到。这里只有两个到达我头上的。

方法1:多个构建信任(中间级别)

一种方法是创建多个构建配置,并根据正在运行的构建选择要运行的代码。基本上,为了做到这一点,并假设您使用的是Mac,并且您的UI使用的所有数据都来自您的核心项目中的ViewModels。然后

  1. 在“核心项目设置”中,转到“配置”,选择“发布”并单击“复制”,然后键入客户端名称。
  1. 然后转到编译器,选择客户端配置,添加一个如图所示的定义符号,然后按OK

  1. 然后在您的ViewModel中,使用您为客户定义的符号添加特定于公司的代码。根据构建配置的不同,Visual告诉您哪些代码将使用更深的颜色生成

  1. 然后转到解决方案属性->Configurations->General->为每个客户/客户端添加三个(一次用于Android (任何CPU),一个用于iPhone,一个用于iPhone模拟器)。

  1. 所以它应该是这样的-- Client1,Client2 1连iPhone,Client2 1\iPhoneSimulator,Client2,Client2 2连iPhone,Client2\iPhoneSimulator。确保不选中“为所有解决方案项创建配置”。
  2. 然后,转到Configuration选项卡,选择Client1 & Client2,并确保将根据所选平台构建正确的项目。并确保每个项目的正确配置是适当的(调试与发行版)。在我们的示例中,只有Viewmodels需要特定于客户端的代码,因此其余的项目正确构建。

。按下Ok和puis瞧!

方法2: Azure Devops (专家级)

如果您想实现从提交到发布的整个过程自动化,开发人员斯科特MacDougall,出席多伦多Xamarin Meetup共享会议,您可以使用Azure来管理超过10个应用程序,这些应用程序将被发布到不同的iOS和Android帐户。他只需要做一次改变,然后一旦QA批准了票证/发布/项目/任务,它就会直接进入每一家商店。这件事要复杂得多,我得多研究一下才能向你解释。

票数 1
EN

Stack Overflow用户

发布于 2019-06-19 08:22:59

如果这些更改还包括一些逻辑,那么我还将创建多个构建配置并使用If指令。那么,在您的代码中,您可以得到如下内容:

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56656005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档