Extend autoVerify in openLink command to iOS deeplinks to handle "Open in XYZ?" popup
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.
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!
Hi ! Is there any news or workaround for this one ? The popup seems to happen quite inconsistently for me
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
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?
@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.
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"