iOS应用程序-在某些设备上无蜂窝数据访问

时间:2019-05-21 17:54:23

标签: ios iphone react-native mobile-data

在我们通过TestFlight部署的特定应用程序中,一些用户遇到了一个问题,即当通过蜂窝数据连接时,该应用程序根本无法发出Web请求。有问题的设备上的其他应用程序可以很好地处理蜂窝数据,而不是我们的数据。当用户切换到WiFi时,我们的应用程序 可以发出网络请求。在iPhone 8和iPhone X上均已观察到此行为。删除并重新安装该应用程序并重新启动设备不能解决问题。在其中一种iPhone 8情况下,将iOS更新到最新版本 did 可以解决此问题。我们确认在所有情况下,Settings > Cellular > [App name]Settings > [App name] > Use Cellular Data中都为该应用程序启用了蜂窝数据。

该应用程序是使用React Native构建的,并且Web请求是通过cross-fetch库执行的。

其他任何人之前都曾经历过这种行为吗?

1 个答案:

答案 0 :(得分:4)

不幸的是,我们没有找到解决问题的明确答案,但是我们确实实现了解决方法。

蜂窝网络上的某些iOS 12.3.1 iPhone似乎存在一个问题,即亚马逊的ELB Classic总是发送“ Connection:keep-alive”响应标头。您可以更改负载均衡器的空闲超时,但不能将其设置为0(最小为1秒)。我们可以使用create-react-app生成的新应用来重现iOS连接错误。这些请求一开始总是工作,然后开始始终失败。

我们通过从ELB切换到网络负载平衡器(AWS NLB)来解决此问题。 NLB直接与Nginx入口控制器对话。由于它位于TCP级别,因此NLB层不会更改标头。默认的Nginx控制器根本不发送“连接”响应头。使用此新设置,iOS应用程序可以在所有设备上正常运行。