Many of my iOS users have been reporting the dreaded “white screen of death” when opening my iOS Cordova Meteor app. It seems to have gotten worse this year, but I’m not sure. I have been noticing it myself more, though. I’ve been keeping current with Meteor updates and am currently on 2.5.1, but this was happening before that (including before the Cordova 10 upgrade, I’m pretty sure).
It seems to happen in either of these situations:
- Hot code push. I open the app, it loads fine, tells me there’s an update available (my custom UI for reloads), so I tap to update. Splash screen appears, then quickly fades to white.
- App backgrounded for too long / too many other apps loaded, even with no pending update. When I come back to the app, it’s a white screen and unresponsive.
Generally, quitting the app and starting it again brings it back to life. However, I did have an issue with my production app, downloaded from the App Store, where it would not load even after restarting the app and my phone. Maybe it had something to do with the app having replaced an existing TestFlight version? I’ve received a couple other reports of people not being able to bring it back to life by restarting the app or their device, though, so it’s not just me.
I was able to get it to white-screen while I had XCode connected overnight with the app closed. Here’s what I get in the XCode log output:
Output from XCode for white-screen-of-death
I got this output shortly after I went to bed (timestamps and PID info shortened for clarity):
21:16:18.852056 {Thread A} CDVWebViewEngine shouldReloadWebView::
21:16:18.852115 {Thread A} CDVWebViewEngine shouldReloadWebView title: Strum Machine
21:16:18.852132 {Thread A} CDVWebViewEngine shouldReloadWebView location: http://localhost:12000/app
21:16:18.852147 {Thread A} CDVWebViewEngine shouldReloadWebView reload: 0
[INFO] Socket error: Bad file descriptor on socket 3
[INFO] GCDWebServer stopped
[INFO] GCDWebServer started on port 12000 and reachable at http://localhost:12000/
21:16:18.888569 {Thread A} Connection timeout. No sockjs heartbeat received.
And then this output when I tried opening the app again in the morning:
06:41:41.522506 {Thread A} [Process] 0x105bcc900 - [PID=81584] WebProcessProxy::didClose: (web process 0 crash)
06:41:41.522745 {Thread A} [Process] 0x105bcc900 - [PID=81584] WebProcessProxy::processDidTerminateOrFailedToLaunch: reason=4
06:41:41.522894 {Thread A} [ProcessSuspension] 0x105bf83c0 - ProcessAssertion: Failed to acquire RBS Background assertion 'ConnectionTerminationWatchdog' for process because PID is invalid
06:41:41.523457 {Thread A} [Process] 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::processDidTerminate: (pid 81584), reason 4
06:41:41.524813 {Thread B} [ProcessSuspension] 0x105bf83c0 - ProcessAssertion: Failed to acquire RBS assertion 'ConnectionTerminationWatchdog' for process with PID=0, error: (null)
06:41:41.534247 {Thread A} [Loading] 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::dispatchProcessDidTerminate: reason=4
06:41:41.541066 {Thread C} [assertion] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>
06:41:41.541135 {Thread C} [ProcessSuspension] 0x105bf8420 - ProcessAssertion: Failed to acquire RBS assertion 'NetworkProcess Background Assertion' for process with PID=81586, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}
06:41:41.547863 {Thread A} [Process] 0x105b64320 - NetworkProcessProxy::didClose (Network Process 0 crash)
06:41:41.549848 {Thread A} CDVWebViewEngine shouldReloadWebView::
06:41:41.549885 {Thread A} CDVWebViewEngine shouldReloadWebView title:
06:41:41.549970 {Thread A} CDVWebViewEngine shouldReloadWebView location: http://localhost:12000/app
06:41:41.550035 {Thread A} CDVWebViewEngine shouldReloadWebView reload: 0
[INFO] Socket error: Bad file descriptor on socket 3
[INFO] GCDWebServer stopped
[INFO] GCDWebServer started on port 12000 and reachable at http://localhost:12000/
06:41:41.693031 {Thread A} IAB.close() called but it was already closed.
onReset called
error in connection_block_invoke_2: Connection interrupted
06:41:41.853148 {Thread A} The preference key "AutoHideSplashScreen" is not defined and will default to "TRUE"
06:42:11.527380 {Thread A} Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
I also captured all the logs in Console.app that matched my app name, which I will paste in below (collapsed) in case anybody wants to see them:
Console.app logs when bringing white-screen-of-death app to foreground
error 06:41:41.545813-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::didClose: (web process 0 crash)
error 06:41:41.546047-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::processDidTerminateOrFailedToLaunch: reason=4
default 06:41:41.546637-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::shutDown:
error 06:41:41.546802-0800 Strum Machine 0x105bf83c0 - ProcessAssertion: Failed to acquire RBS Background assertion 'ConnectionTerminationWatchdog' for process because PID is invalid
default 06:41:41.546894-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::processWillShutDown:
error 06:41:41.549561-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::processDidTerminate: (pid 81584), reason 4
error 06:41:41.549619-0800 Strum Machine 0x105bf83c0 - ProcessAssertion: Failed to acquire RBS assertion 'ConnectionTerminationWatchdog' for process with PID=0, error: (null)
default 06:41:41.549727-0800 Strum Machine 0x281320a20 - WKRBSAssertionDelegate: assertion was invalidated, error: <WKRBSAssertionDelegate: 0x281d589c0>
default 06:41:41.549792-0800 Strum Machine 0x28132cc90 - WKRBSAssertionDelegate: assertion was invalidated, error: <WKRBSAssertionDelegate: 0x281d5cb20>
default 06:41:41.549849-0800 Strum Machine Removing visibility propagation view 0x10312cab0
default 06:41:41.549913-0800 Strum Machine 0x103840200 -[WKWebView _processDidExit]
default 06:41:41.550441-0800 Strum Machine 0x103840200 (pageProxyID=11) -[WKWebView _cancelAnimatedResize] _dynamicViewportUpdateMode 0
default 06:41:41.550584-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::processTerminated:
default 06:41:41.550640-0800 Strum Machine Service did finish database update with protection type 1 and provider 1
error 06:41:41.550695-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::dispatchProcessDidTerminate: reason=4
default 06:41:41.550750-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::reload:
default 06:41:41.551064-0800 Strum Machine 0x105b643f8 - [PID=81586] ProcessThrottler::updateAssertionIfNeeded: sending ProcessDidResume IPC because the process was suspended
default 06:41:41.551460-0800 Strum Machine 0x105b643f8 - [PID=81586] ProcessThrottler::setAssertionType: Updating process assertion type to 1 (foregroundActivities=0, backgroundActivities=1)
default 06:41:41.551944-0800 Strum Machine 0x2813a0f30 - WKProcessAssertionBackgroundTaskManager: beginBackgroundTaskWithName
default 06:41:41.552109-0800 Strum Machine WKProcessAssertionBackgroundTaskManager: Took a FinishTaskInterruptable assertion for own process
default 06:41:41.552208-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::launchProcessForReload:
default 06:41:41.552369-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=81584] WebPageProxy::launchProcess:
default 06:41:41.552457-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::removeWebPage: webPage=0x104024e18, pageProxyID=11, webPageID=12
default 06:41:41.552597-0800 Strum Machine 0x10d14c000 - [PID=0] WebProcessProxy::constructor:
default 06:41:41.552649-0800 Strum Machine 0x105be4440 - [PID=0, throttler=0x10d14c170] ProcessThrottler::Activity::Activity: Starting background activity / 'WebProcess initialization'
debug 06:41:41.552705-0800 Strum Machine looked up value 1 for key RemoteInspectorEnabled in CFPrefsPlistSource<0x2833df380> (Domain: com.apple.webinspectord, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No) via CFPrefsSearchListSource<0x2833dcc80> (Domain: com.apple.webinspectord, Container: (null))
default 06:41:41.553092-0800 Strum Machine +[AVPictureInPicturePlatformAdapter isPictureInPictureSupported] isPictureInPictureSupported YES
default 06:41:41.553148-0800 Strum Machine Service did finish database update with protection type 1 and provider 1
debug 06:41:41.553323-0800 Strum Machine Invalidating cache
error 06:41:41.554150-0800 Strum Machine Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>
error 06:41:41.554207-0800 Strum Machine 0x105bf8420 - ProcessAssertion: Failed to acquire RBS assertion 'NetworkProcess Background Assertion' for process with PID=81586, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}
default 06:41:41.554887-0800 Strum Machine 0x10d14c000 - [PID=0] WebProcessProxy::addExistingWebPage: webPage=0x104024e18, pageProxyID=11, webPageID=12
default 06:41:41.570532-0800 Strum Machine 0x103840200 -[WKWebView _didRelaunchProcess]
default 06:41:41.570612-0800 Strum Machine 0x105bf9080 - NavigationState is taking a process network assertion because a page load started
default 06:41:41.571146-0800 Strum Machine 0x105be4680 - [PID=0, throttler=0x10d14c170] ProcessThrottler::Activity::Activity: Starting background activity / 'Page Load'
default 06:41:41.571584-0800 Strum Machine 0x105bcc900 - [PID=81584] WebProcessProxy::destructor:
default 06:41:41.571639-0800 Strum Machine 0x105bcca70 - [PID=81584] ProcessThrottler::invalidateAllActivities: BEGIN (foregroundActivityCount: 0, backgroundActivityCount: 0)
default 06:41:41.571721-0800 Strum Machine 0x105bcca70 - [PID=81584] ProcessThrottler::invalidateAllActivities: END
default 06:41:41.571886-0800 Strum Machine 0x105bf8300 - ~ProcessAssertion: Releasing process assertion 'WebProcess Suspended Assertion' for process with PID=81584
error 06:41:41.572495-0800 Strum Machine 0x105b64320 - NetworkProcessProxy::didClose (Network Process 0 crash)
default 06:41:41.572592-0800 Strum Machine 0x105b643f8 - [PID=81586] ProcessThrottler::invalidateAllActivities: BEGIN (foregroundActivityCount: 0, backgroundActivityCount: 1)
default 06:41:41.572714-0800 Strum Machine 0x105b643f8 - [PID=81586] ProcessThrottler::sendPrepareToSuspendIPC: isSuspensionImminent=0
default 06:41:41.572807-0800 Strum Machine 0x105b643f8 - [PID=81586] ProcessThrottler::sendPrepareToSuspendIPC: Sending PrepareToSuspend(5, isSuspensionImminent=0) IPC
default 06:41:41.572999-0800 Strum Machine 0x105b643f8 - [PID=81586] ProcessThrottler::invalidateAllActivities: END
default 06:41:41.573050-0800 Strum Machine 0x105bf83c0 - ProcessAssertion::processAssertionWasInvalidated() PID=0
default 06:41:41.573101-0800 Strum Machine 0x105bf8360 - ProcessAssertion: RBS Suspended assertion for process with PID=81586 was invalidated
default 06:41:41.573180-0800 Strum Machine 0x105bf8360 - ProcessAssertion::processAssertionWasInvalidated() PID=81586
default 06:41:41.573255-0800 Strum Machine 0x105bf8420 - ProcessAssertion::processAssertionWasInvalidated() PID=81586
default 06:41:41.573345-0800 Strum Machine 0x105bf8360 - ~ProcessAssertion: Releasing process assertion 'NetworkProcess Suspended Assertion' for process with PID=81586
default 06:41:41.573482-0800 Strum Machine 0x105bf8420 - ~ProcessAssertion: Releasing process assertion 'NetworkProcess Background Assertion' for process with PID=81586
default 06:41:41.573617-0800 Strum Machine 0x105bb4888 - ApplicationStateTracker: UISceneWillEnterForeground
default 06:41:41.573709-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=0] WebPageProxy::applicationWillEnterForeground: isSuspendedUnderLock? 0
default 06:41:41.573847-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=0] WebPageProxy::updateActivityState: view visibility state changed 0 -> 1
default 06:41:41.573901-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=0] WebPageProxy::updateThrottleState: UIProcess is taking a foreground assertion because the view is visible
default 06:41:41.573956-0800 Strum Machine 0x105be4710 - [PID=0, throttler=0x10d14c170] ProcessThrottler::Activity::Activity: Starting foreground activity / 'View is visible'
default 06:41:41.574074-0800 Strum Machine sceneOfRecord: sceneID: sceneID:com.strummachine.mobileapp-default persistentID: CB336D6E-04B1-492F-9085-5DE154C708FC
default 06:41:41.574162-0800 Strum Machine Deactivation reason added: 5; deactivation reasons: 6144 -> 6176; animating application lifecycle event: 1
default 06:41:41.574218-0800 Strum Machine Ignoring already applied deactivation reason: 12; deactivation reasons: 6176
debug 06:41:41.574465-0800 Strum Machine looked up value {
Proactive = {
changeType = 0;
changeTypeDescription = Immediate;
date = "2021-12-15 03:01:34 +0000";
event = 5;
eventdescription = Playback;
eventreason = "Playback changed for origin-Big Red-1280262988/client-com.spotify.client-61550 (Spotify)/player-MediaRemote-DefaultPlayer";
selectionreason = UserSelected;
timesince = "41982.9442589283";
type = 1;
};
UserSelected = {
changeType = 0;
changeTypeDescription = Immediate;
date = "2021-12-15 03:01:34 +0000";
event = 5;
eventdescription = Playback;
eventreason = "Playback changed for origin-Big Red-1280262988/client-com.spotify.client-61550 (Spotify)/player-MediaRemote-DefaultPlayer";
selectionreason = "was not playing recently <33539.415038> ago and was not <UserSelected> recently <41982.940411> seconds ago";
timesince = "41982.94744503498";
type = 0;
};
} for key SystemEndpoint in CFPrefsPlistSource<0x2833c2000> (Domain: com.apple.mediaremote, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No)
default 06:41:41.574575-0800 Strum Machine CDVWebViewEngine shouldReloadWebView::
default 06:41:41.574650-0800 Strum Machine CDVWebViewEngine shouldReloadWebView title:
default 06:41:41.574987-0800 Strum Machine CDVWebViewEngine shouldReloadWebView location: http://localhost:12000/app
default 06:41:41.575356-0800 Strum Machine CDVWebViewEngine shouldReloadWebView reload: 0
debug 06:41:41.575412-0800 Strum Machine looked up value Tue Dec 14 21:22:17 2021 for key LastPlayingDate in CFPrefsPlistSource<0x2833c2000> (Domain: com.apple.mediaremote, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No)
debug 06:41:41.577250-0800 Strum Machine [0x10312cf80] scheduled
debug 06:41:41.577752-0800 Strum Machine nw_path_evaluator_start Adding client to default path evaluator
default 06:41:41.577966-0800 Strum Machine nw_path_evaluator_start [4A39B207-FE18-43B6-8E8E-F778869ED778 <NULL> generic, attribution: developer]
path: satisfied (Path is satisfied), interface: en0, ipv4, dns
debug 06:41:41.578330-0800 Strum Machine [0x10312cf80] __SCNetworkReachabilityGetFlagsFromPath(GetFlags), flags = 0x00000002, nw_path_status_satisfied
debug 06:41:41.578465-0800 Strum Machine [0x10312cf80] __SCNetworkReachabilityGetFlagsFromPath(GetFlags), flags = 0x00000002, nw_path_status_satisfied
default 06:41:41.578540-0800 Strum Machine Deactivation reason removed: 11; deactivation reasons: 6176 -> 4128; animating application lifecycle event: 1
default 06:41:41.579015-0800 Strum Machine [0x2836d9ea0] [keyboardFocus] Recreation of event deferring records requested: removing recreation reason: detachedContext; for reason: _UIEventDeferringManager: 0x2836d9ea0: recreating keyboardFocus: context attached for window: 0x10320f9e0; contextID: 0x6269C998
default 06:41:41.646711-0800 Strum Machine 0x105be4770 - [PID=0, throttler=0x10d14c170] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld'
default 06:41:41.646910-0800 Strum Machine 0x2813a0f30 - WKProcessAssertionBackgroundTaskManager: endBackgroundTask
default 06:41:41.647123-0800 Strum Machine 0x10d14c000 - [PID=82994] WebProcessProxy::didFinishLaunching:
default 06:41:41.657763-0800 Strum Machine 0x10d14c170 - [PID=82994] ProcessThrottler::didConnectToProcess:
default 06:41:41.658499-0800 Strum Machine 0x10d14c170 - [PID=82994] ProcessThrottler::setAssertionType: Updating process assertion type to 3 (foregroundActivities=2, backgroundActivities=5)
default 06:41:41.658689-0800 Strum Machine 0x2813a0f30 - WKProcessAssertionBackgroundTaskManager: beginBackgroundTaskWithName
default 06:41:41.658967-0800 Strum Machine WKProcessAssertionBackgroundTaskManager: Took a FinishTaskInterruptable assertion for own process
default 06:41:41.659172-0800 Strum Machine 0x10d14c000 - [PID=82994] WebProcessProxy::didSetAssertionType: type=3
default 06:41:41.659341-0800 Strum Machine 0x10d14c000 - [PID=82994] WebProcessProxy::didSetAssertionType(Foreground) Taking foreground assertion for network process
default 06:41:41.660033-0800 Strum Machine 0x105be4c30 - [PID=0, throttler=0x105b65e88] ProcessThrottler::Activity::Activity: Starting foreground activity / 'Networking for foreground view(s)'
debug 06:41:41.660176-0800 Strum Machine looked up value 1 for key RemoteInspectorEnabled in CFPrefsPlistSource<0x2833df380> (Domain: com.apple.webinspectord, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No) via CFPrefsSearchListSource<0x2833dcc80> (Domain: com.apple.webinspectord, Container: (null))
default 06:41:41.660319-0800 Strum Machine sceneOfRecord: sceneID: sceneID:com.strummachine.mobileapp-default persistentID: CB336D6E-04B1-492F-9085-5DE154C708FC
default 06:41:41.672615-0800 Strum Machine 0x105b65db0 - NetworkProcessProxy is taking a background assertion because a web process is requesting a connection
default 06:41:41.675045-0800 Strum Machine sceneOfRecord: sceneID: sceneID:com.strummachine.mobileapp-default persistentID: CB336D6E-04B1-492F-9085-5DE154C708FC
info 06:41:41.675261-0800 Strum Machine Acquiring assertion: <RBSAssertionDescriptor| "WebKit UIProcess background task" ID:(null) target:81581>
default 06:41:41.675616-0800 Strum Machine [0x2836d9ea0] Scene target of event deferring environments did update: scene: 0x1032093f0; current systemShellManagesKeyboardFocus: 1; systemShellManagesKeyboardFocusForScene: 1; eligibleForRecordRemoval: 1;
default 06:41:41.676043-0800 Strum Machine Scene became target of keyboard event deferring environment: UIWindowScene: 0x1032093f0; scene identity: com.apple.frontboard.systemappservices::sceneID%3Acom.strummachine.mobileapp-default
debug 06:41:41.685647-0800 Strum Machine Adding assertion 32-81581-819005 to dictionary
debug 06:41:41.685682-0800 Strum Machine Received message from server: async_didChangeInheritances:completion:
info 06:41:41.685830-0800 Strum Machine Acquiring assertion: <RBSAssertionDescriptor| "WebProcess Foreground Assertion" ID:(null) target:82994>
info 06:41:41.685866-0800 Strum Machine didChangeInheritances: <RBSInheritanceChangeSet| gained:{(
<RBSInheritance| environment:UIScene:com.apple.frontboard.systemappservices::sceneID%3Acom.strummachine.mobileapp-default name:com.apple.frontboard.visibility origID:32-73482-819004 payload>
)} lost:(null)>
debug 06:41:41.692529-0800 Strum Machine Adding assertion 32-81581-819007 to dictionary
default 06:41:41.692568-0800 Strum Machine 0x105bf8540 - ProcessAssertion: Successfully took RBS assertion 'WebProcess Foreground Assertion' for process with PID=82994
default 06:41:41.697400-0800 Strum Machine 0x105b65e88 - [PID=82995] ProcessThrottler::didConnectToProcess:
default 06:41:41.697783-0800 Strum Machine 0x105b65e88 - [PID=82995] ProcessThrottler::setAssertionType: Updating process assertion type to 3 (foregroundActivities=1, backgroundActivities=1)
info 06:41:41.702567-0800 Strum Machine Acquiring assertion: <RBSAssertionDescriptor| "NetworkProcess Foreground Assertion" ID:(null) target:82995>
debug 06:41:41.702708-0800 Strum Machine Adding assertion 32-81581-819009 to dictionary
default 06:41:41.702778-0800 Strum Machine 0x105bf85a0 - ProcessAssertion: Successfully took RBS assertion 'NetworkProcess Foreground Assertion' for process with PID=82995
default 06:41:41.721096-0800 Strum Machine 0x105be4440 - [PID=82994, throttler=0x10d14c170] ProcessThrottler::Activity::invalidate: Ending background activity / 'WebProcess initialization'
default 06:41:41.732506-0800 Strum Machine Created visibility propagation view 0x108f1c250 (contextID=1074028736) for WebContent process with PID=82994
info 06:41:41.732665-0800 Strum Machine Acquiring assertion: <RBSAssertionDescriptor| "injecting inherited from "UIScene:com.apple.frontboard.systemappservices::sceneID%3Acom.strummachine.mobileapp-default" to 82994<UIHostedWindow:400460c0>" ID:(null) target:82994<UIHostedWindow:400460c0>>
debug 06:41:41.733716-0800 Strum Machine Adding assertion 32-81581-819010 to dictionary
default 06:41:41.736721-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::decidePolicyForNavigationAction: frameID=3, navigationID=2
info 06:41:41.736874-0800 Strum Machine Look up a url
debug 06:41:41.736913-0800 Strum Machine Look up a url http://localhost:12000/app
info 06:41:41.736949-0800 Strum Machine Send GetDatabases message to safe browsing service with protection type 1
info 06:41:41.737095-0800 Strum Machine Already waiting for GetDatabases response with protection type 1
default 06:41:41.737308-0800 Strum Machine 0x105be5310 - SOAuthorizationCoordinator::tryAuthorize
debug 06:41:41.737365-0800 Strum Machine +[SOAuthorizationCore _doAKshouldProcessURL:] URL = http://localhost:12000/app, result = NO on SOAuthorizationCore
debug 06:41:41.737548-0800 Strum Machine +[SOAuthorizationCore canPerformAuthorizationWithURL:responseCode:callerBundleIdentifier:useInternalExtensions:] http://localhost:12000/app, responseCode = 0, callerBundleIdentifier = (null), useInternalExtensions = YES, result = NO on SOAuthorizationCore
default 06:41:41.737581-0800 Strum Machine 0x105be5310 - SOAuthorizationCoordinator::tryAuthorize: Cannot authorize the requested URL.
info 06:41:41.737705-0800 Strum Machine Receive GetDatabases response from safe browsing service with protection type: 1
info 06:41:41.737740-0800 Strum Machine Receive GetDatabases response from safe browsing service
info 06:41:41.737946-0800 Strum Machine Perform url lookup in the database
debug 06:41:41.738147-0800 Strum Machine Perform url lookup in the database: http://localhost:12000/app
info 06:41:41.742635-0800 Strum Machine There are no matches in databases with given url
debug 06:41:41.742728-0800 Strum Machine There are no matches in databases with given url: http://localhost:12000/app
default 06:41:41.742768-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::decidePolicyForNavigationAction: listener called: frameID=3, navigationID=2, policyAction=0, safeBrowsingWarning=0, isAppBoundDomain=0
default 06:41:41.743037-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::receivedNavigationPolicyDecision: frameID=3, navigationID=2, policyAction=0
default 06:41:41.743236-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::decidePolicyForNavigationAction: keep using process 82994 for navigation, reason=Process has not yet committed any provisional loads
info 06:41:41.743551-0800 Strum Machine Received ClientInUse reply
default 06:41:41.750989-0800 Strum Machine 0x105be4770 - [PID=82994, throttler=0x10d14c170] ProcessThrottler::Activity::invalidate: Ending foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld'
default 06:41:41.752646-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::didStartProvisionalLoadForFrame: frameID=3
default 06:41:41.752746-0800 Strum Machine 0x10d14c000 - [PID=82994] WebProcessProxy::didStartProvisionalLoadForMainFrame:
default 06:41:41.752907-0800 Strum Machine IAB.close() called but it was already closed.
default 06:41:41.836173-0800 Strum Machine -[UIApplication __beginBackgroundTaskWithExpirationHandler:]: Will add backgroundTask with taskName: Called by Strum Machine, from -[GCDWebServer _startBackgroundTask], expirationHandler: <__NSMallocBlock__: 0x28131c240>
default 06:41:41.836349-0800 Strum Machine _UIBackgroundTaskInfo *_addBackgroundTask(NSString *__strong, void (^__strong)(void)): Created background task <_UIBackgroundTaskInfo: 0x280771680>: taskID = 0, taskName = Called by Strum Machine, from -[GCDWebServer _startBackgroundTask], creationTime = 2012477 (elapsed = 0). Assertion will be assigned soon
default 06:41:41.836611-0800 Strum Machine _UIBackgroundTaskInfo *_addBackgroundTask(NSString *__strong, void (^__strong)(void))_block_invoke: Creating new assertion since assertion is nil
default 06:41:41.837971-0800 Strum Machine _UIBackgroundTaskInfo *_addBackgroundTask(NSString *__strong, void (^__strong)(void))_block_invoke: Created new assertion <BKSProcessAssertion: 0x283e845a0>
info 06:41:41.838376-0800 Strum Machine Acquiring assertion: <RBSAssertionDescriptor| "Shared Background Assertion 4 for com.strummachine.mobileapp" ID:(null) target:81581>
debug 06:41:41.838452-0800 Strum Machine Adding assertion 32-81581-819012 to dictionary
default 06:41:41.877154-0800 Strum Machine sceneOfRecord: sceneID: sceneID:com.strummachine.mobileapp-default persistentID: CB336D6E-04B1-492F-9085-5DE154C708FC
default 06:41:41.877275-0800 Strum Machine Deactivation reason removed: 12; deactivation reasons: 4128 -> 32; animating application lifecycle event: 1
default 06:41:41.877330-0800 Strum Machine Deactivation reason removed: 5; deactivation reasons: 32 -> 0; animating application lifecycle event: 0
default 06:41:41.877389-0800 Strum Machine 0x105be5100 - [PID=82994, throttler=0x10d14c170] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld'
default 06:41:41.878221-0800 Strum Machine 0x105be5100 - [PID=82994, throttler=0x10d14c170] ProcessThrottler::Activity::invalidate: Ending foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld'
default 06:41:41.884788-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::didNavigateWithNavigationDataShared:
default 06:41:41.886626-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::didCommitLoadForFrame: frameID=3
default 06:41:41.886995-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::didFinishDocumentLoadForFrame: frameID=3
default 06:41:41.891900-0800 Strum Machine 0x104024e18 - [pageProxyID=11, webPageID=12, PID=82994] WebPageProxy::didFinishLoadForFrame: frameID=3
default 06:41:41.891954-0800 Strum Machine 0x105bf9080 - NavigationState will release its process network assertion soon because the page load completed
default 06:41:41.892079-0800 Strum Machine The preference key "AutoHideSplashScreen" is not defined and will default to "TRUE"
default 06:41:42.751935-0800 Strum Machine -[UIApplication _endBackgroundTask:]: Ending background task with UIBackgroundTaskIdentifier: 11
default 06:41:42.752084-0800 Strum Machine -[UIApplication _endBackgroundTask:]: Ending task with identifier 11 and description: <_UIBackgroundTaskInfo: 0x280771680>: taskID = 11, taskName = Called by Strum Machine, from -[GCDWebServer _startBackgroundTask], creationTime = 2012477 (elapsed = 1), _expireHandler: <__NSMallocBlock__: 0x28131c240>
default 06:41:42.752228-0800 Strum Machine -[UIApplication _endBackgroundTask:]_block_invoke: Decrementing reference count for assertion used by background task with identifier 11: <_UIBackgroundTaskInfo: 0x280771680>: taskID = 11, taskName = Called by Strum Machine, from -[GCDWebServer _startBackgroundTask], creationTime = 2012477 (elapsed = 1)
default 06:41:42.752285-0800 Strum Machine -[UIApplication _endBackgroundTask:]_block_invoke: Will invalidate assertion: <BKSProcessAssertion: 0x283e845a0> for task identifier: 11
default 06:41:44.856894-0800 Strum Machine 0x105bf9080 NavigationState is releasing background process assertion because a page load completed
default 06:41:44.857187-0800 Strum Machine 0x105be4680 - [PID=82994, throttler=0x10d14c170] ProcessThrottler::Activity::invalidate: Ending background activity / 'Page Load'
default 06:42:11.528249-0800 Strum Machine Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
default 06:42:11.528434-0800 Strum Machine 0x105bf83c0 - ~ProcessAssertion: Releasing process assertion 'ConnectionTerminationWatchdog' for process with PID=0
Connecting the Safari Web Inspector shows a blank page (<html><head></head><body><body/></html>
) and no Javascript is loaded. Refreshing the page from the Web Inspector has no effect; onReset
is called in my plugin, but that’s about it from the logs. Sentry isn’t catching any exceptions either.
I’ve looked through all the old Github issues that reference opening to a blank screen in Cordova. Most are pretty old and/or seem to differ from what I’m seeing or otherwise not apply. This issue from @Nauzer might be relevant though: Webapp Forced Reload blank page · Issue #94 · meteor/cordova-plugin-meteor-webapp · GitHub
Have any of you seen or heard of this problem in your apps lately? Any idea what might be going on?
Update: I posted this on Github Issues as well:
White screen of death when reopening iOS Cordova app · Issue #11811 · meteor/meteor · GitHub