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

React Native Android Release构建无法连接Azure XMPP服务器求助

问题解决方案

针对你遇到的React Native Android Release构建无法通过ws://连接Azure XMPP服务器的问题,结合Debug正常、iOS无异常的情况,可从以下几个方向排查解决:

  • 配置Android网络安全策略
    Android 9(API 28)及以上版本默认禁止明文网络流量(包括ws://),Debug构建因为有默认调试配置允许明文,但Release构建没有。需要手动配置允许目标服务器的明文流量:

    1. 在android/app/src/main/res/xml目录下创建network_security_config.xml文件,内容如下:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <domain-config cleartextTrafficPermitted="true">
              <domain includeSubdomains="true">你的Azure XMPP服务器域名</domain>
          </domain-config>
      </network-security-config>
      
    2. 在AndroidManifest.xml的<application>标签中添加该配置引用:
      android:networkSecurityConfig="@xml/network_security_config"
      
  • 添加ProGuard混淆排除规则
    Release构建开启的代码混淆可能破坏xmpp.js的核心逻辑,导致连接失败。在android/app/proguard-rules.pro中添加以下规则(根据你实际使用的xmpp包调整):

    -keep class io.xmpp.** { *; }
    -keep class @xmpp/client.** { *; }
    -keep class org.jxmpp.** { *; }
    -keep class com.facebook.react.modules.network.** { *; }
    
  • 验证Release构建的连接URL
    编译差异可能导致Release模式下使用的ws连接地址和Debug不一致,可临时在连接逻辑中添加日志(上线前记得移除):

    console.log('实际连接URL:', yourWsUrl);
    

    然后通过adb logcat *:S ReactNative:V ReactNativeJS:V命令查看Release构建的日志,确认URL与Debug模式完全一致。

  • 检查Azure服务器的网络规则
    确认Azure上的XMPP服务器网络安全组(NSG)已开放ws协议对应的端口(通常是5280),且允许Android客户端所在网络的访问请求。

  • 确认网络权限配置
    虽然Debug模式正常,但仍需检查AndroidManifest.xml中是否声明了网络权限:

    <uses-permission android:name="android.permission.INTERNET" />
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:03:25