【发布时间】:2014-11-17 22:14:43
【问题描述】:
在我的build.gradle 文件中,我有以下内容:
applicationVariants.all { variant ->
def oldFile;
if (variant.zipAlign) {
oldFile = variant.outputFile;
} else {
oldFile = variant.packageApplication.outputFile;
}
def newFile;
def newFileReplacement = "";
if (getVersionName().indexOf(gitSha()) != -1) {
newFileReplacement = newFileReplacement + "-" + getVersionName() + ".apk";
} else {
newFileReplacement = newFileReplacement + "-" + getVersionName() + "-" + gitSha() + ".apk"
}
newFile = oldFile.name.replace(".apk", newFileReplacement);
if (variant.zipAlign) {
variant.zipAlign.outputFile = new File(oldFile.parent, newFile);
} else {
variant.packageApplication.outputFile = new File(oldFile.parent, newFile);
}
}
当我运行以下命令时:./gradlew clean assembleRelease,它会为我创建以下 .apk 文件:
MyApp-release-1.2.3-e1ad453.apk
MyApp-release-unaligned.apk
(MyApp-release-1.2.3-e1ad453.apk 是 zipaligned,但另一个不是)
我想要它创建的是以下文件:
MyApp-release-1.2.3-e1ad453-unaligned.apk
MyApp-release-1.2.3-e1ad453.apk
MyApp-release-1.2.3-e1ad453-unaligned.apk 不是 zip 对齐的,MyApp-release-1.2.3-e1ad453.apk 是 zip 对齐的,因为这似乎是 gradle 默认运行的方式(即,它添加到未对齐的文件的名称中,而不是添加到 是 的文件的名称)。
基本上,似乎正在发生的事情是重命名功能在实际创建文件之前运行,并且只指定我想要的输出文件。这很好,但是否也可以指定我希望中间文件 MyApp-release-unsigned.apk 在 在 zipAlign 运行之前是什么?
【问题讨论】:
标签: android build gradle zipalign