I'm observing problems upgrading apps with an active packet tunnel provider on iOS 11. This issue was previously reported as a bug and believed to be solved in iOS 10.2. Unfortunately I have to report that this issue is back on iOS 11 and based on the tests it seems to be 100% reproducible.
Steps to reproduce:
1. Install Ad Hoc / TestFlight version of app
2. Enable tunnel provider
3. Update to new version of app (App store version, Testflight or OTA)
4. Find that the update fails, a dialog is shown that the download failed
Previously (after the fix deployed on 10.2), I would see the VPN icon go away shortly before the download starts. Now, on iOS 11 beta 3, I see that the VPN icon remains visible and the extension is not closed before attempting to download a new version. The console logs specify the following:
Jul 17 13:55:52 <devicename> SpringBoard(FrontBoard)[53] <Notice>: Error acquiring hold on plugins for <your.app.bundleID>: Error Domain=PlugInKit Code=14 "plug-ins are busy" UserInfo={busyPlugInUUIDs=(
{
XPCExtensionBundleIdentifier = "<your.tunnelprovider.bundleID>";
}
), NSLocalizedDescription=plug-ins are busy}
This bug is observed for our own apps, internal test apps as well as a handful of app store apps using packet tunnel providers. It has been reproduced on iPhone 5s, iPhone 7 and iPhone 6 plus.
This issue has previously been addressed in this topic: App updates when using NEPacketTunnelProvider