Android-V1、V2签名包和快速集成美团多渠道打包(原创)

简介: 本文已独家授权 郭霖 ( guolin_blog) 公众号发布!今天的文章主要介绍的是Android V1、V2签名包的基本概念和使用场景以及如何十分钟快速掌握美团多渠道打包。

本文已独家授权 郭霖 ( guolin_blog) 公众号发布!

今天的文章主要介绍的是Android V1、V2签名包的基本概念和使用场景以及如何十分钟快速掌握美团多渠道打包。

内容概览:

1:美团多渠道打包的快速使用和集成

2:Android Studio 2.3版本及以上,V1、V2版本签名包的相关说明

3:V1、V2版本签名包的比较以及在本文提供的多渠道打包方案下,两种签名包的选择

准备工作:

1:Python开发环境的安装,美团打包工具(下文的准备链接已给大家准备好了资源,直接下载即可)

2:带签名的APK包(也就是我们编写好的代码,需要生成一个正式的签名包)

开始体验:

说起多渠道打包呐,脑海里面最直接的反应就是在AS里面直接配置flavor、使用友盟多渠道打包通过动态替换meta-data里面的value值去实现等等。

美团点评技术团队开源的多渠道打包着实可谓业界良心、精品楷模。通过使用Python直接批量修改,1秒打上百个包那真是So easy。

首先,需要下载给大家提供的准备链接。下载完毕以后,解压出来会有2个包,一个是Python的安装环境,一个是美团打包的工具。其中,美团的打包工具是一个压缩包,解压之后,有如下文件。

img_f676b26240512028e78e715dbec785f1.png
美团打包工具

下载无误之后,即可开始快速集成美团多渠道集成步骤:

步骤1:配置Python环境

A:首先,我们需要安装Python的环境(注意:Python2.X和3.X版本的都可以!两个版本都可以!虽然两个版本的差异和语法不一样,但是这里是为了配置打包环境,所以开发者暂时先不要纠结使用那个版本的问题)笔者使用的是python-3.6.3这个版本,该文件已上传百度云盘,下载即可。

下载之后,点击这个exe文件,点击之后,Windows下的界面是这样的(穷逼买不起MAC,见谅)

img_37958908e3370474b504d60b13f905e1.png

记住,下面的 Add Python 3.5 to PATH (红色箭头)一定要勾选,一定要勾选。

勾选之后,点击 Install Now,等待几秒。OK,安装完成!

B:打开CMD,输入 python,有以下提示则安装成功


img_c1b1c7d25e45ebdf2a309857be67ed15.png
安装成功

但是还是可能会安装失败,如下图


img_1fc49020ed69a1ee3c6da113863ee24b.png
安装失败

没事,出现安装失败的情况,可能是没有勾选Add  Python 3.5 to PATH 没有勾选或者部分电脑勾选了还是安装失败(笔者的笔记本就遇到了这种问题,勾选了依旧没用)

解决办法:

I:重新安装Python环境,记得勾选Add  Python 3.5 to PATH。

II:I步骤如果还是不行,那我们需要去环境变量里面,配置python的环境变量即可。想快速解决环境变量的可以点击下面链接当然自己百度也行。配置Python环境

步骤2:

集成好Python的环境配置以后,打开下载好的美团打包工具。也就是本文第一张图,首先,有一个JavaUtil,这个是获取渠道信息的代码(可以自己Copy到项目,根据项目需求去集成使用);还有一个PythonTool文件夹,这个就是美团打包的核心,点进这个文件夹之后,如图:


img_e6a44b0f254a56f07307e15c5ce95252.png
PythonTool内部文件

我们只需要把生成好的正式签名包,copy在这里。(这里只是演示,也就是app-release.apk这个文件)我们只需要把写好的正式签名包,copy在这里。注意:必须是同级目录。


img_198640b178e8ac55c89d28dbdc2ca666.png
项目签名包放进来

然后,点击MultiChannelBuildTool这个python文件,点击一下即可!


img_051c065a18b3866a67ef9908af743179.png

点击之后,会生成一个紫色框的文件夹,我们点进去该文件夹,


img_21bc32fdf9cc9e15977f218be7c04885.png
美团多渠道打包生成的文件

