【发布时间】:2018-03-08 01:07:29
【问题描述】:
我正在使用 Travis 和 Fastlane 构建我的应用并将其发布到 Google Play 商店,但是当同时处理多种风格时,Supply 找不到上传它们的 APK。
这是我的快速文件:
fastlane_version "2.59.0"
default_platform :android
platform :android do
before_all do
gradle(task: "clean")
end
desc "Submit Whitelabels to Play Store"
lane :whitelabels_playstore do
gradle(
task: 'releaseWhitelabel'
)
lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS].each do | apk |
puts "Uploading APK to Play Store: " + apk
begin
supply(
skip_upload_images: true,
skip_upload_screenshots: true,
validate_only: true,
apk: apk
)
rescue => ex
puts ex
end
end
end
end
任务发布白标代码为:
def releaseTask = tasks.create(name: 'releaseWhitelabel') {
group 'Whitelabel'
description "Assembles and release all Whitelabels"
}
android.applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
variant.productFlavors.each { flavor ->
def flavorName = flavor.name.capitalize()
def releaseFlavorTaskName = "releaseWhitelabel${flavorName}"
def releaseFlavorTask
flavorsMap.each { name, jsonItem ->
if (flavorName.toUpperCase().startsWith(name.toUpperCase())) {
releaseFlavorTask = tasks.create(name: releaseFlavorTaskName) {
group 'Whitelabel'
description "Assembles and release build for flavor $flavorName"
}
releaseFlavorTask.dependsOn variant.assemble
releaseTask.dependsOn releaseFlavorTask
}
}
}
}
}
当我执行车道时,该任务在本地运行时完美运行,我收到一条错误消息,指出lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] 不能为空。
当我运行以下 gradle 配置时,我可以正常工作,但只能以这种方式发布一种风格,并且我的风格是动态生成的。
gradle(
task: 'assemble',
flavor: 'Dell',
build_type: 'Release'
)
如何使用构建的每个 apk 的路径正确更新 lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS]?
【问题讨论】:
标签: android android-gradle-plugin continuous-integration android-productflavors fastlane