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

React Native打包release模式后无法获取HTTP服务器数据如何解决

React Native Release包无法访问HTTP接口修复方案

该问题核心原因是debug模式下React Native默认对调试环境做了网络安全豁免,release包会严格遵守系统默认网络安全规则,默认禁止未加密的HTTP明文请求,按以下对应平台步骤修复即可:

Android端修复

  • 首先确认网络权限配置:打开android/app/src/main/AndroidManifest.xml,在根<manifest>节点下确认已声明网络权限,不要把该权限写到debug专属的manifest文件中,避免release包缺失权限:
<uses-permission android:name="android.permission.INTERNET" />
  • 配置明文访问权限,两种方案二选一即可:
    • 快速测试方案(适合内部测试包):在<application>标签上添加android:usesCleartextTraffic="true"属性,全局允许明文HTTP请求:
    <application
      android:name=".MainApplication"
      android:usesCleartextTraffic="true"
      ...其他属性
    >
    
    • 生产环境推荐方案(仅对目标接口开放明文权限,合规性更高):
      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">12.129.302.253</domain>
          <domain includeSubdomains="true">localhost</domain>
        </domain-config>
      </network-security-config>
      
      1. 回到AndroidManifest.xml的<application>标签,添加属性关联上述配置文件:
      <application
        android:name=".MainApplication"
        android:networkSecurityConfig="@xml/network_security_config"
        ...其他属性
      >
      
  • 检查混淆规则:如果开启了ProGuard/R8代码混淆,打开android/app/proguard-rules.pro,添加所用网络库的keep规则,避免release包混淆时将网络请求相关类错误裁剪,以常用的OkHttp为例:
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**

如果使用其他第三方网络库,补充对应库的官方混淆规则即可。

iOS端修复

iOS系统默认通过ATS(App Transport Security)策略禁止HTTP明文请求,需要在ios/项目名/Info.plist中添加对应配置,两种方案二选一:

  • 快速测试方案:全局放开ATS限制,允许所有HTTP请求:
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

注意:该配置提交App Store审核时大概率会被驳回,仅适合本地测试使用。

  • 生产环境推荐方案:仅对目标接口地址放开明文限制:
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>12.129.302.253</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
    </dict>
  </dict>
</dict>

其他必查项

  • 核对接口地址合法性:你提供的IP12.129.302.253第三段地址为302,超出IPv4地址单段0-255的合法取值范围,先确认实际服务IP是否输入错误。
  • 检查服务端访问限制:确认运行release包的设备网络可以正常访问服务端9005端口,排除服务端防火墙拦截、端口未对外开放、IP白名单限制等问题。
  • 检查请求配置:确认请求代码中没有写死debug环境专属的代理地址、调试域名,release环境已切换到正确的服务端地址。

内容的提问来源于stack exchange,提问作者dev-arjun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:42:18