Finally solved: it turned out I just needed to set the 'customUserAgent' property of the WKWebView. It's not clear why this wasn't required in iOS versions prior to iOS 17.5, but in any case the behavior seems to be working correctly again with this fix!
Post
Replies
Boosts
Views
Activity
My shipping iOS app ("Frax") is experiencing a very similar problem. It uses an internal launcher webpage that pulls in content from an external website, which worked fine on iOS 17.4 but is broken on iOS 18. Sure would appreciate if this could be fixed, or any guidance on how to work around it! I get the following sequence of errors in the console, not sure which are relevant (but none of which occur on previous iOS versions):
Could not create a sandbox extension for '/var/containers/Bundle/Application/[HexGibberish]/Frax.app'
Failed to request restricted opener domains from WebPrivacy
0x138028820 - [pageProxyID=7, webPageID=15, PID=3078, navigationID=3] ProvisionalPageProxy::didFailProvisionalLoadForFrame: frameID=1
0x106609e18 - [pageProxyID=7, webPageID=8, PID=3075] WebPageProxy::didFailProvisionalLoadForFrame: frameID=1, isMainFrame=1, domain=WebKitErrorDomain, code=102, isMainFrame=1, willInternallyHandleFailure=0
Updated list with error: DownloadFailed
Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "((target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.rendering AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.networking AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.webcontent))" UserInfo={NSLocalizedFailureReason=((target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.rendering AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.networking AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.webcontent))}>
0x138024fc0 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'XPCConnectionTerminationWatchdog' for process with PID=3078, error: (null)
Confirmed that adding 120fps support does fix the choppiness; my app now runs perfectly at 120fps. But this drains power, and it still runs choppily at 60fps even when using the new ProMotion CADisplayLink API. If I could, I would dynamically switch the app to 60fps most of the time, and reserve 120fps for critical animations. I'll keep trying things and post again if I find a workaround; hopefully Apple will fix it themselves in a forthcoming iOS update!
I'm experiencing essentially the same thing with my OpenGL app. Xcode shows its performance as continuous 60fps with only about 25% GPU utilization, yet every 4th frame or so simply doesn't get drawn to the screen, and the final result looks juddery. In my case, no frames are taking longer than 1/60 second to compute.
Interestingly, when UIKit elements are displayed on top of the OpenGL layer, that sometimes "fixes" the problem and the animation temporarily becomes buttery smooth 60fps, then when the UIKit elements are hidden, it gets choppy again. EAGLLayer doesn't respond to [setNeedsDisplay], so I don't know how to force the layer to be drawn to screen; it's as if the call to glPresentRenderBuffer() is simply ignored. Very puzzling, and very frustrating. I'm going to try adding 120fps support to see if that improves the situation at all.
Same problem here. Hugely annoying. Need to generate a new access token, and can't because this page won't load. Help!