Любой способ работать в уникальном проекте с разными сборками для разных клиентов - PullRequest
0 голосов
/ 14 мая 2019

У меня есть приложение React Native и пять разных клиентов ... Для каждого клиента приложение просто меняет заставку, значок приложения, базовый URL API, пространство имен и основной стиль стиля приложения.Я решил проблему, связанную с другим стилем приложения, используя глобальную переменную для изменения цвета ... Моя проблема - думать о будущем, когда я создам новую версию приложения с какой-то новой функцией, мне нужно настроить одну за другойизменение изображения в ~ / res / drawable ... для значка приложения и заставки.

Итак, мой вопрос: есть способ работать с уникальным исходным кодом приложения и создаватьновое приложение без забот о каждом клиентском приложении. Конфиги / стили ?

1 Ответ

0 голосов
/ 15 мая 2019

Если вы используете Expo, вы можете попробовать создать отдельный файл app.json для каждого клиента. В app.json вы можете сделать что-то вроде этого

{
  "expo": {
    "name": "Client-1-App",
    ...
    "icon": "./client-1/icon.png",
    "splash": {
      "image": "./client-1/splash.png"
    },
    "extra": {
      "client": "client1"
    }
  }
}

Если вам нужно что-то специфичное для клиента в вашем приложении, вы можете проиндексировать его по дополнительному значению в app.json, например:

const clientColors = {
    client1: {
        COLOR_PRIMARY: '#03A955',
        COLOR_PRIMARY_LIGHT: '#B3E5FC'
    },
    client2: {
        COLOR_PRIMARY: '#1079ab',
        COLOR_PRIMARY_LIGHT: '#1059bb'
    }
};

export default clientColors[Constants.manifest.extra.flavour]

Затем, когда вы создаете приложение, вы можете вызывать специфичные для клиента файлы app.json, например:

expo build:<android|ios> --config client1.json
...