Fastlane supply推广旧版本失败:提示“internal渠道无发布版本”
问题:Fastlane推广旧版本Internal构建包到Production时报错"Track 'internal' does not have any releases"
我尝试用Fastlane将Android应用的Internal测试版推广至Production渠道,但推广Internal渠道中版本号低于最新版本的构建包时,会报错Track 'internal' does not have any releases,推广最新版本则可正常执行。
我的Google Play Store Internal渠道中最新版本为version name 1.05.00、version code 140,以下是我的Appfile和Fastfile配置:
# Appfile json_key_file "path/to/json/key/file" package_name "PACKAGE_NAME"
# Fastfile default_platform(:android) lane :promote_release do sh("fastlane supply init --track internal") supply( track: "internal", track_promote_to: "production", version_name: "1.05.00", version_code: "138" ) end
请问Fastlane是否仅允许推广最新版本?
解答
Fastlane本身不限制只能推广最新版本,问题根源在于Google Play的渠道机制和你的Fastlane配置细节:
- Google Play的每个渠道(如Internal)中,旧版本被新版本覆盖后会被移入「存档版本」,而Fastlane的
supply工具默认只会读取该渠道的活跃版本(即当前显示的最新版本),不会自动读取存档里的旧版本。当你指定version_code 138时,supply在Internal的活跃版本中找不到对应条目,就会抛出"Track 'internal' does not have any releases"错误。 - 你Fastfile中每次执行
sh("fastlane supply init --track internal")会重新初始化supply配置,这可能会覆盖本地存储的版本信息,进一步导致工具无法定位旧版本,建议仅在首次配置时执行该命令,日常推广时移除这一步。
解决办法
- 手动恢复旧版本到活跃状态:先在Google Play Console中将version_code 138从Internal渠道的存档版本恢复为活跃版本,再重新运行Fastlane推广命令。
- 直接通过控制台推广:如果只是偶尔推广旧版本,可直接在Google Play Console中找到存档的version_code 138,手动将其推广至Production渠道,之后用Fastlane同步配置即可。
内容的提问来源于stack exchange,提问作者Sumedh Shakya
相关产品推荐
相关产品推荐

