You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppCenter自定义Flavor构建失败,如何修改Gradle任务指定变体?

解决AppCenter构建错误变体导致Google Services包名不匹配问题

问题原因

报错No matching client found for package name '{package}'是因为当前构建的{clientName}DevRelease变体对应的包名,在你的google-services.json文件中没有匹配的客户端配置。你需要指定正确的Gradle变体来构建,确保该变体的包名与google-services.json中的配置一致。

解决步骤

1. 确认正确的变体名称

在本地项目根目录执行以下命令,查看所有可用的Gradle构建变体:

  • Mac/Linux:./gradlew tasks
  • Windows:gradlew tasks

在输出的Build tasks区域,找到以assemble开头的任务,比如assembleMainProdRelease、assembleStagingRelease等,这些就是你可以指定的变体命令。

2. 修改AppCenter的YAML配置

将默认配置中的tasks字段替换为指定正确变体的命令:

- task: Gradle@1
    displayName: Gradle Task
    inputs:
      tasks: 'clean :app:assemble{YourCorrectVariantName}'  # 替换成你确认的正确变体名称
      options: >-
        -DAPPCENTER_KEYSTORE_PASSWORD="$(keystorePassword)"
        -DMOBILECENTER_KEYSTORE_PASSWORD="$(keystorePassword)"
        -DAPPCENTER_KEY_ALIAS="$(keyAlias)"
        -DMOBILECENTER_KEY_ALIAS="$(keyAlias)"
        -DAPPCENTER_KEY_PASSWORD="$(keyPassword)"
        -DMOBILECENTER_KEY_PASSWORD="$(keyPassword)"
      jdkArchitecture: x86
      publishJUnitResults: false
      sqAnalysisBreakBuildIfQualityGateFailed: false

示例

如果正确的变体是MainProdRelease,修改后的tasks字段应为:

tasks: 'clean :app:assembleMainProdRelease'

如果你的应用没有产品风味,仅使用默认构建类型,确保google-services.json中的包名与Release构建类型的包名一致,直接保留assembleRelease即可,但需要检查本地构建是否正常,排除风味自动注入的问题。

内容的提问来源于stack exchange,提问作者R.Sanchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:45:39