Вы можете сделать много с ароматами, но то, что вы пытаетесь сделать, это гораздо проще, чем кто-нибудь ответил.
Сначала у вас есть вариант сборки, чтобы выбрать свой вкус для отладки и работы. Поэтому используйте это, иначе вся ваша отладка будет использовать основной выпуск по умолчанию.
Во-вторых, вам не нужно получать имя пакета, просто используйте флаг конфигурации сборки или проверьте вкус. И.Е.
android {
signingConfigs {
releaseA35Demo {
storeFile file("$projectDir/../yaskeystore.jks")
storePassword System.getenv('YOUR_APP_STUDIO_STORE_PASSWORD')
keyAlias System.getenv('YOUR_APP_STUDIO_KEY_ALIAS')
keyPassword System.getenv('YOUR_APP_STUDIO_KEY_PASSWORD')
}
}
flavorDimensions 'default'
productFlavors {
a35Demo {
dimension 'default'
applicationId "com.appstudio35.yourappstudio"
buildConfigField "String", "SERVER_URL", '"http://fakeNumbers.compute-1.amazonaws.com:3006"'
buildConfigField "int", "BUSINESS_ID", "1"
versionCode 1
versionName "0.01.01-b1"
minSdkVersion 21
}
a35DemoDev {
dimension 'default'
applicationId "com.appstudio35.yourappstudio.dev"
buildConfigField "String", "SERVER_URL", '"http://fakeNumbers2.compute-1.amazonaws.com:3006"'
buildConfigField "int", "BUSINESS_ID", "2"
versionCode 1
versionName "0.01.01-b1"
minSdkVersion 21
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
productFlavors.a35Demo.signingConfig signingConfigs.releaseA35Demo
productFlavors.a35DemoDev.signingConfig signingConfigs.releaseA35Demo
}
}
}
Тогда просто ссылаться на него в коде, как:
BuildConfig.BUSINESS_ID
Везде, где вам это нужно. Просто убедитесь, что вы случайно не используете BuildConfig проекта библиотеки, когда он автоматически импортирует BuildConfig.
Следующий способ, если вы хотите проверить свой вкус, вы можете просто сделать BuildConfig.FLAVOR, чтобы узнать, на каком из них вы находитесь. Однако имейте в виду, что есть некоторые предупреждения компилятора об использовании этого, потому что вы проверяете вкус, и BuildConfig предполагает, что он ВСЕГДА будет тем, что вы сейчас используете для раскрывающегося списка Build Variant, что неверно, вы можете игнорировать это всегда верно или всегда ложное предупреждение, я заверяю вас, что это работает.
Наконец, ваш пакет управляется вариантом сборки, который вы отлаживаете. Я добавлю изображение, чтобы вы могли видеть, где его изменить.
Надежда, что помогает.
Но последнее, что я скажу, это то, что ваша MainActivity будет автоматически обрабатываться, вам не нужно управлять пакетом для MainActivity, просто запустите его. Он будет использовать соответствующий аромат для того, в котором вы находитесь. Обычно, когда вы перемещаете файл в аромат, вы делаете свой аромат выпуска и ваши варианты, чтобы он использовал соответствующую MainActivity. То, что вы делаете, немного хаки, но я думаю, это работает. Тем не менее, рекомендуется рекомендовать, чтобы инструмент для ароматов выполнял свою работу и запускал его для вас.
Просто удалите MainActivity от Main и убедитесь, что он в ваших двух ароматах оплачен и свободен, и вы готовы к работе.
Вы можете добавить поле BuildConfig к каждому аромату и проверить 'if (field == free) {launch free} else {launch paid}' –
Проблема в том, что бесплатная версия не знает платный пакет. – XxGoliathusxX
, так что даже он не используется, он объявляет его как ошибку – XxGoliathusxX