zoukankan      html  css  js  c++  java
  • Android App发布遇到的问题总结【转】

    感谢大佬:https://www.cnblogs.com/jeffen/p/6824722.html

     

    问题描述(v1和v2)

    Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDK
    V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。
    V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。


    解决方案一

    v1和v2的签名使用
    1)只勾选v1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式
    2)只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证
    3)同时勾选V1和V2则所有机型都没问题

    解决方案二
    在app的build.gradle的android标签下加入如下

    signingConfigs {  
        debug {  
            v1SigningEnabled true  
            v2SigningEnabled true  
        }  
        release {  
            v1SigningEnabled true  
            v2SigningEnabled true  
        }  
    }  
    


    官方解释:
    态度
    • 个人建议:

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

    如果您使用 APK Signature Scheme v2 签署您的应用,并对应用进行了进一步更改,则应用的签名将无效。出于这个原因,请在使用 APK Signature Scheme v2 签署您的应用之前、而非之后使用 zipalign 等工具。

    另外补充大佬文章:

    https://blog.csdn.net/mackkill/article/details/64922397
    https://www.jianshu.com/p/79c16c2101af
    https://blog.csdn.net/yangxi_pekin/article/details/77990889

  • 相关阅读:
    编译使用luasocket
    使用openssl的一些问题
    c++调用lua注册的带参数的回调
    合服
    windows防火墙命令
    mac os .xip格式解压
    Get GPU Data Method
    Unity编译Mono
    Unity Mono运行机制分析及内存优化
    unity5 AssetBundleBuild用法
  • 原文地址:https://www.cnblogs.com/tfxz/p/12621676.html
Copyright © 2011-2022 走看看