1
Totato5749 OP emmm。。。找到原因了。。
Conclusion: 因为 APK 使用了 Signature Scheme V2 签名的缘故。 另外,也不是说使用了 v2 签名的 apk 真的无法解压了,在 macOS 上使用自带 ZIP 工具解压直接报错。但是用第三方压缩工具还是能打开的,只是提示有错误,需要手动选择忽略错误并继续。也能看到图片素材长啥样。这里我用了 BetterZIP 得出的结论。Windows 上我猜第三方的比如 WinRAR 应该也能打开。 此外,V1 签名( Jar Signature )和未签名应用本身就是 zip 包,可以直接解压。 |
2
Totato5749 OP 背景:Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。在默认情况下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。
ref: https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2 |
3
Totato5749 OP 从 Android Studio 2.2 和 Android Plugin for Gradle 2.2 开始默认就使用 V2 签名了。但是也可以在 gradle 中自定义是否使用 v2 签名。
可以在 app 级别的 build.gradle 中添加来自定义是否使用 v1 及 v2 签名 ``` signingConfigs { debug { v1SigningEnabled true v2SigningEnabled true } release { v1SigningEnabled true v2SigningEnabled true } } ``` 因为每个签名有两种选择,也就是一共会产生四种结果: v1 false & v2 false: 打包出来的 apk 就是未签名的应用,无法直接安装。 v1 true & v2 false: apk 仅使用 v1 签名,兼容全部版本平台。 v1 false & v2 true: apk 仅使用 v2 签名,应用仅可在 Android 版本大于等于 7.0 以上安装,在 7.0 以下无法安装。 v1 true & v2 true: apk 同时使用 v1 v2 签名,兼容全部版本平台。(推荐) |
4
zhouquanbest 2018-01-12 08:03:08 +08:00 via Android
v2 改名为 zip 依旧随便解压 没有本质区别
|
5
Totato5749 OP @zhouquanbest 会报错
|
6
Vvfan 2018-01-12 10:54:43 +08:00
|