#!/bin/bash
if [ "$#" -ge "1" ]
then
apkName=$1
else
echo "no argument"
exit
fi
echo "生成文件名: $apkName"
baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
echo "脚本所在路径:$baseDirForScriptSelf"
apkPath="$baseDirForScriptSelf/aizheke_$apkName.apk"
echo "生成文件路径: $apkPath"
#如果已经存在则删除
rm -f $apkPath
#从aizheke.apk复制为目标文件
cp $baseDirForScriptSelf/aizheke.apk $baseDirForScriptSelf/tmp.apk
keystore="$baseDirForScriptSelf/keys/aizhke.keystore"
keystoreAlias="azkkey"
password="******"
cd $baseDirForScriptSelf
zip -gv tmp.apk assets/channel.json
jarsigner -verbose -sigfile CERT -keystore $keystore -keypass $password -storepass $password tmp.apk $keystoreAlias
#jarsigner -verify -certs tmp.apk
#zipalign -cv 4 tmp.apk
zipalign -fv 4 tmp.apk $apkPath #f override
#zipalign -cv 4 $apkPath
rm -f tmp.apk
note: eclipse 生成的apk 它的sigfile不是默认根据keyalias生成的,而是生成名为CERT的sigfile,所以对eclipse生成的apk进行改动后,进行jarsigner的时候需要指定-sigfile CERT,否则会报INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES,也就是一个apk包含2个签名导致的
posted on 2012-07-27 11:12
汪杰 阅读(329)
评论(0) 编辑 收藏 引用 所属分类:
Java