当发布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的命令需要改进。