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

Android签名构建中Pusher无法连接服务器的解决方案咨询

Android签名构建后Pusher连接异常排查建议
  • 检查签名证书哈希值配置
    Pusher后台需要绑定应用签名证书的SHA-1/SHA-256值,未签名构建用的是debug证书,签名构建用的是release证书,两者哈希值完全不同。操作步骤:

    1. 用命令生成release证书的哈希值:keytool -list -v -keystore 你的签名文件路径 -alias 证书别名
    2. 登录Pusher控制台,进入对应应用的Settings > Android页面,添加release证书的SHA-1和SHA-256值
  • 确认构建变体的密钥匹配
    确保release构建使用的是对应环境的Pusher密钥,不要在release包中混用debug密钥。可以通过BuildConfig区分配置:

    buildTypes {
        debug {
            buildConfigField("String", "PUSHER_APP_KEY", "\"debug_app_key\"")
            buildConfigField("String", "PUSHER_SECRET_KEY", "\"debug_secret_key\"")
        }
        release {
            buildConfigField("String", "PUSHER_APP_KEY", "\"release_app_key\"")
            buildConfigField("String", "PUSHER_SECRET_KEY", "\"release_secret_key\"")
            minifyEnabled true
            shrinkResources true
        }
    }
    

    代码中通过BuildConfig.PUSHER_APP_KEY获取对应环境的密钥。

  • 添加Pusher SDK混淆规则
    如果release构建开启了代码混淆,必须在proguard-rules.pro中保留Pusher相关类,避免SDK被错误混淆导致功能异常:

    -keep class com.pusher.** { *; }
    -keep class okhttp3.** { *; }
    -keep class okio.** { *; }
    -keepattributes Signature
    
  • 验证网络权限与安全配置

    1. 确保AndroidManifest.xml中已添加必要网络权限:
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
    2. 针对Android 9及以上版本,若使用Pusher的HTTP连接,需配置网络安全策略允许明文流量。在res/xml/network_security_config.xml中添加:
      <network-security-config>
          <domain-config cleartextTrafficPermitted="true">
              <domain includeSubdomains="true">pusher.com</domain>
          </domain-config>
      </network-security-config>
      
      并在AndroidManifest的application标签中引用:android:networkSecurityConfig="@xml/network_security_config"
  • 开启日志定位具体错误
    在release构建中开启Pusher调试日志,捕获连接失败的具体原因:

    val options = PusherOptions().apply {
        logLevel = Pusher.LogLevel.DEBUG
    }
    val pusher = Pusher(BuildConfig.PUSHER_APP_KEY, options)
    

    通过adb命令查看日志:adb logcat -s Pusher,根据日志中的错误提示(如认证失败、连接超时、证书不匹配等)针对性解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:40:34