私の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 ですが、もう 1 つはそうではありません)
作成したいのは、次のファイルです。
MyApp-release-1.2.3-e1ad453-unaligned.apk
MyApp-release-1.2.3-e1ad453.apk
whereMyApp-release-1.2.3-e1ad453-unaligned.apk
は zip で整列されておらず、zip で整列MyApp-release-1.2.3-e1ad453.apk
されています。これは、gradle がデフォルトで動作する方法のように思われるためです (つまり、整列されていないファイルの名前に追加するのではなく、整列されていないファイルの名前に追加します) 。 )。
基本的に、ファイルが実際に作成される前に名前変更機能が動作し、必要と思われる出力ファイルを指定するだけです。これで問題ありませんが、zipAlign を実行する前にMyApp-release-unsigned.apk
中間ファイルを指定することはできますか?