@ECHO OFF
REM key的名称,key文件需要放在和bat文件同一目录下
SET KEYSTORE_NAME=debug.keystore
REM key的别名
SET KEYSTORE_ALIAS=androiddebugkey
REM key的密码
SET KEYSTORE_STOREPASS=android
SET KEYSTORE_KEYPASS=android
REM 临时生成的apk文件名称
SET TEMP_PREFIX=temp_
SET TEMP_RESIGNER=resigner_
FOR %%I IN (*.apk) DO (
ECHO Resigner %%I
REM *****BUILD A FOLDER WITH THE SAME NAME.
ECHO BUILD A FOLDER WITH THE SAME NAME.
REM 创建一个文件夹,创建之前如果存在需要先删除
RD /S /Q %%I_
MD %%I_
REM 复制需要重新签名的apk文件以及debugkey到新的文件夹中
COPY %%I %%I_
COPY %KEYSTORE_NAME% %%I_
CD %%I_
REM 解压缩APK文件
JAR -xvf %%I
REM 删除复制到新文件夹中的APK文件
DEL %%I
REM 删除MANIFEST
RD /S /Q META-INF
ECHO RECOMPRESS THE APK
REM 重新压缩成apk文件
JAR -cvf %TEMP_PREFIX%%%I -C ./ .
ECHO JARSIGNER %%I
REM 对jar包重新签名,这里签名放在下面的删除文件之前,如果放在删除文件后面需要加入不要把debug.key删除掉
JARSIGNER -VERBOSE -KEYSTORE %KEYSTORE_NAME% -STOREPASS %KEYSTORE_STOREPASS% %TEMP_PREFIX%%%I %KEYSTORE_ALIAS% -KEYPASS %KEYSTORE_KEYPASS%
REM 删除解压出来的文件夹
REM *****CLEAR FOLDER
FOR /D %%J IN (*) DO (
ECHO DELETE FOLDER %%J
RD /S /Q %%J
)
REM *删除解压出来的文件,签名的APK文件需要保留
FOR %%J IN (*) DO (
IF %%J NEQ %TEMP_PREFIX%%%I (
ECHO DELETE FILE %%J
DEL %%J
)
)
ECHO ZIPALIGN %%I
REM 使用android的zipalign工具对apk文件进行优化
ZIPALIGN -v 4 %TEMP_PREFIX%%%I %TEMP_RESIGNER%%%I
REM 检查apk文件是否被优化
ZIPALIGN -c -v 4 %TEMP_RESIGNER%%%I
ECHO DELETE TEMP APK
REM 删除优化前的APK文件,保留优化后的APK
DEL %TEMP_PREFIX%%%I
CD ..
)
PAUSE
@ECHO ON