周末不想在家 2024-06-05 16:34 采纳率: 6.5%
浏览 9

android 不同包名下如何配置 google-services.json

Android 设置了不同的包名

buildTypes {
        release {
        }
        debug {
         applicationIdSuffix ".debug"
        }
    }

如何设置不同的google-services.json

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-05 16:34
    关注

    引自免费微信小程序:皆我百晓生

    在Android项目中,如果你有多个应用模块(即不同的包名),每个模块可能都需要Google Play Services的支持,比如Firebase服务。在这种情况下,你需要为每个模块创建并配置一个独立的google-services.json文件。

    首先,确保你在Firebase控制台上为每一个应用模块都创建了一个项目,并且获取到了对应的google-services.json文件。对于每个应用模块,按照以下步骤进行配置:

    1. 将每个模块的google-services.json文件放在对应模块的根目录下。例如,如果你有两个模块:app和module_debug,那么你应该这样放置文件:

      • app/google-services.json
      • module_debug/google-services.json
    2. module_debugbuild.gradle文件中,除了现有的配置外,还需要添加以下内容来指定特定的google-services.json文件:

    apply plugin: 'com.google.gms.google-services'
    
    android {
        // ...
        buildTypes {
            debug {
                applicationIdSuffix ".debug"
                manifestPlaceholders = [manifestPackageName: "${applicationId}"]
            }
        }
    
        packagingOptions {
            pickFirst 'services.json'
        }
    }
    

    这里我们使用了manifestPlaceholders来动态设置应用的主包名,然后通过packagingOptions中的pickFirst规则,告诉Gradle在构建时优先选择哪个services.json文件。因为module_debuggoogle-services.json位于其根目录,所以它会覆盖全局的google-services.json

    1. 如果你使用的是Kotlin,确保在build.gradle.kts文件中也执行类似的操作。在android块内添加以下内容:
    android {
        // ...
        buildTypes {
            debug {
                applicationIdSuffix = ".debug"
                manifestPlaceholders = mapOf("manifestPackageName" to applicationId)
            }
        }
    
        packagingOptions {
            pickFirst("services.json")
        }
    }
    

    完成以上步骤后,每个模块都会根据其特定的google-services.json文件来配置Google Play Services相关功能。注意,这仅适用于不同包名下的模块,如果是在同一个模块内部切换包名,那么可能需要额外的配置来支持热更新等场景。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月5日

悬赏问题

  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)