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

Xcode 16 simulator fixes #10149

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from
Draft

Xcode 16 simulator fixes #10149

wants to merge 7 commits into from

Conversation

oskirby
Copy link
Collaborator

@oskirby oskirby commented Dec 23, 2024

Description

The iOS simulator doesn't currently run because the network extension will fail to start. To work around it, we can make use of the mock daemon as a substitute. However, trying to get this working required a handful of fixes specific for iOS. In particular:

  • Check for the simulation environment and create the mock daemon.
  • Fix a bug in the local socket disconnection handling.
  • Workaround a pathname limitation in iOS UNIX socket creation.
  • Refactor mobile onboarding into a controller state, and then implement it in the Mock daemon.

Reference

Split from #10092

Checklist

  • My code follows the style guidelines for this project
  • I have not added any packages that contain high risk or unknown licenses (GPL, LGPL, MPL, etc. consult with DevOps if in question)
  • I have performed a self review of my own code
  • I have commented my code PARTICULARLY in hard to understand areas
  • I have added thorough tests where needed

oskirby and others added 7 commits December 23, 2024 10:54
This seems to be a bug in the daemon recovery logic. The initialization
steps starts with a QLocalSocket::abort() to clear the socket state and
this can sometimes generate a disconnect signal, treating disconnection
as an error can result in an infinite loop.
When running on mobile, we need to support a speculative onboarding
connection in the controller. This is a special case handled in the
iOS and Android controllers.

To try and generalize this, lets add an onboarding state and reason
to the controller and pass it down to the local-socket based daemons
so that they can setup permissions and emit a disconnection to end
the onboarding.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants