-
Notifications
You must be signed in to change notification settings - Fork 281
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
Add AppleTV support #2067
base: main
Are you sure you want to change the base?
Add AppleTV support #2067
Conversation
private static let springboardBundleId = "com.apple.springboard" | ||
|
||
#if os(tvOS) | ||
private static let homescreenBundleId = "com.apple.HeadBoard" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On AppleTV the home screen is made up of a process called HeadBoard (the UI and cards) which is layered over another process called PineBoard (the top-right dropdown and background image). We can use the HeadBoard bundleId to allow interacting with cards inside of Studio and we can use PineBoard to get the screen dimensions
case remoteMediaFastForward = "Remote Media Fast Forward" | ||
case RemoteSystemNavigationUp = "Remote System Navigation Up" | ||
case RemoteSystemNavigationDown = "Remote System Navigation Down" | ||
**/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not all of these have bindings on tvOS, will do some more research and remove
Ooh! Very nice would be very helpful for our situation |
Proposed changes
This is a draft for adding AppleTV support to the iOS driver, looking for feedback on the approach. Also the PR is pretty big so happy to split it into some smaller ones if that's preferred.
Feature additions
pressKey
are now available on AppleTV as well. I only included the ones that had a clear mapping to something fromXCUIRemote
Implementation
maestro-ios-xctest-runner
from Storyboard to SwiftUI so iOS and tvOS could share the same XCode target.PressButtonRequest.swift
and passed them through from the iOS driver.maestro-ios-xctest-runner
build script to build separate versions for iOS and tvOS and copy them into the resources folder under anios/
ortvos/
prefix.Limitations
XCUIRemote
mappings (tapOn, swipe for example)launchApp
. Not sure why this is happening, any ideas are appreciatedScreenshots
Testing
Issues fixed
#1515 – Add support for testing tvOS apps