无google-services.json时Jenkins构建Crashlytics映射上传任务失败如何解决
问题解决配置方案
报错根因
uploadCrashlyticsMappingFileUat任务执行时,默认会校验Google Services插件生成的资源文件,你未引入google-services.json也未依赖google-services插件,触发校验失败导致构建中断。
不需要引入google-services.json,只要补充以下Gradle配置即可解决:
配置步骤
- 第一步:在对应构建类型中添加Crashlytics配置,跳过Google Services校验
在app模块的build.gradle的uat构建配置块中补充如下内容:
uat { // 保留你原有所有配置不变,新增以下配置 firebaseCrashlytics { // 需要上传混淆mapping到Crashlytics就设为true,不需要就设为false mappingFileUploadEnabled true // 核心配置:跳过Google Services资源校验 skipGoogleServicesValidation true } }
- 第二步:手动给mapping上传任务配置Firebase项目信息
因为没有google-services.json提供项目参数,需要手动将你已有的Firebase配置参数传给上传任务,在app模块的build.gradle末尾添加如下配置:
afterEvaluate { // 配置uat变体的mapping上传任务参数,参数值直接复用你原先定义的gradle变量即可 tasks.named("uploadCrashlyticsMappingFileUat").configure { task -> task.projectId = PROJECT_ID task.applicationId = FCM_APPLICATION_ID task.apiKey = API_KEY } }
- 可选:无需上传mapping可直接禁用任务
如果你不需要将混淆mapping文件上传到Crashlytics,直接禁用对应任务即可彻底避免该报错:
afterEvaluate { tasks.named("uploadCrashlyticsMappingFileUat").configure { it.enabled = false } // 其他构建变体如有相同报错,可按相同格式添加对应任务的禁用配置 }
以上配置完成后重新执行构建即可正常生成APK,原有运行时初始化Firebase的代码无需修改。
内容的提问来源于stack exchange,提问作者Sandip Armal Patil
相关产品推荐
相关产品推荐

