Как управлять двумя разными applicationId в productFlavors? - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно управлять двумя разными клиентскими кодами в одном проекте, поэтому я использовал productFlavors и определил вкус для каждого клиента.

Теперь вопрос в том, что база исходного кода одинакова для обоих, но нужно определить разные applicationId, как

  1. com.abc
  2. com.def.

Как сделать так, чтобы код оставался одинаковым для обоих и appId отличался?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

android создаст main/ исходный набор и каталоги для всего, что вы хотите разделить между всеми вашими вариантами сборки, поэтому нет необходимости создавать новый исходный набор в вашем случае.

И вы можете использовать applicationIdSuffixдля разных вариантов сборки, который добавляется к «базовому» идентификатору приложения при вычислении окончательного идентификатора приложения для варианта. Например: flavourDimensions «appMode»

productFlavors {

    free {
        dimension "appMode"
        applicationIdSuffix ".free" //the application id of 'free' is com.example.com.free
    }
    paid {
        dimension "appMode"
        applicationIdSuffix ".paid"//the application id of 'free' is com.example.com.paid
    }
}

applicationIdSuffix будет добавлен к имени пакета(базовый идентификатор приложения), com.example.com - это имя пакета в приведенном выше примере.

0 голосов
/ 19 ноября 2018

добавить набор кодовых блоков applicationId, как показано ниже:

productFlavors {
        abc {
            resValue "string", "build_type", "Version " + defaultConfig.versionName
            applicationId "com.abc"
        }
        def {
            resValue "string", "build_type", "Version " + defaultConfig.versionName
            applicationId "com.def"
        }
...