背景
排查的是一个前后端分离的移动端项目。前端是 React Native / Expo,后端是 Go 接口服务,最终需要产出一个可以直接安装到手机上的 APK。
在开发环境下,使用调试服务时接口一直是通的;但是打出正式安装包后,安装到手机上请求失败。
问题现象
-
开发环境里接口正常
-
打包后安装到手机,请求失败
-
服务端本机访问接口是正常的
根因:Android 正式包默认不允许明文 HTTP
正式 APK 里默认走严格的网络策略,如果后端还是 http,而主清单没有显式允许明文流量,手机端就可能直接拦掉请求。
这也是为什么在开发环境里看着正常,到了 release 包里就出问题。
处理方式
最终只做了一件关键改动:给 Android 正式清单开启明文 HTTP 支持。
对应修改如下:
<!-- AndroidManifest.xml -->
<applicationandroid:usesCleartextTraffic="true"...>
</application>
