使用Fastlane Gradle时如何指定输出.apk文件路径?

时间:2018-11-19 14:29:14

标签: fastlane

我的应用程序具有不同的产品风格,并且使用fastlane构建它们。这是我的快速文件:

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/outputs/apk/flavorname/release/app-flavorname-release.apk)

如何将apk文件自动移动到我的桌面上?

3 个答案:

答案 0 :(得分:3)

gradle似乎没有指定输出的选项。 我建议您在完成gradle之后将命令行.apk移至桌面或您想要的任何位置。

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

答案 1 :(得分:1)

我在 gradle 通话下添加了以下内容:

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

干杯。

答案 2 :(得分:0)

您也可以使用快速通道操作copy_artifacts代替mv

lane :release do
  gradle(...)

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

Wilcard */build/outputs/apk/**/*.apk可以与任何构建类型,风味应用模块名称一起使用。

或者如上面@janpio所述,您可以使用变量GRADLE_APK_OUTPUT_PATH

lane :release do
  gradle(...)

  copy_artifacts(
    artifacts: [lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]],
    target_path: '~/Desktop/'
  )
end