iOS 应用程序 - 首次安装时运行良好,后续运行网络较差,连续重新启动 4 次“修复”它(直到下一次)

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

我使用 Flutter 制作了一个移动应用程序。这个应用程序的数据量很大(API 和地图图块)。

它始终适用于 Android、iOS 模拟器和 Windows。

但是在物理 iOS 设备(发布和调试模式)上,同样的情况:

  • 首次发布运行良好。
  • 后续运行丢失数据/丢失地图图块
  • 在调试器中,我看到过这样的错误(可能是先有鸡还是先有蛋):
Error: SocketException: Failed host lookup: 'site.com' (OS Error: nodename nor servname provided, or not known, errno = 8) 

Error: SocketException: Connection failed (OS Error: Too many open files, errno = 24), address = site.com, port = 443 

上述错误有数百个,因为它们与地图图块有关。 但是,对同一“site.com”(API/JSON) 的早期 http 请求(大约 10 个)不会失败。 尽管如此,我在应用程序的顶层进行了网络检查,并打印了它声称“主机查找失败”的同一“站点”的成功信息。

  • 应用程序启动期间没有明显的时间差异
  • 我已通过 TestFlight 将应用程序直接安装到设备上。
  • 我已经安装在iPhone 11和15上。
  • 所有软件和软件包都是最新的。
  • 我尝试过 http 和 dio 包。
  • 我尝试将 exit(0) 设置为 AppLifecycleState.detached。

为什么首次安装时一切顺利,但在后续运行中,网络请求失败和/或打开的文件过多?

连续 4 次关闭并重新打开应用程序在 iOS 方面“做了什么”,始终解决了问题(对于会话)?

我还认为这可能与 IPv4/IPv6 有关。在工作的设备上,我将 DNS 设置为自动/路由器,而问题设备使用 1.1.1.1 和 1.0.0.1。

当我在 iPhone 11 上将设备切换到 LTE 时,突然间效果非常好!每次我连续多次打开和关闭应用程序时都没有丢失请求。然后今天,又出现了古怪的行为。在我的 iPhone 15 上,我也遇到了 5G 丢失图块/请求的情况。在所有情况下,重新启动应用程序 4 次似乎会重置某些内容,因此一切都会再次运行。

我还在我的应用程序中打印了 IP 字符串,看看是否有任何差异。使用 Wifi 时,它是 IPv4;使用 LTE 时,它是 IPv6。不管怎样,同样奇怪的行为。

唯一一致的是,我的新 Mac 上的 Android 和 iOS 模拟器从来没有出现过问题。只是实体 iPhone。

更新:这个帖子非常模仿我正在经历的事情。

ios flutter http socketexception fluttermap
1个回答
0
投票

已修复。

我安装了native_dio_adapter来配合flutter_map包使用的dio。

现在没有文件限制错误。此外,网络请求明显更快。

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