1

私の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中間ファイルを指定することはできますか?

4

1 に答える 1