尝试通过 HTTPS 访问 API 时,React Native Android 应用的发布版本得到 'generic network error'
Release version of React Native Android app getting 'generic network error' when trying to access API over HTTPS
我正在尝试 运行 我的 React Native 应用程序(版本 0.59.1)与 Android 设备 API 16 并且没有 google 播放服务。我的问题是,当我在发布模式下构建我的应用程序时,通过 HTTPS 调用我的 API 给我一个没有更多详细信息的 "Network Error"。这些调用是使用 FETCH 进行的。
在调试模式下 运行 时,通过 HTTPS 的 API 调用工作正常。我还确认在 运行 发布模式下仅 HTTP 有效。
我看过几篇建议创建我自己的 TLS/SSL 连接工厂的帖子,但似乎 React Native 应该已经用他们的 OkHttpProvider 处理了这个问题:https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java
我还包括了此处显示的保护规则:
我也试过关闭 pro-guard,但似乎没有什么不同。
我错过了什么吗?是否缺少 proguard 规则? react提供的OkHttpClientProvider是不是像我想的那样使用?
找到解决方案。我添加了这个 proguard 规则并解决了问题:
-keepclassmembers class * implements javax.net.ssl.SSLSocketFactory {
private final javax.net.ssl.SSLSocketFactory delegate;
}
我正在尝试 运行 我的 React Native 应用程序(版本 0.59.1)与 Android 设备 API 16 并且没有 google 播放服务。我的问题是,当我在发布模式下构建我的应用程序时,通过 HTTPS 调用我的 API 给我一个没有更多详细信息的 "Network Error"。这些调用是使用 FETCH 进行的。
在调试模式下 运行 时,通过 HTTPS 的 API 调用工作正常。我还确认在 运行 发布模式下仅 HTTP 有效。
我看过几篇建议创建我自己的 TLS/SSL 连接工厂的帖子,但似乎 React Native 应该已经用他们的 OkHttpProvider 处理了这个问题:https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java
我还包括了此处显示的保护规则:
我也试过关闭 pro-guard,但似乎没有什么不同。
我错过了什么吗?是否缺少 proguard 规则? react提供的OkHttpClientProvider是不是像我想的那样使用?
找到解决方案。我添加了这个 proguard 规则并解决了问题:
-keepclassmembers class * implements javax.net.ssl.SSLSocketFactory {
private final javax.net.ssl.SSLSocketFactory delegate;
}