MMP,一瞬间生成了这么多个apk,耗时半秒不到。

基本的多渠道打包使用就已经完成了。

十分钟不到吧应该。是的,已经打包完毕了。

问题1:如何配置其他的渠道?

info文件夹,目录下的channel就是用来存放打包渠道的,注意:多个渠道之间请用换行隔开、多个渠道之间请用换行隔开(不建议使用Windows下面的txt直接打开,强烈建议使用notepad++等第三方文字编辑工具使用编辑!!!)

问题2:如何获取渠道信息?

在前面说到了,给大家准备的下载链接里面,解压缩后有个JavaUtil的包,这里面就是获取渠道信息的代码,开发者可以根据这个工具类,去获取渠道号。或者根据开发需要自己集成使用即可。

关于V1、V2签名包的说明:

说完了美团多渠道打包,我们在说说V1、V2签名包。

如果我们升级到最新的AS(笔者的是3.0),点击打包选项,细心的你会看到这样的打包界面:


img_2430f7e765eeef7da44debcdbe08bf77.png

老版本的AS,只有V1选择,也就是紫色的框框。但是新版本的AS,默认勾选的是V2版本(笔者的AS默认是勾选的V2版本)。如果只勾选V2版本,打出来的签名包,很多机型会直接提示安装失败。解决办法下面会说。

概述:

在Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDK。

V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改,这样可以移动甚至重新压缩文件。

V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。

刚才说了,如果只勾选V2版本,打出来的签名包,很多机型会直接提示安装失败。下面就给大家提供两种解决方案

解决方案一:

V1和V2的签名使用:

1)只勾选V1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式

2)只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证

3)同时勾选V1和V2则所有机型都没问题。

解决办法二:

还有一种快速高效的代码解决方式,我们可以直接在app的build.gradle的android标签下,加入以下代码也可以解决只勾选V2版本签名包部分机型会提示安装失败的问题。


img_dd33e4bf66bce1c844fd59312827d0fd.png
signingConfigs

想说的话:

V2签名包是从Android7.0系统出现的新的签名机制,这个新机制使得apk的签名方式更加安全。首先我们应该尝试把V1和V2两个选项全部勾选,并尽可能的去使用他们,但是如果全部勾选完毕出现了问题,那么我们可以忽略这种新的签名机制,只勾选第一个选项(V1),依旧使用我们之前老的签名机制,也就是说,V1版本更加快速方便。

为什么这里会提到V1、V2的区别。因为这里的美团多渠道打包只能适用于V1版本的签名包!!!但是笔者公司的运营上周五将apk上架应用宝(在打包同时勾选V1、V2且没有使用多渠道打包)还是会提示:


img_9e843eaa1d92c85d0d0f9b474cf68c7c.png
应用宝暂时不支持V2签名包

所以,个人还是推荐使用V1打包方式。因为稳定,所以放心。

在提一嘴,前不久美图技术点评也实现了V2版本包的功能,想了解的请移步:新一代美团快速打包。集成起来会相对复杂一些,在一些讲究效率和快速开发的团队,正常使用V1签名包和上面的美团打包方式,依旧可以快速高效满足开发需求保证产出以及安全。

两者如何取舍,全在开发者个人主观能动性了。

对于文章有任何问题,请直接联系笔者或者在评论区提出。

如果觉得这篇文章对有你帮助,希望点下一个小小的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果,谢谢。

相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
233 1
|
3月前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
179 2
|
20天前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
74 1
|
3月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
271 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
3月前
|
Java Android开发 Windows
使用keytool查看Android APK签名
本文介绍了如何使用Windows命令行工具和keytool查看APK的签名信息,并提供了使用AOSP环境中的signapk.jar工具对APK进行系统签名的方法。
336 0
使用keytool查看Android APK签名
|
3月前
|
数据可视化 Linux Android开发
Flutter相关痛点解决问题之研发链路中的环境配置和打包集成问题如何解决
Flutter相关痛点解决问题之研发链路中的环境配置和打包集成问题如何解决
|
3月前
|
Android开发 数据安全/隐私保护
Android Studio创建JKS签名遇到的坑
Android Studio创建JKS签名遇到的坑
133 1
|
3月前
|
Android开发 开发者
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
246 1
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
83 0