【问题标题】:How to build a mobile app for multiple clients from the same codebase如何从同一个代码库为多个客户端构建移动应用程序
【发布时间】:2015-05-05 03:40:14
【问题描述】:

我们为两个独立的客户定制了一个 iOS 应用和一个 Android 应用。而且在为客户构建的时候编辑代码也太麻烦了。

有没有办法自动执行此操作,以便我们可以继续维护通用代码库并将特定于客户端的代码库放在不同的文件中?自定义非常简单(例如应用名称、后端服务器地址、一些字符串等)

我是网络开发人员,而不是移动开发人员。在 Python/Django 中,我只是将特定于客户端的常量和变量放在单独的 settings.py 文件中,然后在部署时选择要使用的文件。这使我可以轻松地为不同的客户端维护服务器应用程序。

我想知道我们是否可以为 iOS 和 Android 项目做类似的事情。

【问题讨论】:

  • 您可以将设置作为常量写入文本文件或 SQLite DB 并从那里读取两个应用程序。
  • 这不是预处理器指令的完美用例吗?

标签: android ios


【解决方案1】:

对于 android,有一个相当简单的方法,它是一个内置功能:构建风味。

您可以为其中一个客户端指定一种附加风格,并为另一个客户端保留主要风格。

然后在flavor的对应文件夹中添加需要修改的文件的副本。 以下是对口味的详尽描述以及如何根据您的特定要求进行操作: http://blog.robustastudio.com/mobile-development/android/building-multiple-editions-of-android-app-gradle/

Android 关于构建风格的文档:https://developer.android.com/studio/build/build-variants.html#product-flavors

【讨论】:

    【解决方案2】:

    对于 iOS,我会使用预处理器命令为不同的客户端调用不同的代码。我还会编写一个脚本(我用swift编写了我的脚本以在Mac上的终端中运行),它将接受设置并根据您为脚本提供的参数对.plist文件和项目文件进行更改

    【讨论】:

      【解决方案3】:

      我曾在相同的环境中工作并面临相同的问题。按照下面的过程,它应该像一个魅力一样工作: 步骤1 。创建一个包并将其声明为库。 第2步。 。创建一个模块并在 dependencies 中声明上述库。 步骤 3. 创建另一个模块并将库声明为依赖项。

      现在你的库代码是两个模块的基础代码。无论您要执行的客户特定更改是什么,都可以在模块中执行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-19
        • 1970-01-01
        • 2022-09-24
        相关资源
        最近更新 更多