React Native Android 应用程序在发布时无法工作

问题描述 投票:0回答:6

我使用 React Native 制作了一个应用程序。该应用程序连接到我制作的 api。我按照以下步骤操作:https://facebook.github.io/react-native/docs/signed-apk-android,现在如果我执行react-native run-android --variant=,应用程序将无法工作发布。应用程序已安装,但我无法登录该应用程序。有什么方法可以查看我是否遇到任何错误或其他问题吗?

我尝试寻找一种方法来显示调试控制台,即使变体已发布,但我找不到任何

我希望该应用程序能够像未发布版本的应用程序一样工作。

android react-native release
6个回答
37
投票

也许您需要在 AndroidManifest.xml 的

android:usesCleartextTraffic="true"
标签内添加
application

类似这样的:

<application
  ...
  android:usesCleartextTraffic="true"
  ...
>
   ...
</application>

1
投票

我认为问题在于这是一个

http
请求。

这可能会解决您的问题:https://stackoverflow.com/a/55834683/6667328


0
投票

请尽量准确,否则很难理解问题。

为了捕获发布模式下的问题,我们有几个库,即使真实用户正在使用该应用程序,它们也可以帮助我们进行调试。检查以下两个库,它们可能会帮助您找到问题。

  1. 巴士纳格
  2. Crashalytics,react-native-firebase 中的模块

0
投票

对我来说,我看到了相同的行为,但原因与接受的解决方案非常不同。我会在这里留下我的答案,以防对其他人有帮助。

TL;DR:确保您的模拟器/设备有正确的时间!

问题

如果您使用 HTTPS,设备和服务器时间需要同步,否则将不允许连接。

通常这不是问题,但我的模拟器由于某种原因一直在重置时间。结果是,当我在调试模式下连接时,时间正确并且连接得很好。然而,当我切换到释放模式时,时间错误并且没有连接。

问题很微妙,因为我的构建变体使用不同的服务器,因此我在调试中的安全连接被缓存,即使在时间更改且发布模式不起作用之后仍然有效,这使得这看起来像是构建配置的问题。

解决方案

您可以通过

轻松找出这是否是您的同一问题
  1. 检查设备上的时间
  2. 在浏览器中打开 URL。浏览器可能会注意到时差问题并提醒您。

如果是,只需进入您的设备设置,更新时间,就可以了!


0
投票

只需在 AndroidManifest.xml 文件中添加 ----- android:usesCleartextTraffic="true"--- 如下

<application
  ...
  android:usesCleartextTraffic="true"
  ....
  >
 </application> </manifest>

0
投票

在 apk 版本中,3 个用户中只有一个用户登录,另一个用户给出无效请求,反应本机版本是 0.67.0

© www.soinside.com 2019 - 2024. All rights reserved.