Documents

Android 签名

作者:康林(kl222@126.com)



命令行签名

签名工具是jdk提供。所以在执行下列命令前需要先安装jdk。并设置:

export PATH=$JAVA_HOME/bin:$PATH
  1. 生成密钥库(key store)文件

     l@l-Lenovo:/home/RabbitCommon$ keytool -genkey -alias RabbitCommon -keyalg RSA -validity 36500 -keystore RabbitCommon.keystore
     输入密钥库口令:  
     输入密钥库口令:  
     再次输入新口令: 
     您的名字与姓氏是什么?
       [Unknown]:  KangLin
     您的组织单位名称是什么?
       [Unknown]:  Kang Lin Studio
     您的组织名称是什么?
       [Unknown]:  Kang Lin Studio
     您所在的城市或区域名称是什么?
       [Unknown]:  XinHua
     您所在的省/市/自治区名称是什么?
       [Unknown]:  HuNan
     该单位的双字母国家/地区代码是什么?
       [Unknown]:  CN
     CN=KangLin, OU=Kang Lin Studio, O=Kang Lin Studio, L=XinHua, ST=HuNam, C=CN是否正确?
     [否]:  y
    

    创建一个证书文件,名为 RabbitCommon.keystore,别名也为 RabbitCommon.keystore ,加密算法采用 RSA,有效期为 100年。
    注:

    • genkey 生成文件
    • alias 别名
    • keyalg 加密算法
    • validity 有效期
    • keystore 文件名
  2. 查看密钥库(key store)文件信息

     keytool -list -v -keystore
    
  3. 编译发布(Release)模式下您的应用程序,以获得一个无符号的APK

  4. 签名

     jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore RabbitCommon.keystore my_application.apk RabbitCommon
    
  5. 验证你的apk签名:

     jarsigner -verify -verbose -certs my_application.apk
    
  6. 使用zipalign来对齐apk包:

     zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
    

    zipalign 确保所有的未压缩数据与特定字节对齐相对于文件,从而降低apk文件的大小。

  7. 参考

Android studio 签名

QtCreator 签名

建立

设置

CI 签名

CI是自动化构建系统,需要密钥库(key store)文件和相关密码,如果用明码,没安全性可言。所以需要对密钥库(key store)文件和相关密码加密。

   打开设置

  + 然后添加环境变量。**注意**: DISPLAY VALUE IN BUILD LOG 要设置为关闭   - 通过travis客户端

       travis encrypt KEY=keypassword --add
       travis encrypt IV=keyiv --add