iOS 15 DualSense is opening App Library on PS button long press

I'm currently beta testing my app on TestFlight and some users reported a problem with the DualSense controller. It seems on iOS 15 a long press on the PS Button of the controller is opening the App Library and I don't receive a callback via the valueChangedHandler function. The App library which will be opened looks like this

This is how I handle all controller inputs:

func handleController(controller: GCController) {
    controller.extendedGamepad?.valueChangedHandler = { [weak self] (gamepad: GCExtendedGamepad, element: GCControllerElement) in
        guard let self = self else {
            return
        }
        // no feedback received when performing a long press on the PS button
}

Is there any way to suppress this behavior? Sony's PS Remote Play app somehow manages to suppress it, but I don't know how, nor can I find anything in Apple's official API documentation.

  • Edit: Seems this problem only occurs on iPads, on iPhones this problem doesn't exist. Is there some API or anything on iPads to suppress this behaviour? I assume the most majority of users don't want to open the App Library in the middle of the game.

Add a Comment

Accepted Reply

Hi grill2010

Your application can disable the home button long press gesture by setting the preferredSystemGestureState of the home button element to GCSystemGestureStateDisabled.

controller.physicalInputProfile.buttons[GCInputButtonHome].preferredSystemGestureState = GCSystemGestureStateDisabled;
  • Awesome that worked!!! Thank you so much for your help

  • Bad news this works on iOS but not on tvOS. On tvOS the PS button still acts as Home button which is annoying when you get kicked out from the app during a game session. How can this be avoided on tvOS?

Add a Comment

Replies

Hi grill2010

Your application can disable the home button long press gesture by setting the preferredSystemGestureState of the home button element to GCSystemGestureStateDisabled.

controller.physicalInputProfile.buttons[GCInputButtonHome].preferredSystemGestureState = GCSystemGestureStateDisabled;
  • Awesome that worked!!! Thank you so much for your help

  • Bad news this works on iOS but not on tvOS. On tvOS the PS button still acts as Home button which is annoying when you get kicked out from the app during a game session. How can this be avoided on tvOS?

Add a Comment