Commit badbc7e3 authored by shiyl's avatar shiyl

配置多flavor进行环境切换运行

parent 8813a0a8
...@@ -25,23 +25,10 @@ android { ...@@ -25,23 +25,10 @@ android {
consumerProguardFiles "consumer-rules.pro" consumerProguardFiles "consumer-rules.pro"
} }
buildTypes { buildTypes {
debug {
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationId + ".debug.fileprovider" + '\"')
manifestPlaceholders = [
app_name : "商家版测试",
file_provider: rootProject.ext.android.applicationId + ".debug.fileprovider",
amap_key : rootProject.ext.amap.amap_debug_key,
]
}
release { release {
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationId + ".fileprovider" + '\"') minifyEnabled false
manifestPlaceholders = [ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
app_name : "生活圈商家版",
file_provider: rootProject.ext.android.applicationId + ".fileprovider",
amap_key : rootProject.ext.amap.amap_release_key,
]
} }
} }
compileOptions { compileOptions {
......
package com.yidian.bcommon.constant package com.yidian.bcommon.constant
import com.yidian.bcommon.BuildConfig
/** /**
* 全局的常量 * 全局的常量
...@@ -12,6 +11,9 @@ interface GlobalConstants { ...@@ -12,6 +11,9 @@ interface GlobalConstants {
const val APK_NAME = "merchant-b.apk" const val APK_NAME = "merchant-b.apk"
// 清单文件中FileProvider的authorities // 清单文件中FileProvider的authorities
const val AUTHORITY = BuildConfig.PROVIDER_NAME var ENVIRONMENT = ""
// 清单文件中FileProvider的authorities
var AUTHORITY = ""
} }
} }
...@@ -12,7 +12,7 @@ object RunConfig { ...@@ -12,7 +12,7 @@ object RunConfig {
PROD// 生产环境 PROD// 生产环境
} }
// 以下配置默认为开发环境,切记以下变量只能在此类中进行赋值,其他均为用方 // 以下配置默认为开发环境,切记以下变量只能在此类中进行赋值,其他均为使用方
var API_URL = AppConfig.DEV_DOMAIN // 服务域名 var API_URL = AppConfig.DEV_DOMAIN // 服务域名
var IS_ENCRYPT: Boolean = false // true : 开启加密 var IS_ENCRYPT: Boolean = false // true : 开启加密
var IS_ENCRYPT_DEBUG_KEY = true // false: 使用正式加密key var IS_ENCRYPT_DEBUG_KEY = true // false: 使用正式加密key
......
...@@ -7,6 +7,7 @@ import com.scwang.smart.refresh.layout.SmartRefreshLayout ...@@ -7,6 +7,7 @@ import com.scwang.smart.refresh.layout.SmartRefreshLayout
import com.scwang.smart.refresh.layout.constant.SpinnerStyle import com.scwang.smart.refresh.layout.constant.SpinnerStyle
import com.yidian.bcommon.constant.AppConfig import com.yidian.bcommon.constant.AppConfig
import com.yidian.bcommon.BuildConfig import com.yidian.bcommon.BuildConfig
import com.yidian.bcommon.constant.GlobalConstants
import com.yidian.bcommon.constant.RunConfig import com.yidian.bcommon.constant.RunConfig
import com.yidian.bcommon.http.ApiSaveCookiesInterceptor import com.yidian.bcommon.http.ApiSaveCookiesInterceptor
import com.yidian.bcommon.http.ApiSetCookiesInterceptor import com.yidian.bcommon.http.ApiSetCookiesInterceptor
...@@ -37,6 +38,12 @@ import timber.log.Timber ...@@ -37,6 +38,12 @@ import timber.log.Timber
object BaseInitConfig { object BaseInitConfig {
fun performInitialization(context: Context) { fun performInitialization(context: Context) {
// 使用编译器运行时,根据Flavor进行环境的配置切换
when (GlobalConstants.ENVIRONMENT) {
"dev" -> RunConfig.switchEnvironment(RunConfig.RunEnvironment.DEV)
"beta" -> RunConfig.switchEnvironment(RunConfig.RunEnvironment.TEST)
"prod" -> RunConfig.switchEnvironment(RunConfig.RunEnvironment.PROD)
}
// 初始化友盟 // 初始化友盟
UMConfigUtils.init(context) UMConfigUtils.init(context)
if (ProcessUtil.isMainProcess(context)) { if (ProcessUtil.isMainProcess(context)) {
......
...@@ -33,13 +33,6 @@ android { ...@@ -33,13 +33,6 @@ android {
} }
buildTypes { buildTypes {
debug { debug {
applicationIdSuffix ".debug"
buildConfigField("String", "API_URL", rootProject.ext.buildParams.debug.API_URL)
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationId + ".debug.fileprovider" + '\"')
manifestPlaceholders = [
app_name : "商家版测试",
file_provider: rootProject.ext.android.applicationId + ".debug.fileprovider",
]
//不混淆 //不混淆
minifyEnabled false minifyEnabled false
//Zipalign优化 //Zipalign优化
...@@ -48,12 +41,6 @@ android { ...@@ -48,12 +41,6 @@ android {
signingConfig signingConfigs.production signingConfig signingConfigs.production
} }
release { release {
buildConfigField("String", "API_URL", rootProject.ext.buildParams.release.API_URL)
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationId + ".fileprovider" + '\"')
manifestPlaceholders = [
app_name : "生活圈商家版",
file_provider: rootProject.ext.android.applicationId + ".fileprovider",
]
//混淆 //混淆
minifyEnabled true minifyEnabled true
//Zipalign优化 //Zipalign优化
...@@ -69,7 +56,42 @@ android { ...@@ -69,7 +56,42 @@ android {
} }
} }
} }
flavorDimensions "default"
productFlavors {
dev {//开发
dimension "default"
applicationId rootProject.ext.android.applicationTestId
buildConfigField("String", "API_URL", rootProject.ext.buildParams.dev.API_URL)
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationTestId + ".fileprovider" + '\"')
manifestPlaceholders = [
app_name : "商家版开发",
application_id: rootProject.ext.android.applicationTestId,
amap_key : rootProject.ext.amap.amap_debug_key,
]
}
beta {//测试
dimension "default"
applicationId rootProject.ext.android.applicationTestId
buildConfigField("String", "API_URL", rootProject.ext.buildParams.test.API_URL)
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationTestId + ".fileprovider" + '\"')
manifestPlaceholders = [
app_name : "商家版测试",
application_id: rootProject.ext.android.applicationTestId,
amap_key : rootProject.ext.amap.amap_debug_key,
]
}
prod {//生产
dimension "default"
applicationId rootProject.ext.android.applicationId
buildConfigField("String", "API_URL", rootProject.ext.buildParams.prod.API_URL)
buildConfigField("String", "PROVIDER_NAME", '\"' + rootProject.ext.android.applicationId + ".fileprovider" + '\"')
manifestPlaceholders = [
app_name : "生活圈商家版",
application_id: rootProject.ext.android.applicationId,
amap_key : rootProject.ext.amap.amap_release_key,
]
}
}
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
...@@ -107,6 +129,7 @@ dependencies { ...@@ -107,6 +129,7 @@ dependencies {
implementation project(it) implementation project(it)
} }
if (!rootProject.ext.android.isApplication) { if (!rootProject.ext.android.isApplication) {
implementation project(":Components:BDemo")
implementation project(":Components:BManagerCenter") implementation project(":Components:BManagerCenter")
implementation project(":Components:BGoods") implementation project(":Components:BGoods")
implementation project(":Components:BXBridBusiness") implementation project(":Components:BXBridBusiness")
......
...@@ -24,19 +24,18 @@ ...@@ -24,19 +24,18 @@
tools:targetApi="n"> tools:targetApi="n">
<!-- 以下为友盟分享基本配置信息 start-->
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="${file_provider}" android:authorities="${application_id}.fileprovider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true" android:grantUriPermissions="true">
tools:replace="android:authorities">
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" android:resource="@xml/file_paths" />
tools:replace="android:resource" />
</provider> </provider>
<!-- 以下为友盟分享基本配置信息 start-->
<!--微信分享/登录--> <!--微信分享/登录-->
<activity <activity
android:name=".wxapi.WXEntryActivity" android:name=".wxapi.WXEntryActivity"
......
...@@ -6,6 +6,7 @@ import android.content.res.Configuration ...@@ -6,6 +6,7 @@ import android.content.res.Configuration
import android.os.Bundle import android.os.Bundle
import com.orhanobut.hawk.Hawk import com.orhanobut.hawk.Hawk
import com.yidian.bcommon.app.YdBaseApplication import com.yidian.bcommon.app.YdBaseApplication
import com.yidian.bcommon.constant.GlobalConstants
import com.yidian.bcommon.services.AppUpgradeService import com.yidian.bcommon.services.AppUpgradeService
import com.yidian.bcommon.services.ImageService import com.yidian.bcommon.services.ImageService
import com.yidian.bcommon.services.XEventService import com.yidian.bcommon.services.XEventService
...@@ -34,9 +35,15 @@ class BusinessApplication : YdBaseApplication() { ...@@ -34,9 +35,15 @@ class BusinessApplication : YdBaseApplication() {
XPageManager.init(this) XPageManager.init(this)
loadService() loadService()
registerActivityLifecycleCallbacks(activityLifecycle) registerActivityLifecycleCallbacks(activityLifecycle)
initEnvironment()
} }
} }
private fun initEnvironment() {
GlobalConstants.ENVIRONMENT = BuildConfig.FLAVOR
GlobalConstants.AUTHORITY = BuildConfig.PROVIDER_NAME
}
override fun attachBaseContext(base: Context?) { override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base) super.attachBaseContext(base)
if (ProcessUtil.isMainProcess(this)) { if (ProcessUtil.isMainProcess(this)) {
......
ext { ext {
android = [ android = [
applicationTestId: "com.shenghuoquan.business.debug",
applicationId : "com.shenghuoquan.business", applicationId : "com.shenghuoquan.business",
versionCode : 101, versionCode : 101,
versionName : "1.0.1", versionName : "1.0.1",
...@@ -11,10 +12,13 @@ ext { ...@@ -11,10 +12,13 @@ ext {
amap_release_key: '9dc8e3fe44680c65de8dbfd808742b10', amap_release_key: '9dc8e3fe44680c65de8dbfd808742b10',
] ]
buildParams = [ buildParams = [
debug : [ dev : [
API_URL: '"http://bp-dev.go2yd.com"',
],
test: [
API_URL: '"http://bp-test.go2yd.com"', API_URL: '"http://bp-test.go2yd.com"',
], ],
release: [ prod: [
API_URL: '"https://bp.go2yd.com"', API_URL: '"https://bp.go2yd.com"',
] ]
] ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment