安卓:buildTypes应用程序ID后缀错误

9

我希望设置一个项目,构建两个不同的apk,可以安装在同一设备上 - 其中一个是生产apk,另一个是调试apk。为此,我在build.gradle中定义了以下内容:

buildTypes {
        release {

        }

        debug {
            applicationIdSuffix = ".debug"
        }

    }

但是当我尝试同步Gradle时,出现了错误:
Error:org.gradle.api.GradleException: No matching client found for package name 'mypkg.debug'

除了build.gradle文件中的buildTypes部分,我还需要做什么才能使这个工作正常运行?

哪个Gradle任务引发了这个错误? - jbarat
org.gradle.api.tasks.TaskExecutionException: 执行任务“:myApp:processDebugGoogleServices”失败。 - Jon
2个回答

19

每个构建版本都需要提供一个google-service.json文件,你需要一个debug版本的。

使用新的程序包名称(原始程序包名称+.debug)生成一个新的json文件。然后将其放入app/src/debug/中。


6
可以复制您现有的“google-service.json”文件,并将“package_name”修改为“com.foo.bar.debug”。https://developers.google.com/android/guides/google-services-plugin#adding_the_json_file - david_adler
感谢@david_adler。这也解释了如何处理不同的版本,这正是我所需要的。 - Fran Marzoa
1
尝试仅复制Google服务,我仍然遇到了这个错误。 - giorgio79
没有起作用。添加一个包名+.debug会破坏与Firebase等OAuth客户端的兼容性。 - giorgio79

0

@jbarat提供的答案是有效的。对于Firebase身份验证,@giorgio79您需要在Firebase控制台的调试应用程序设置中为项目添加SHA证书。 要获取SHA1和SHA256证书,请在终端中输入以下命令(命令因操作系统而异)

cd android
./gradlew signingReport

复制调试 SHA 证书并添加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接