Fastlane gradle命令 - 未传递属性

时间:2018-04-24 11:06:18

标签: android gradle fastlane

我创建了一个fastlane任务,用于上传到Play商店,如下所示:

  lane :DEPLOY_BETA do

  gradle(task: "clean")

  version_codes = google_play_track_version_codes(
      package_name: "",
      json_key: "play_store_service_account_key.json",
  )

  gradle(
    task: "assemble",
    flavor: "World",
    build_type: "Release",
    properties: { "versionCode" => 100 }
  )

  apk_path = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
  supply(
    apk: apk_path,
    json_key: "play_store_service_account_key.json",
    package_name: "",
    track: "beta",
    skip_upload_metadata: true,
    validate_only: true,
    skip_upload_images: true,
    skip_upload_screenshots: true
    )

  end

问题是属性versionCode没有覆盖在flavor中指定的versionCode(也不是defaultConfig)。这是fastlane中的一个错误吗?如果我根本不在versionCode设置build.gradle,则只添加versionCode,而快速通道供应将失败。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

我有同样的问题。而且您必须在build.gradle中使用它们,就像这样:

versionCode project.hasProperty('versionCode') ? project.property('versionCode') as int : 1 versionName project.hasProperty('versionName') ? project.property('versionName') : "No versionName"

我在this comment内部发现了original pull request。似乎gradle不会直接公开这些,我们需要手动分配它们(按照this comment)。