Мудрое изменение вкуса Gradle packageName и applicationId - PullRequest
0 голосов
/ 27 мая 2018

У меня есть основной продукт (например, Школьное ядро ​​). Теперь мне нужно запустить его для 2 школ (например, Школа A и Школа B ).Различным является только значок заставки приложения.Я пытаюсь управлять этим через аромат.Поскольку мы знаем, что для загрузки в Google Play Store нам нужно другое имя пакета, поэтому я застрял там.

Мой аромат выглядит так -

productFlavors {
    main {
        applicationId "net.school.main"
        versionCode 7
        versionName "2.12"
    }
    schoolA {
        versionCode 2
        versionName '1.01'
        applicationId 'net.school.schoolA'
    }
    schoolB {
        versionCode 1
        versionName '1.0'
        applicationId 'net.school.schoolB'
    }
}

Когда я запускаю аромат SchoolA говорит, что пакет не найден.Я ищу лучший подход, чтобы в будущем любая новая школа могла быть добавлена ​​с минимальными изменениями.

Ответы [ 2 ]

0 голосов
/ 09 августа 2018

Вы решили проблему?

В моем случае все работает отлично.попробуйте вот так

buildTypes {
        release {

        }
    }

flavorDimensions "main"

productFlavors {
main {
    applicationId "net.school.main"
    versionCode 7
    versionName "2.12"
}
schoolA {
    versionCode 2
    versionName '1.01'
    applicationId 'net.school.schoolA'
}
schoolB {
    versionCode 1
    versionName '1.0'
    applicationId 'net.school.schoolB'
}
}

И теперь вы можете поместить значок приложения в папки src / scholA / res / standard, например drawable или mipmap.И используйте варианты сборки для отладки или выпуска каждого варианта.

0 голосов
/ 27 мая 2018

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

Каждое приложение Android имеет уникальный идентификатор приложения, который выглядит как имя пакета Java, например com.example.myapp.Этот идентификатор уникально идентифицирует ваше приложение на устройстве и в Google Play Store.Таким образом, вы можете либо переопределить полное свойство applicationId, либо добавить сегмент к идентификатору приложения по умолчанию, используя applicationIdSuffix достаточно.Для получения более подробной информации см. официальный документ .

...