Как указать путь к файлу вывода .apk при использовании fastlane gradle? - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть различные варианты продуктов моего приложения, и я создаю их с помощью fastlane.Это мой fastfile:

default_platform(:android)

platform :android do

  desc "Release apk with different urls"
  lane :release do
    gradle(
      task: "assemble",
      build_type: "release",
      flavor: "flavorname",
      print_command: true,
      properties: {
        "android.injected.signing.store.file" => "Key.jks",
        "android.injected.signing.store.password" => "KeyPass",
        "android.injected.signing.key.alias" => "KeyAlias",
        "android.injected.signing.key.password" => "KeyPass"
      }
    )

  end

end

Проблема в том, что файлы apk создаются в каталоге проекта.

(имя проекта / app / build / output / apk / flavorname / release / app-flavorname-release.apk)

Как автоматически перенести эти apk файлы на рабочий стол?

Ответы [ 3 ]

0 голосов
/ 14 января 2019

Я использую следующее при моем вызове gradle :

lane :release do        
    gradle(...)

    APK_LOCATION = "#{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}"        
    sh("mv #{APK_LOCATION} ~/Desktop/")
end

Преимущество использования переменной заключается в том, что вы сможете использовать один и тот же код для выпуска и отладки apk.

Приветствия.

0 голосов
/ 18 июня 2019

Вы также можете использовать действие fastlane copy_artifacts вместо mv

lane :release do
  gradle(...)

  copy_artifacts(
    artifacts: ['*/build/outputs/apk/**/*.apk'],
    target_path: '~/Desktop/'
  )
end

Wilcard */build/outputs/apk/**/*.apk будет работать с любыми типами сборки, именем модуля приложения flavors.

Или, как сказано выше @janpio, вы можете использовать переменную GRADLE_APK_OUTPUT_PATH:

lane :release do
  gradle(...)

  copy_artifacts(
    artifacts: [lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]],
    target_path: '~/Desktop/'
  )
end
0 голосов
/ 19 ноября 2018

Не похоже, что gradle имеет возможность указать вывод. Я предлагаю вам добавить командную строку сразу после завершения gradle для перемещения этого .apk на рабочий стол или в другое место.

sh "mv ../app/build/outputs/apk/release/app-release.apk path/to/Desktop"
...