Google Play App Integrity API完整应用正常,即时应用验证失败求助
Android Instant App 适配 Google Play App Integrity API 问题解决
问题核心
本地运行完整应用时App Integrity验证通过,但即时应用验证失败,后端返回403错误(提示"Validation failed app"),说明即时应用生成的完整性令牌未通过后端校验。
必须执行的额外适配步骤
- 同步签名配置:即时应用需使用与完整应用完全一致的签名密钥,同时在Google Play Console中为即时应用模块配置正确的签名证书指纹。
- 传入Cloud Project Number:日志显示
cloudProjectNumber=null,调用requestIntegrityToken时必须传入关联Google Cloud项目的正确编号,且该项目已启用App Integrity API。 - 统一包名校验逻辑:后端验证时需兼容完整应用和即时应用的包名规则,确保两者的包名均在允许列表内。
- 切换测试环境:本地运行的即时应用无法获取完整的验证链,建议将即时应用上传至Google Play内部测试渠道进行验证,而非仅依赖本地调试。
- 后端逻辑适配:解析完整性令牌时,需处理即时应用的特定字段(如
appIntegrity中的模块信息),避免因场景差异直接拒绝验证。
关键错误日志片段
HTTP Client: RESPONSE: 403 METHOD: HttpMethod(value=POST) FROM: https://mobile.test.com/attest/validate/android BODY START {"message":"Validation failed app"} BODY END INTEGRITY_API - onFailure = io.ktor.client.plugins.ClientRequestException: Client request(POST https://mobile.test.com/attest/validate/android) invalid: 403 . Text: "{"message":"Validation failed app"}"
额外排查建议
- 确认Google Play Console中即时应用模块的App Integrity配置已启用,并与完整应用配置保持同步。
- 使用Google官方的完整性令牌解析工具,对比完整应用与即时应用的令牌内容差异,定位具体校验失败点。
内容的提问来源于stack exchange,提问作者James Jordan Taylor
相关产品推荐
相关产品推荐

