Skip to content

fix(ios): fall back to SpringBoard hierarchy when DockFolderViewService is foreground (iOS 26 iPad)#3269

Merged
Fishbowler merged 1 commit into
mobile-dev-inc:mainfrom
mrvissercb:fix/ipad-ios26-home-hierarchy
Jun 30, 2026
Merged

fix(ios): fall back to SpringBoard hierarchy when DockFolderViewService is foreground (iOS 26 iPad)#3269
Fishbowler merged 1 commit into
mobile-dev-inc:mainfrom
mrvissercb:fix/ipad-ios26-home-hierarchy

Conversation

@mrvissercb

@mrvissercb mrvissercb commented May 8, 2026

Copy link
Copy Markdown
Contributor

In Maestro Studio Desktop (the view hierarchy), on iPad + iOS 26, nothing is clickable on the home screen except the status bar.

It looks like on the home screen, springboard is not the foreground app, it's now com.apple.DocumentManager.DockFolderViewService which has no hierarchy.

This change detects that service and instead falls back to springboard. The end result is you can click the icons on the home screen.

Issue:

(In Maestro Studio Desktop)

ipad-ios26-hierarchy.mp4

Fix:

(In the locally built web view UI)

Screen.Recording.2026-05-08.at.1.02.18.PM.mov

Remaining issues

  • The highlights are completely off in landscape, but that's a larger / separate fix
image

Proposed changes

copilot:summary

Testing

I have manually tested that the home screen / springboard now has an hierarchy associated and is clickable in the home screen.

Issues fixed

@mrvissercb

mrvissercb commented May 8, 2026

Copy link
Copy Markdown
Contributor Author

I don't think I'm using the GH action exact Xcode version, so driver integrity check will fail regardless -- I assume you have an internal process to do this so I'll ignore that failing check.

@mrvissercb mrvissercb force-pushed the fix/ipad-ios26-home-hierarchy branch from fccbd7c to 939ef9a Compare May 8, 2026 17:18
@mrvissercb

Copy link
Copy Markdown
Contributor Author

e2e test failures appear systemic, can anyone confirm?

@Fishbowler Fishbowler force-pushed the fix/ipad-ios26-home-hierarchy branch from 939ef9a to 76515db Compare May 18, 2026 10:38
@mrvissercb

Copy link
Copy Markdown
Contributor Author

Thanks @Fishbowler -- the nudge appears to have fixed the tests 👍

@mrvissercb mrvissercb force-pushed the fix/ipad-ios26-home-hierarchy branch from 76515db to f241c14 Compare May 21, 2026 20:08
@mrvissercb

Copy link
Copy Markdown
Contributor Author

Just updated with main. @amanjeetsingh150 please let me know if there is anything else needed for this. It'll help ipad test / automation function on home screen 👍

@Fishbowler Fishbowler force-pushed the fix/ipad-ios26-home-hierarchy branch 4 times, most recently from cc681b9 to 3048e03 Compare June 18, 2026 10:23
@Fishbowler

Copy link
Copy Markdown
Contributor

Local testing has shown that the problem definitely exists in v2.6.1, and that this resolves it. 🎉

In parallel, I'm also helping with #3273, which is solving a different problem, but would also solve this issue (by always including SpringBoard hierarchy elements).

@mrvissercb

Copy link
Copy Markdown
Contributor Author

Local testing has shown that the problem definitely exists in v2.6.1, and that this resolves it. 🎉

In parallel, I'm also helping with #3273, which is solving a different problem, but would also solve this issue (by always including SpringBoard hierarchy elements).

Nice. Probably worth having both, especially if a flag eventually creeps in to disable the Home Screen hierarchy when another app is foreground.

@Fishbowler Fishbowler force-pushed the fix/ipad-ios26-home-hierarchy branch 5 times, most recently from c5339cb to 913c4fa Compare June 23, 2026 16:58
@Fishbowler Fishbowler force-pushed the fix/ipad-ios26-home-hierarchy branch from 913c4fa to 493b994 Compare June 26, 2026 08:32
@Fishbowler Fishbowler force-pushed the fix/ipad-ios26-home-hierarchy branch from 493b994 to bc17e72 Compare June 30, 2026 12:23
@Fishbowler Fishbowler merged commit 17c83af into mobile-dev-inc:main Jun 30, 2026
16 checks passed
@mrvisser

Copy link
Copy Markdown

Thank you @Fishbowler . Also really appreciate your commitment to keeping the branch up to date with main! 😅

@Fishbowler

Copy link
Copy Markdown
Contributor

Thanks for your contribution and your patience!

The rebase race happens a lot when we're trying to get stuff ready to merge. We've got rules around not merging out-of-date branches, but our CI pipeline is pretty intense, for obvious reasons. By the time you've noticed it's finished and green, another PR has merged and the cycle begins again :D

@mrvissercb

Copy link
Copy Markdown
Contributor Author

@Fishbowler ah I figured. Merge queues might help if fits your org.

Thanks again!

Borealin added a commit to Entertech/Maestro that referenced this pull request Jul 3, 2026
… fork

Brings Android first-party Unicode input (mobile-dev-inc#3211), iOS upside-down orientation fix
(mobile-dev-inc#3102), SpringBoard-hierarchy fallback (mobile-dev-inc#3269), orchestra no-swallow-exceptions
(mobile-dev-inc#3377), typed ArtifactManifest logging, and the AndroidDeviceConnection refactor.

Resolved 2 conflicts (both iOS, ours vs upstream):
- ScreenSizeHelper.swift: took upstream's orientationAwarePoint (effectiveWidth/Height
  upside-down fix + consolidated default:) — behaviorally superset of ours; our
  actualOrientation() faceUp/faceDown->portrait fallback is outside the conflict, kept.
- IOSDriver.kt: kept our runtime-configurable screenSettleTimeoutMs() (used at :519)
  AND upstream's new LOG_FLUSH_TIMEOUT_SECONDS (used at :593); dropped the now-dead
  SCREEN_SETTLE_TIMEOUT_MS const (0 usages). Our backPress() is untouched by upstream.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

3 participants