【发布时间】:2016-10-07 07:40:19
【问题描述】:
我有一个由 CI 构建并发布到 HockeyApp 的多风格项目。 每个风味都有一个 applicationId 和一个 apiToken,它们存储在风味本身中(将所有重要变量保存在一个位置):
def token = null
productFlavors {
prod {
applicationId "de.example.appname"
buildConfigField 'String', 'FLAVOR_ID', '"0"'
buildConfigField 'String', 'HOCKEY_APP_ID', '"1234567890"'
token = "1q2w3e4r5t6z7u8i9o0p"
}
demo {
applicationId "de.example.appname.demo"
buildConfigField 'String', 'FLAVOR_ID', '"1"'
buildConfigField 'String', 'HOCKEY_APP_ID', '"987654321"'
token = "p0o9i8u7z6t5r4e3w2q1"
}
}
在与“productFlavors”相同的级别上,还有 hockeyApp-settings:
hockeyapp {
apiToken = token
releaseType = 0
notify = 0
status = 1
notesType = 1
notes = "Uploaded with gradle"
}
为了调试代码,我通过终端构建和上传 .apk 文件:
./gradlew uploadProdReleaseToHockeyApp [...]
不幸的是,prod-flavor 的变量 token 总是被 demo-value 覆盖。因此,在每个上传过程之后,我都会收到类似的错误
来自 HockeyApp 的错误响应:无法创建应用程序。
因为 gradle 尝试使用 demo-token 上传 prod-flavor。
这里有一些额外的基本数据:
compileSdkVersion 24
buildToolsVersion "24.0.1"
compile 'net.hockeyapp.android:HockeySDK:4.0.0'
classpath 'com.android.tools.build:gradle:2.1.3'
classpath 'de.felixschulze.gradle:gradle-hockeyapp-plugin:3.5'
根据我的要求,是否有定义风味变量并以所示方式访问它们的解决方案?
【问题讨论】:
-
这似乎与this unanswered question 相同。另请参阅this thread,它可能会提供解决方案。
-
嘿,找到任何解决方案了吗?我正在寻找相同的解决方案。
-
@iMDroid 看看我的正确标记答案 ;-)
-
@JU5T1C3 太好了。非常感谢。
标签: android gradle android-gradle-plugin build.gradle hockeyapp