使用ANT自动发布Android APK

当发布APK是一种负担时,必需要进入自动化模式了。

本文使用ANT来编译,并签名,对齐,发布。

1 下载sun-java6-jdk

参考这里来下载。

export JAVA_HOME=/usr/lib/jvm/java-6-sun

 

2 为已存在的项目生成ant的build.xml

运行命令行到当前项目根目录下,运行如下命令:

android update project --path .

可以使用ant命令查看相关信息和帮助,如下:

$ ant 
$ ant debug

需要Proguard的同学把AndroidManifest.xml中的debuggable关掉(查资料时发现中外差距太大,老外一句话解决的事情,中文版要长篇大论还搞不定)。

3 出货!出货!脚本:

#!/bin/bash

APP_NAME="StandardLauncher"
CD="."
RELEASE_APP=$CD/bin/$APP_NAME-release-signed.apk
RELEASE_DIR=~/released_apks/standardLauncher
PWD="xxx"

#ant release

echo "Sign apk..."
cp $CD/bin/$APP_NAME-release-unsigned.apk $RELEASE_APP
"$JAVA_BIN/jarsigner" -keystore "my-release-key.keystore" -storepass $PWD -keypass $PWD $RELEASE_APP "my-release-key"

echo "Verigy apk..."
"$JAVA_BIN/jarsigner" -verify $RELEASE_APP

versionName=$(aapt d badging $RELEASE_APP |grep versionName= | cut -d "=" -f4 | cut -d "'" -f2)
echo "Get versionName = $versionName"

echo "zipalign apk..."
zipalign -f 4 $RELEASE_APP "$RELEASE_APP"_aligned

cp "$RELEASE_APP"_aligned $RELEASE_DIR/"$APP_NAME"_V"$versionName"_build_$(date +%Y%m%d).apk

echo "Clean up..."
rm -v $RELEASE_APP
rm -v "$RELEASE_APP"_aligned

cd $RELEASE_DIR
$RELEASE_DIR/cleanup.sh

PS 中间获取version name的命令需要改进。

你可能感兴趣的:(android,ant,bash,发布)