Shell批量签名Apk

作者: Andy周 | 来源:发表于2016-07-26 21:05 被阅读157次

    在产品发布的时候,Android和IOS有一定的不同
    IOS就只有App Store这一个渠道
    而相反的Android可能有成百上千个不同的渠道(百度手机助手,豌豆荚,应用宝...)
    当然我们可以在gradle脚本下通过设置productflavors
    来打不同渠道的包,也非常方便
    但是我们有时候除了对包进行混淆外还要进行加固
    比如我们采用爱加密加固,如果本地同时打了几十个包,一一上传加固比较耗时耗力
    所以通常打一个包
    在加固之后分成多个渠道,然后一一下载
    不过下载之后需要逐个签名,比较麻烦
    今天分享一下笔者使用的脚本签名
    笔者工作环境Ubutnu 14.04
    使用Shell编写的简答的签名脚本,可以批量进行签名

    
    #别名
    aliase='temp'
    #库密码
    storepass='hao123'
    #签名密码
    keypass='hao456'
    #秘钥
    keystore='temp.jks'
    
    output="output"
    
    if [ ! -d "$output" ];then
       mkdir $output
    fi
    
    #签名
    function sign(){
         jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore $keystore -storepass $storepass -keypass $keypass -signedjar $tempname $filename $aliase 
    }
    
    function zipalign(){
         ./jre/bin/zipalign -f -v 4 $tempname $outputname
    }
    
    #$output"/"$(basename $filename .apk)"_signed.apk"
    for filename in *
    do 
       if [ "${filename##*.}" = "apk" ]; then
           outputname=$output"/"${filename//_unsign/_signed}
           echo "签名: "$filename
           tempname=$(basename $filename .apk)"_temp.apk"
           sign
           zipalign
           rm -rf $tempname
       fi
    done
    
    

    脚本地址

    相关文章

      网友评论

        本文标题:Shell批量签名Apk

        本文链接:https://www.haomeiwen.com/subject/fptojttx.html