Meituan-Dianping / walle

Android Signature V2 Scheme签名下的新一代渠道包打包神器
Apache License 2.0
6.77k stars 1.08k forks source link

walle 怎么给不同的渠道配置不同的资源哇? #198

Closed wardenlzr closed 6 years ago

wardenlzr commented 6 years ago

walle 怎么给不同的渠道配置不同的资源哇? 需求:同时打不同接口地址的包,使用不同的包名(方便一部手机上安装测试包和生产包)

achellies commented 6 years ago

这不是walle的事情吧,这是flavor的配置问题,你可以看看applicationId buildConfigField如何针对不同的flavor来进行配置,如果你没有flavor,非要用walle来搞定,不同包名是没有办法的,不同的接口地址还是有可能做的

wardenlzr commented 6 years ago

非常感谢你的回答,我可以这样理解吗?Walle 和自己配置的productFlavors 并不冲突对吧? 请问怎么使用Walle配置不同的接口地址呢?

achellies commented 6 years ago

建议还是按flavor来配置吧,让walle只专注于针对一个APK包生成多个添加了渠道信息的包吧

请问怎么使用Walle配置不同的接口地址呢?

那你是如何获取不同渠道的呢?

wardenlzr commented 6 years ago

@achellies 大佬大佬 我知道可以直接根据key获取 String value = WalleChannelReader.get(context, "packageName ");

我知道可以获取以下信息: projectName - 项目名字 appName - App模块名字 packageName - applicationId (App包名packageName) buildType - buildType (release/debug等) channel - channel名称 (对应渠道打包中的渠道名字) versionName - versionName (显示用的版本号) versionCode - versionCode (内部版本号) buildTime - buildTime (编译构建日期时间) fileSHA1 - fileSHA1 (最终APK文件的SHA1哈希值) flavorName - 编译构建 productFlavors 名

这里的键值对, 怎么自己添加配置呢?

achellies commented 6 years ago

这个String value = WalleChannelReader.get(context, "packageName ");是获取Signing Block中你写入的值的,

而你列的下面这些

projectName - 项目名字
appName - App模块名字
packageName - applicationId (App包名packageName)
buildType - buildType (release/debug等)
channel - channel名称 (对应渠道打包中的渠道名字)
versionName - versionName (显示用的版本号)
versionCode - versionCode (内部版本号)
buildTime - buildTime (编译构建日期时间)
fileSHA1 - fileSHA1 (最终APK文件的SHA1哈希值)
flavorName - 编译构建 productFlavors 名

是供Walle 的Gradle插件在生成渠道包时命名Apk包的,例如可以命名成${appName}-${channel}.apk,上面的键值对暂时没有开发在外面配置的接口