refactor(build): 重构构建配置以支持多环境产品风味
- 在 config.gradle 中为 dev、fiveg 和 external 环境添加版本代码维度 - 将硬编码的语音服务凭据移至对应的产品风味配置中 - 为不同环境添加 API 授权、令牌、Cookie 等构建配置字段 - 更新 HeaderInterceptor 使用 BuildConfig 中的动态配置值 - 修改 TaskListVM 使用构建配置中的当前用户 ID - 移除应用级别的硬编码敏感配置信息
这个提交包含在:
父节点
c2d8a0f40e
当前提交
9c96fa601b
@ -19,10 +19,6 @@ android {
|
|||||||
APP_ID : apps.applicationId,
|
APP_ID : apps.applicationId,
|
||||||
]
|
]
|
||||||
buildConfigField("String", "APP_Name", "\"" + apps.applicationName + "\"")
|
buildConfigField("String", "APP_Name", "\"" + apps.applicationName + "\"")
|
||||||
|
|
||||||
buildConfigField("String", "SPEECH_DOMAIN", "\"172.16.26.73:16443\"")
|
|
||||||
buildConfigField("String", "SPEECH_AK", "\"94c535874d7147dd81f7657ddd0cb1b0\"")
|
|
||||||
buildConfigField("String", "SPEECH_SK", "\"ewKSoNvn8mP2W93kmnzWAT5iVPsmKnMD\"")
|
|
||||||
buildConfigField("String", "SPEECH_UID", "\"demo-user\"")
|
buildConfigField("String", "SPEECH_UID", "\"demo-user\"")
|
||||||
buildConfigField("String", "SPEECH_DEVICE_ID", "\"demo-device\"")
|
buildConfigField("String", "SPEECH_DEVICE_ID", "\"demo-device\"")
|
||||||
buildConfigField("String", "SPEECH_ASR_PATH", "\"/ar/audio/api/ws/asr/streaming\"")
|
buildConfigField("String", "SPEECH_ASR_PATH", "\"/ar/audio/api/ws/asr/streaming\"")
|
||||||
@ -30,6 +26,38 @@ android {
|
|||||||
|
|
||||||
flavorDimensions "versioncode"
|
flavorDimensions "versioncode"
|
||||||
}
|
}
|
||||||
|
productFlavors {
|
||||||
|
dev {
|
||||||
|
buildConfigField("String", "SPEECH_DOMAIN", "\"172.16.26.73:16443\"")
|
||||||
|
buildConfigField("String", "SPEECH_AK", "\"94c535874d7147dd81f7657ddd0cb1b0\"")
|
||||||
|
buildConfigField("String", "SPEECH_SK", "\"ewKSoNvn8mP2W93kmnzWAT5iVPsmKnMD\"")
|
||||||
|
buildConfigField("String", "API_AUTHORIZATION", "\"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJyb2tpZCIsInJuU3RyIjoiQTU3NlV1VVV3V2s5NEpxSjlQcU9keDE1bE1tdU5JYmMiLCJ1c2VySW5mbyI6eyJzdGFmZk5vIjoicm9raWQifX0.qp1zWjYjqtmFS7Udo7Ga-a_XhVNwRUByXYomu6P6yxg\"")
|
||||||
|
buildConfigField("String", "API_TOKEN", "\"3760384-DWuKlfwAYwWBsKAprAXF2lEAdKcyz1\"")
|
||||||
|
buildConfigField("String", "API_COOKIE", "\"__itrace_wid=87125211-8742-4f12-b5ca-32b9b6c860e4; locale=zh-Hans; _webtracing_device_id=t_13501877-b9b303fc-d3f52eb530e026b0\"")
|
||||||
|
buildConfigField("String", "API_ENVIRONMENT", "\"1\"")
|
||||||
|
buildConfigField("String", "API_CURRENT_USER_ID", "\"rokid\"")
|
||||||
|
}
|
||||||
|
fiveg {
|
||||||
|
buildConfigField("String", "SPEECH_DOMAIN", "\"172.16.26.73:16443\"")
|
||||||
|
buildConfigField("String", "SPEECH_AK", "\"94c535874d7147dd81f7657ddd0cb1b0\"")
|
||||||
|
buildConfigField("String", "SPEECH_SK", "\"ewKSoNvn8mP2W93kmnzWAT5iVPsmKnMD\"")
|
||||||
|
buildConfigField("String", "API_AUTHORIZATION", "\"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJyb2tpZCIsInJuU3RyIjoiQTU3NlV1VVV3V2s5NEpxSjlQcU9keDE1bE1tdU5JYmMiLCJ1c2VySW5mbyI6eyJzdGFmZk5vIjoicm9raWQifX0.qp1zWjYjqtmFS7Udo7Ga-a_XhVNwRUByXYomu6P6yxg\"")
|
||||||
|
buildConfigField("String", "API_TOKEN", "\"3760384-DWuKlfwAYwWBsKAprAXF2lEAdKcyz1\"")
|
||||||
|
buildConfigField("String", "API_COOKIE", "\"__itrace_wid=87125211-8742-4f12-b5ca-32b9b6c860e4; locale=zh-Hans; _webtracing_device_id=t_13501877-b9b303fc-d3f52eb530e026b0\"")
|
||||||
|
buildConfigField("String", "API_ENVIRONMENT", "\"1\"")
|
||||||
|
buildConfigField("String", "API_CURRENT_USER_ID", "\"rokid\"")
|
||||||
|
}
|
||||||
|
external {
|
||||||
|
buildConfigField("String", "SPEECH_DOMAIN", "\"172.16.26.73:16443\"")
|
||||||
|
buildConfigField("String", "SPEECH_AK", "\"94c535874d7147dd81f7657ddd0cb1b0\"")
|
||||||
|
buildConfigField("String", "SPEECH_SK", "\"ewKSoNvn8mP2W93kmnzWAT5iVPsmKnMD\"")
|
||||||
|
buildConfigField("String", "API_AUTHORIZATION", "\"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJyb2tpZCIsInJuU3RyIjoiQTU3NlV1VVV3V2s5NEpxSjlQcU9keDE1bE1tdU5JYmMiLCJ1c2VySW5mbyI6eyJzdGFmZk5vIjoicm9raWQifX0.qp1zWjYjqtmFS7Udo7Ga-a_XhVNwRUByXYomu6P6yxg\"")
|
||||||
|
buildConfigField("String", "API_TOKEN", "\"3760384-DWuKlfwAYwWBsKAprAXF2lEAdKcyz1\"")
|
||||||
|
buildConfigField("String", "API_COOKIE", "\"__itrace_wid=87125211-8742-4f12-b5ca-32b9b6c860e4; locale=zh-Hans; _webtracing_device_id=t_13501877-b9b303fc-d3f52eb530e026b0\"")
|
||||||
|
buildConfigField("String", "API_ENVIRONMENT", "\"1\"")
|
||||||
|
buildConfigField("String", "API_CURRENT_USER_ID", "\"rokid\"")
|
||||||
|
}
|
||||||
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
debug {
|
debug {
|
||||||
minifyEnabled false
|
minifyEnabled false
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.nova.brain.glass.repository
|
package com.nova.brain.glass.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import com.nova.brain.glass.BuildConfig
|
||||||
import com.xuqm.base.common.SHARE_UESR_TOKEN
|
import com.xuqm.base.common.SHARE_UESR_TOKEN
|
||||||
import com.xuqm.base.extensions.getStringForPreferences
|
import com.xuqm.base.extensions.getStringForPreferences
|
||||||
import com.xuqm.base.extensions.log
|
import com.xuqm.base.extensions.log
|
||||||
@ -24,12 +25,12 @@ class HeaderInterceptor(val context: Context) : Interceptor {
|
|||||||
|
|
||||||
//请求定制:添加请求头
|
//请求定制:添加请求头
|
||||||
val requestBuilder = original.newBuilder()
|
val requestBuilder = original.newBuilder()
|
||||||
.header("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJyb2tpZCIsInJuU3RyIjoiQTU3NlV1VVV3V2s5NEpxSjlQcU9keDE1bE1tdU5JYmMiLCJ1c2VySW5mbyI6eyJzdGFmZk5vIjoicm9raWQifX0.qp1zWjYjqtmFS7Udo7Ga-a_XhVNwRUByXYomu6P6yxg")
|
.header("Authorization", BuildConfig.API_AUTHORIZATION)
|
||||||
.addHeader("token", "3760384-DWuKlfwAYwWBsKAprAXF2lEAdKcyz1")
|
.addHeader("token", BuildConfig.API_TOKEN)
|
||||||
.addHeader("Content-Type", "application/json;charset=UTF-8")
|
.addHeader("Content-Type", "application/json;charset=UTF-8")
|
||||||
.addHeader("Cookie", "__itrace_wid=87125211-8742-4f12-b5ca-32b9b6c860e4; locale=zh-Hans; _webtracing_device_id=t_13501877-b9b303fc-d3f52eb530e026b0")
|
.addHeader("Cookie", BuildConfig.API_COOKIE)
|
||||||
.addHeader("Environment", "1")
|
.addHeader("Environment", BuildConfig.API_ENVIRONMENT)
|
||||||
.addHeader("currentUserId", "rokid")
|
.addHeader("currentUserId", BuildConfig.API_CURRENT_USER_ID)
|
||||||
.addHeader("terminal", "1")
|
.addHeader("terminal", "1")
|
||||||
.addHeader("modulename", "web")
|
.addHeader("modulename", "web")
|
||||||
.addHeader("currentUserName", "")
|
.addHeader("currentUserName", "")
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.nova.brain.glass.viewmodel
|
package com.nova.brain.glass.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import com.nova.brain.glass.BuildConfig
|
||||||
import com.nova.brain.glass.MyApplication
|
import com.nova.brain.glass.MyApplication
|
||||||
import com.nova.brain.glass.model.TaskItem
|
import com.nova.brain.glass.model.TaskItem
|
||||||
import com.nova.brain.glass.model.data.TaskListData
|
import com.nova.brain.glass.model.data.TaskListData
|
||||||
@ -24,7 +25,7 @@ class TaskListVM : BaseListViewModel<TaskItem>() {
|
|||||||
|
|
||||||
override fun loadData(page: Int, onResponse: Response<TaskItem>) {
|
override fun loadData(page: Int, onResponse: Response<TaskItem>) {
|
||||||
val finalParams = searchParams.copy(
|
val finalParams = searchParams.copy(
|
||||||
userId = searchParams.userId.ifBlank { "rokid" }
|
userId = searchParams.userId.ifBlank { BuildConfig.API_CURRENT_USER_ID }
|
||||||
)
|
)
|
||||||
add(
|
add(
|
||||||
HttpManager.getApi(Service::class.java)
|
HttpManager.getApi(Service::class.java)
|
||||||
|
|||||||
@ -22,6 +22,15 @@ ext {
|
|||||||
]
|
]
|
||||||
|
|
||||||
productF = {
|
productF = {
|
||||||
|
dev {
|
||||||
|
dimension "versioncode"
|
||||||
|
}
|
||||||
|
fiveg {
|
||||||
|
dimension "versioncode"
|
||||||
|
}
|
||||||
|
external {
|
||||||
|
dimension "versioncode"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
androidx = [
|
androidx = [
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户