如何使用不同的应用程序名称,图标,设置从一个项目构建多个应用程序,

rak*_*ete 14 android ios react-native

仅使用一个项目构建iOS和Android应用程序非常棒.但是,是否也可以构建具有不同名称,图标等的多个应用程序.

如果您构建具有相同布局的应用程序并且可能与功能/代码/算法的95%相同,这可能非常有用:

  • 不同的目标群体(健身,素食主义者,蔬菜,生态,...的食谱应用程序)
  • 不同的运动(足球,篮球,网球新闻...)
  • 不同的客户(客户A,B和C的业务应用程序)
  • ...

事情,每个应用程序可能会有所不同:

  • 应用名称
  • 应用程序图标
  • 闪屏
  • 设计
  • 设置(API URL,...)
  • 一些代码(默认功能/组件可能会被基于应用程序的自定义文件覆盖)

也许它是一个完美的解决方案,如果你有一个目录风格,你可以把你想要用来覆盖默认代码库的所有文件.

有人在这里发布了类似或任何想法如何解决这个问题?

Rom*_*pov 5

这是我最近几天在项目中一直在解决的问题。而且我认为到目前为止我有一些好的(不完美的)解决方案。

主意。我们没有任何内置函数来帮助我们处理这种情况,因此我们可以使用一些外部操作来完成这项工作。我们需要的只是多个 Android 和 iOS 项目以及单个 JS 代码库。

执行。我来到了这个项目结构:

  • ios
  • 安卓
  • 经理
  • 源文件

iosandroid文件夹是众所周知的,它们是本机项目文件夹。

src 是一个有JS代码的文件夹,可以随意整理

manager是最有趣的一个。在这里我们可以存储多个原生项目文件。我们可以在其中有多个本机项目文件夹,例如app1-android app1-ios app2-android app2-ios. 当我们想要工作时,app1我们只需复制app1-ios并复制app1-android到我们的根目录iosandroid文件夹中,因此实际项目是app1. 当我们正在做app1我们能够保存androidios文件夹,我们manager然后只需复制app2-iosapp2-android以根iosandroid。我们都很乐意开发我们的app2.

我们可以手动完成。但我们是开发人员,我们可以让它变得更容易。我已经编写了一个 PHP 脚本,它使它变得php save.php -a app1php set.php -a app1复制一样简单manager到根和倒退。此外,它还负责不复制一些不重要的人员(ios 中的 pods 文件夹,android 中的 build 等)并运行pod install以确保我们在实际项目中拥有所有 pod。

我坚持使用一个package.json文件将所有 npm 模块安装一次,所以我不必运行npm install在每次项目切换后。

毕竟,我们可以在一个 repo 中拥有任意数量的项目,我们可以独立定制每个项目。

PS如果你想让我分享我的脚本,我会尽快完成(需要一些时间为 github 准备它并写一些更详细的说明),请告诉我。


Lau*_*t S 0

我们做的事情与您想做的类似,但范围更有限。我们的应用程序有各种版本,每个版本都有名称、徽标、设计、API URL...

它只是为 Android 构建的,所以它本质上是上面评论中提到的几种风格。(我不知道iOS的等效系统是什么)

但我们也使用https://github.com/luggit/react-native-config提供了一种在本机(android 和 iOS)和 javascript 代码之间共享这些特定变量/设置的方法。您所需要的只是设置一个.env.myversion包含您需要的设置的文件,例如:

API_URL=https://my.server.com/ LOGO_FILE=/path/to/the/right/logo COLORSET=shades_of_blue

正确的文件会在构建时引入,以便您的应用程序具有每个设置的正确版本,然后您可以从代码中调用这些变量,并根据您使用的版本进行分支。好处是它在任何地方都适用。这样做的缺点是,如果您在 JS 层中拥有所有这些内容,而不是在构建系统中使用风格定义它们,那么您可能会在应用程序中附带一些额外的内容。我想这是便利性和性能/效率之间的权衡,您需要根据您的用例来决定。