トラビスとファストレーンを使用してGoogle Playストアにアプリを構築して公開していますが、同時に複数のフレーバーを処理するとき、それらをアップロードする。複数のフレーバーを作成し、FastlaneからGoogle PlayにデプロイするときにApkパスがエクスポートされない
これは私のfastfileです:
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
タスクreleaseWhitelabelコードは次のとおりです。
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 configを実行すると、正しく動作しますが、この方法で1つのフレーバしか公開できず、フレーバが動的に生成されます。
gradle(
task: 'assemble',
flavor: 'Dell',
build_type: 'Release'
)
lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS]
を各APKのパスで正しく更新するにはどうすればよいですか?