AWS Device Farm:应用或测试签名错误如何排查?
检查Debug签名配置
升级到SDK34后,Build Tools默认的签名方案可能发生变化,Device Farm对v3签名的兼容性可能存在问题。尝试在build.gradle中显式调整签名配置:android { signingConfigs { debug { v1SigningEnabled true v2SigningEnabled true v3SigningEnabled false // 临时禁用v3签名测试 } } }同时对比两款应用的Debug密钥属性,执行
keytool -list -v -keystore ~/.android/debug.keystore查看密钥算法、长度等信息,确保出问题的应用密钥与正常应用一致。验证APK结构与元数据
用aapt dump badging your-app-debug.apk解析APK元数据,检查是否存在包名非法字符、组件声明异常等可能导致PARSING_FAILED的问题。同时对比两款应用的AndroidManifest.xml,排查是否有SDK34特有的配置差异(比如新权限、属性)。调整重签名策略
尝试上传未签名的APK(或移除现有Debug签名),让Device Farm完全负责应用签名,排查是否是本地Debug签名与Device Farm重签名流程冲突导致的问题。排查Build Tools版本差异
确认两款应用使用的Build Tools具体版本(比如34.0.0 vs 34.0.1),尝试将出问题的应用Build Tools版本切换为与正常应用一致,或者升级到最新稳定版,排除Build Tools本身的签名bug。查看控制台详细日志
不要仅依赖CLI输出,登录AWS控制台进入Device Farm对应的Run任务,查看单设备的详细执行日志,通常会显示重签名失败的具体原因(比如密钥格式不兼容、APK损坏等)。
内容的提问来源于stack exchange,提问作者Kostya Vasilyev

