-
Notifications
You must be signed in to change notification settings - Fork 113
Home
谷进杰 edited this page Dec 29, 2017
·
4 revisions
一步解决应用加固导致Walle渠道信息失效的自动化脚本,自动生成渠道包
- 按照config.py文件中的注释改成自己项目配置
- 将已经加固好的包【未签名的包,请不要使用加固客户端签名工具】放到脚本工具根目录下或者在config.py中自行配置,即your.apk
- 各种渠道的定义是在channel这个文件中,请根据项目情况修改
- 运行命令
python ApkResigner.py
,即可自动生成所有渠道包。
- 保证你Android程序的compileSdKVersion 和 buildToosVersion 版本相同
- 建议将jdk升级到1.8
- 保证自己本地打包签名可以正常运行
- 保证配置的相关路径正确,编码格式为UTF-8,不要带异常字符。
- Android SDK buidtools请使用25.0+版本,越新越好。
这个问题和打包脚本无关,walle打包后的渠道需要重新手动写入其他三方SDK才可正常统计,下面以友盟为例:
/**
* 获取瓦力渠道包
* @return
*/
public static String getWalleChannel(Context context){
String defaultValue = "walleUnknown";
ChannelInfo channelInfo= WalleChannelReader.getChannelInfo(context);
if (channelInfo != null) {
String channel = channelInfo.getChannel();
if (TextUtils.isEmpty(channel)){
channel = defaultValue;
}
return channel;
}
return defaultValue;
}
//config umeng in your application
UMConfigure.init(this, AnalyticsConfig.getAppkey(this), getWalleChannel(),
UMConfigure.DEVICE_TYPE_PHONE, null);
脚本需要python环境,目前兼容2.x和3.x,请确保电脑上正确安装python环境,并正确配置环境变量,可以通过命令python --version
检验