我创建了一个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中的bug吗?如果我根本没有在build.gradle
中设置versionCode
,它只会添加没有versionCode
,fastlane供应将失败。
有人能帮我吗?
3条答案
按热度按时间7z5jn7bk1#
我也遇到了同样的问题。你必须在
build.gradle
中使用它们,就像这样:versionCode project.hasProperty('versionCode') ? project.property('versionCode') as int : 1 versionName project.hasProperty('versionName') ? project.property('versionName') : "No versionName"
我在original pull request中发现了这条注解。看起来gradle没有直接公开这些内容,我们需要手动分配它们(根据这条注解)。
s8vozzvw2#
为了确认此行为,您似乎必须在build.gradle中定义versionName和/或versionCode,如@sebleclerc所述。
8yparm6h3#
老问题,但今天遇到了同样的问题,并发现新的Gradle版本导致了这个问题。
版本
7.3.0
和更高版本存在此问题。您可以使用以下版本修复此问题,我在项目的build. gradle中使用了classpath 'com.android.tools.build:gradle:7.1.3'
。之后,您可以用途:
希望这对某人有帮助!