React Native 发布 apk 不从本地网络获取数据
React Native release apk does not fetch data from local network
我创建了一个 react-native 应用程序,它工作正常。
如果我生成调试 APK 并将其安装在设备上,它可以正常工作并从本地数据库中获取数据。
但是,如果生成 gradlew assembleRelease
APK 会成功生成,但是当我将它安装在设备上时,它不会从同一网络获取数据,如果生成调试 APK,它会从同一网络获取数据。
Here is the URL of the repo https://github.com/sh4rif/react-native-restaurant-app.
默认情况下,iOS 将阻止任何未使用 SSL 加密的请求。如果您需要从明文 URL(以 http 开头的文本)中获取,您首先需要添加 App Transport Security 例外。如果您提前知道您需要访问哪些域,则只为这些域添加例外会更安全;如果在运行时才知道域,您可以完全禁用 ATS。但请注意,从 2017 年 1 月起,Apple 的 App Store 审查将要求合理的理由来禁用 ATS。有关详细信息,请参阅 Apple 文档。
在 Android,自 API 级别 28 起,明文流量也默认被阻止。可以通过在应用程序清单文件中设置 android:usesCleartextTraffic 来覆盖此行为。
@Anurag 的回答详细解释了问题,因为我在开发我的应用程序时有类似的经历,我得到了帮助@article and from this Whosebug 。
简单的解决方案是将以下行添加到 <application
标签下的 AndroidManifest.xml
。
<application
android:usesCleartextTraffic="true"
此致。
我创建了一个 react-native 应用程序,它工作正常。
如果我生成调试 APK 并将其安装在设备上,它可以正常工作并从本地数据库中获取数据。
但是,如果生成 gradlew assembleRelease
APK 会成功生成,但是当我将它安装在设备上时,它不会从同一网络获取数据,如果生成调试 APK,它会从同一网络获取数据。
Here is the URL of the repo https://github.com/sh4rif/react-native-restaurant-app.
默认情况下,iOS 将阻止任何未使用 SSL 加密的请求。如果您需要从明文 URL(以 http 开头的文本)中获取,您首先需要添加 App Transport Security 例外。如果您提前知道您需要访问哪些域,则只为这些域添加例外会更安全;如果在运行时才知道域,您可以完全禁用 ATS。但请注意,从 2017 年 1 月起,Apple 的 App Store 审查将要求合理的理由来禁用 ATS。有关详细信息,请参阅 Apple 文档。
在 Android,自 API 级别 28 起,明文流量也默认被阻止。可以通过在应用程序清单文件中设置 android:usesCleartextTraffic 来覆盖此行为。
@Anurag 的回答详细解释了问题,因为我在开发我的应用程序时有类似的经历,我得到了帮助@article and from this Whosebug
简单的解决方案是将以下行添加到 <application
标签下的 AndroidManifest.xml
。
<application
android:usesCleartextTraffic="true"
此致。