You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

上传AAB至Google Play内部测试后,下载的App功能异常求排查

可能忽略的配置/环节分析
  • Google Play App Signing证书不匹配
    Google Play会替换上传AAB时的签名证书,若后端服务启用了证书固定(Certificate Pinning),仅信任本地调试证书,那么Google Play签名后的App证书不在白名单内,会直接拦截HTTPS请求。需将Google Play生成的发布证书哈希值添加到后端的信任列表中。

  • 网络安全配置未适配发布环境
    调试版本(Android Studio直接安装)因android:debuggable="true",系统默认允许忽略部分证书错误;但Google Play分发的正式版本debuggable为false,若未在res/xml/network_security_config.xml中正确配置信任的CA证书、允许特定域名请求,会导致HTTPS请求失败。比如使用自签名证书时,必须在配置文件中明确添加信任规则。

  • ProGuard/R8混淆破坏网络相关代码
    发布版本开启混淆后,若未排除网络请求核心类(如Retrofit接口、OkHttp拦截器、Gson数据模型),会导致请求无法构建或响应解析失败。需在proguard-rules.pro中添加保留规则:

    # 保留Retrofit接口类
    -keep public interface com.yourpackage.api.* { *; }
    # 保留数据模型类
    -keep class com.yourpackage.model.** { *; }
    # 保留OkHttp核心组件
    -keep class okhttp3.** { *; }
    
  • AAB资源拆分导致配置文件缺失
    AAB会按设备维度拆分资源,若API域名、密钥等核心配置文件被错误标记为可拆分资源,会导致发布版本缺少关键配置,请求无效地址或使用错误密钥。需在build.gradle的bundle配置中,将必要配置文件标记为universal,避免被拆分:

    android {
        bundle {
            language {
                enableSplit = false
            }
            // 其他资源拆分规则调整
        }
    }
    
  • 构建变体的环境配置不一致
    调试版本使用测试环境API地址,而发布版本默认调用生产环境API,但生产环境未开放测试权限,或未正确配置发布变体的环境变量。需检查build.gradle的buildTypes或productFlavors,确保发布版本的API地址、密钥等配置与调试版本匹配(若用于内部测试)。

  • 后端IP白名单限制
    后端服务仅允许调试设备的IP访问,而Google Play安装的App所在设备IP不在白名单内,导致请求被拒绝。登录偶尔成功可能是测试时IP恰好符合规则,后续IP变化后失效。建议后端改用令牌认证替代IP白名单,或放开测试设备所在IP段的访问权限。

内容的提问来源于stack exchange,提问作者ekashking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:25:08