# ChannelTest **Repository Path**: dede_hu/channel_test ## Basic Information - **Project Name**: ChannelTest - **Description**: 多渠道打包 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-05-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCPTools ### 如何使用 1.关联module:MCPTools,或者拷贝AndroidMCPTools.java到项目中 2.读取渠道信息 File file = new File(getPackageResourcePath()); String channel = AndroidMCPTools.read(file); 3.禁用V2版签名,生成apk包 4.打开module:MCPTools\src\main\java\com.dede.mcp_tool\MakePackage.java, 配置路径和渠道信息,运行main方法生成渠道包 ### 原理 利用的是Zip文件“可以添加comment(摘要)”的数据结构特点,在文件的末尾写入任意数据,而不用重新解压zip文件; 所以不需要对apk文件解压缩和重新签名即可完成多渠道自动打包,高效速度快,无兼容性问题 ### 解决安装时报INSTALL_PARSE_FAILED_NO_CERTIFICATES错误问题(Android 7.0版本适配) 安装时的错误提示:Failed to install xxx.apk.1: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/xxx.tmp/base.apk.1 using APK Signature Scheme v2: SHA-256 digest of contents did not verify] Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2 在build.gradle中添加“v2SigningEnabled false”强制使用旧版签名; ... signingConfigs { release { ... v2SigningEnabled false // 使用旧版签名,禁用V2版签名模式,同时满足两个条件才需要此配置:“Gradle版本 >= 2.14.1”和“Android Gradle Plugin 版本 >= 2.2.0” } } ... [官方说明](https://developer.android.google.cn/about/versions/nougat/android-7.0.html?hl=zh-cn#apk_signature_v2)
##### [参考链接](http://blog.csdn.net/yancey_blog/article/details/52743516)