Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NSInternalInconsistencyException upon touching the screen on iOS 13.0 #1120

Closed
ghost opened this issue Aug 25, 2019 · 3 comments
Closed

NSInternalInconsistencyException upon touching the screen on iOS 13.0 #1120

ghost opened this issue Aug 25, 2019 · 3 comments

Comments

@ghost
Copy link

ghost commented Aug 25, 2019

As of iOS 13.0, applications crash with Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: sourceNode' in UIGestureGraphEdge. As far as I can tell, this appears to be because we are creating the root view controller before UIApplicationMain, which violates some invariants in UIKit. This no longer works in iOS 13.0. Deferring initialization of windows and their view controllers until after UIApplicationMain fixes the issue.

@ghost
Copy link
Author

ghost commented Sep 13, 2019

I don't seem to be able to reproduce this anymore on my iPhone 6s after updating to the latest iOS 13.1 beta. Perhaps this has been addressed by Apple? Simulator still crashes however and there hasn't been a new version, so we'll need to wait until a new Simulator runtime is released to see.

@ghost ghost mentioned this issue Sep 28, 2019
7 tasks
@Osspial
Copy link
Contributor

Osspial commented Oct 5, 2019

It looks like they just released the Xcode 11.2 beta. Does that fix this issue in the simulator?

@ghost
Copy link
Author

ghost commented Oct 7, 2019

I can confirm that this is no longer an issue with the iOS 13.2 Simulator runtime.

We probably ought to do something about the iOS situation in the future, but that's going to be a big chunk of work that I'm not quite ready to tackle right now. I feel like we should restructure the entire way EventLoop::run works, so that the callback is not called per-event but instead you get a callback that is called once when the application starts and then you loop over events in that closure as they become available.

This would solve a lot of issues with the iOS backend (namely, being unable to iterate over the list of monitors before Event::NewEvents(StartCause::Init), and I also worry that this same issue might come back to bite us in the future).

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

2 participants