如何在 NetworkExtension 为 运行 时让 iOS/macOS 更新我们的应用程序?

How to let iOS/macOS update our app while its NetworkExtension is running?

我们有一个应用程序可以在 iOS 和 macOS 上注册并运行 NetworkExtension(特别是 NEPacketTunnelProvider)。这工作正常(虽然不是在 iOS 模拟器中,当然,已知的限制)。但是,当网络扩展为运行、macOS/iOS上的App Store和iOS上的TestFlight时,无法更新应用程序。看起来他们正在等待 NetworkExtension 终止,但实际上并没有要求 VPN 断开连接。

我们不希望我们的用户必须考虑终止我们的 VPN(它应该尽可能保持连接),但我们也不希望他们必须考虑更新 - 它们应该自动发生。

我们是不是漏掉了什么?是否有我们应该监听的事件来检测商店正在尝试安装应用程序更新?在什么情况下我们应该安排 VPN 终止,安全地知道它会在更新后再次重新启动?

Apple 在这个问题上存在错误。从 iOS 11(和 macOS 10.13 或 10.14)开始应该没问题,但后来用户报告问题仍然存在。 Apple 的错误报告中可能仍存在一些与此相关的错误,但我们无法检查它们的状态。 您可以在他们的论坛上再次提问,并针对此问题打开另一个错误。 可能你别无他法。

这些只是与此问题相关的部分报告: https://forums.developer.apple.com/message/174708#174708 https://forums.developer.apple.com/thread/92603

https://forums.developer.apple.com/thread/126471

https://forums.developer.apple.com/message/149563#149563 https://forums.developer.apple.com/message/183927#183927

编辑:有人刚刚在 Apple 的论坛上发布了关于此的问题。发帖提问的可能是你,也可能是其他人,所以还有一个参考: https://forums.developer.apple.com/thread/128894