本文介绍使用android studio,使用gradle结合脚本来签名打包(不包含多渠道,以后介绍)。
1、在安卓工程app平行目录下,新建一个文件夹(sh),用于存放打包脚本(脚本:是指linux命令)
2、在sh文件夹下新建一个buildApp.sh的文件,用于修改签名配置,版本号等
3、在app/build.gradle中,增加签名配置。例如:
signingConfigs {
myConfig {
storeFile file("../sh/xxxx.jks")
storePassword "xxxx"
keyAlias "xxxx"
keyPassword "xxxx"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.myConfig
}
}
注意:红色名称部分要一致。
3、编写buildApp.sh文件
#!/bin/sh
echo ---------enter buildApp------------
#参数
urlKey=$1
#列举几个文件目录
manifest=././../app/src/main/AndroidManifest.xml
buildFilePath=././../app/build.gradle
buildTime=$(date '+%Y%m%d%H%M')
./changeKey.sh
GRADLE_OPTS="-Xmx1024m -Xms256m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+HeapDumpOnOutOfMemoryError"
cd ..
gradle clean assembleRelease --stacktrace --info
cd ././../app/build/outputs/apk
#删除未签名的apk
rm *unaligned.apk
#重命名签名apk
oldName=$(ls *release.apk)
cutName=${oldName%-*}
echo $oldName
echo $cutName
env='生产'
newName="${cutName}-${env}-${buildTime}.apk"
withoutBuildTimeName="${cutName}-${env}.apk"
echo ${newName}
mv *release.apk ${newName}
4、编写changeKey.sh 用于更换app/build.gradle中的签名配置
#!/bin/bash echo ---------enter changeKey--------- buildFile=././../app/build.gradle lineNumber=$(grep -n "myConfig {" ${buildFile} | cut -d ":" -f 1) sed -i "" "$((lineNumber+1)),$((lineNumber+4))d" ${buildFile} sed -i '' ''${lineNumber}'a\ \ storeFile file("../sh/xxxx.jks") ' ${buildFile} let lineNumber++ sed -i '' ''${lineNumber}'a\ \ storePassword "xxxx" ' ${buildFile} let lineNumber++ sed -i '' ''${lineNumber}'a\ \ keyAlias "xxxx" ' ${buildFile} let lineNumber++ sed -i '' ''${lineNumber}'a\ \ keyPassword "xxxx" ' ${buildFile}
完成!!!!!!!!!!!!
最后,使用Terminal来打包。
进入到sh目录下,首次打包时执行:chmod -x buildApp.sh
以后便可以使用 ./buildApp.sh 打包了。