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

React Native签名APK登录出现网络错误,Metro打包正常求助

React Native签名APK登录提示网络错误的排查方向
  • 网络权限缺失:Debug版本通常默认授予网络权限,但Release版本必须在AndroidManifest.xml中显式声明:

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

    若目标接口使用明文HTTP(非HTTPS),Android 9及以上默认拦截此类请求,需在res/xml/network_security_config.xml中配置允许明文访问,或切换为HTTPS协议。

  • SSL证书验证失败:Debug模式下可能临时关闭了SSL验证(如Axios设置rejectUnauthorized: false),但Release模式会严格校验证书有效性。如果后端证书未被系统信任、证书链不完整或域名不匹配,都会触发网络错误。需确认后端证书合规,或针对Release环境配置正确的证书信任策略。

  • 代码混淆破坏网络模块:Release构建开启ProGuard/R8混淆后,可能篡改Axios、OkHttp等网络库的核心代码,导致请求无法正常发送。需在proguard-rules.pro中添加保护规则:

    -keep class com.facebook.react.modules.network.** { *; }
    -keep class com.axios.** { *; }
    -keep class okhttp3.** { *; }
    -keep class okio.** { *; }
    
  • 环境配置错误:Debug模式可能使用测试环境API地址,但Release构建时未切换到生产环境URL,或环境变量未正确注入包内。检查build.gradle或项目配置文件,确认Release版本的Base URL正确。

  • 后端证书指纹白名单限制:部分后端服务会校验请求来源的APK签名指纹,若Release包的签名指纹未加入后端白名单,请求会被拒绝。此时Axios可能将HTTP错误(如403)误判为网络错误。通过keytool -list -v -keystore your-release-key.keystore获取Release证书指纹,添加到后端白名单即可。

  • 网络安全配置限制:Release模式下的network_security_config.xml可能存在域名访问限制,需确认配置中允许目标API域名的访问。

  • Axios错误处理逻辑偏差:检查Axios的错误捕获代码,是否将HTTP状态码错误(如401、404)当成网络错误抛出。可在Release版本中添加详细日志,打印error.response、error.request和error.message,明确错误类型。

内容的提问来源于stack exchange,提问作者Ali Asad Jafry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:31:08