Изменение пути к файлу apk релиза - PullRequest
0 голосов
/ 24 февраля 2020

Android релиз apk создан в

...\Foo\Foo\build\outputs\apk\release\foo.apk

как я могу изменить этот путь?

Я хочу сохранить свой apk для некоторых проектов по указанному пути c.

Возможно ли это?

1 Ответ

0 голосов
/ 24 февраля 2020

Да, это возможно. Вы можете указать, где будет создаваться ваш apk. На уровне вашего проекта build.gradle добавьте нужный вам путь внутри всех проектов:

allprojects {
    buildDir = "/D:/Foo/Bar/Android/Build/"
    ...
}

Это создаст ваш apk вместе с сгенерированными промежуточными файлами, temp et * 1028. *. папки внутри папки Build по указанному пути. Если вы хотите sh создать его в папке с именем проекта и т. Д. c, используйте:

buildDir = "/D:/Foo/Bar/Android/Build/${rootProject.name}/${project.name}"

. Для получения дополнительной информации вы можете проверить этот ответ .

ОБНОВЛЕНИЕ: Я не смог найти способ напрямую сгенерировать релизный apk в какую-то указанную c папку, но если все нормально, чтобы сохранить копию это apk в другую папку, вы можете достичь этого с помощью Gradle's Copy task. На своем уровне приложения вы можете попробовать приведенный ниже код, который я тестировал.

afterEvaluate {
    // to execute the copy task every time a release build is generated
    packageRelease.finalizedBy(copyRelease)
}

task copyRelease(type: Copy) {
    // set your paths here
    def sourcePath = file ("/release/app-release.apk").absolutePath
    def destinationPath = "/D:/Foo/Bar/Android/Build/"
    // set a name for your build if you are going to rename it
    def releaseName = "${rootProject.name}.apk"

    from "$sourcePath"
    into "$destinationPath"
    //use the below line if you wish to rename the apk
    rename { releaseName }
}

Даже при том, что он предложил добавить это внутри блока android {...}, простое добавление его снаружи кажется работающим. Таким образом, даже если apk не генерируется напрямую в вашу папку, задача все же копирует его, чтобы сохранить его в папке по вашему выбору.

Если вам это нужно для отладочных сборок, используйте вместо этого packageDebug и измените ваши пути соответственно.

Надеюсь, это то, что вы искали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...