How to configure build types vs. product flavors?(如何配置构建类型与产品风格?)
问题描述
基于这个答案 https://stackoverflow.com/a/27908019/5156317 我有一个后续问题:是什么让一款代表产品风味的应用与众不同?我正在尝试将此与我的 XCode 设置进行比较,如下所示:
Based on this answer https://stackoverflow.com/a/27908019/5156317 I have a follow up question: What makes an app different that speaks for product flavours? I am trying to compare this with my XCode setup which is as follows:
- 使用测试后端的开发应用
- 使用生产后端的开发应用
- 使用测试后端的测试应用(企业发行版)
- 使用生产后端的测试应用(企业分发
- 使用生产后端的实时应用(应用商店分发)
我对 android 设置的想法:
My thoughts for the android setup:
构建类型:调试测试调试生产//不需要企业应用程序,因为任何设备上都可能有未签名的应用程序发布
buildTypes: debug_test debug_production // no need of enterprise apps since it is possible unsigned apps on any device release
口味:我的应用程序
感谢您的支持!
推荐答案
好吧,我不会指定比 debug 和 release 更多的构建类型,以便使用不同的后端.相反,我会使用其中一些技术:
Well, I wouldn't specify more build types than debug and release in order to use different backend.
Instead, I would use some of these techniques:
- 更多口味,
- 自定义构建配置字段(文档此处),
- 结合多种产品风格(文档此处).
您可以使用 BuildConfig 类访问应用程序代码中的构建类型、构建风格和自定义字段.
You can access build types, build flavors and custom fields in the application code using BuildConfig class.
简单的方法
构建类型:
Build types:
调试发布
口味:
开发测试直播
这会导致这些构建变体(您不必全部使用它们):
Which would result in these build variants (you don't have to use all of them):
devDebug开发发布testDebugtestReleaseliveDebugliveRelease
使用维度组合多种风格的方法
风味维度:
Flavor dimensions:
后端目标
构建类型:
调试发布
口味:
目标维度:开发测试直播
生产测试
这会导致这些构建变体(同样,您不必使用所有这些变体):
Which would result in these build variants (again, you don't have to use all of them):
productionDevDebugproductionDevReleaseproductionTestDebugproductionTestReleaseproductionLiveDebugproductionLiveReleasetestDevDebugtestDevReleasetestTestDebugtestTestReleasetestLiveDebugtestLiveRelease
使用构建字段
在构建类型和构建风格声明中使用附加值,例如:
Use additional value in build types and build flavors declarations, for example:
buildConfigField "boolean", "production_backend", "false"或
buildConfigField "String", "backend", ""production""这篇关于如何配置构建类型与产品风格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何配置构建类型与产品风格?
基础教程推荐
- 如何从 logcat 中删除旧数据? 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
