maestro icon indicating copy to clipboard operation
maestro copied to clipboard

Extend autoVerify in openLink command to iOS deeplinks to handle "Open in XYZ?" popup

Open kunalverma25 opened this issue 2 years ago • 6 comments

When we run the command

- openLink: iOSAppURI://deeplinkParams
    autoVerify:true

Many times on iOS the popup of "Open in Your iOS App?" pops up.

Currently Maestro does not handle this popup and devs need to write a conditional flow to tap Open and proceed further.

It'll be great if the autoVerify parameter (which kinda handles the same popup in Android) be extended for iOS to handle this popup as well.

kunalverma25 avatar Mar 24 '23 00:03 kunalverma25

Hello! I wanted to reach out to see if there's any update on extending the autoVerify feature to handle the 'Open in Your iOS App?' popup. Knowing if this is on the roadmap and any potential ETA would be fantastic!

daniel-benet avatar Nov 22 '23 13:11 daniel-benet

Hi ! Is there any news or workaround for this one ? The popup seems to happen quite inconsistently for me

Antho2407 avatar Jul 17 '24 08:07 Antho2407

For me maestro driver does not seem to be able to interact with this native dialog.

open_deep_link.yaml

appId: ...
---
- openLink:
      link: ${LINK}
- runFlow:
    commands:
        - tapOn: 'Open'
    when: 
      visible: '.*Open in.*'

This does not do the trick, although the condition is true, the tapOn does not do anything.

Even from maestro studio, simply executing tapOn: "Cancel" does not close the dialog. Also do not work with the app uninstall dialog.

Is this supposed to work as the aforementioned workaround "devs need to write a conditional flow to tap Open", or am I missing something?

EDIT: Even if I experiment with

- tapOn:
    point: 50%, 50% # and other numbers

Maestro still does not interact with the os dialog

harkairt avatar Jan 05 '25 20:01 harkairt

What would a simctl or similar command look like to configure the autoverify behaviour? i.e. Is there a setting in iOS to enable this?

Fishbowler avatar Feb 11 '25 22:02 Fishbowler

@harkairt

I've had success doing what you're trying to do on iOS 18 Simulators

- runFlow:
    when:
      visible:
        text: Open in “Cool App”?
    commands:
      - tapOn: 'Open'

On the more general note, whilst autoVerify sounds like the right label, what it does on Android is a bit different (where there are multiple apps wanting to handle the same Universal Link).

If anyone's got an answer to the implementation question above, I'll happily take a look at what this might take to do.

Fishbowler avatar Nov 27 '25 21:11 Fishbowler

An alternative that worked for me is to manually add it to approval list before running the flow, so it doesn't ask

/usr/libexec/PlistBuddy ~/Library/Developer/CoreSimulator/Devices/${DEVICE_ID}/data/Library/Preferences/com.apple.launchservices.schemeapproval.plist -c "add com.apple.CoreSimulator.CoreSimulatorBridge-->yourscheme string your.bundle.identifier"

satya164 avatar Nov 27 '25 23:11 satya164