Skip to content

[Devicelab] Add physical device integration tests for iOS Universal Links (Deep Linking) #189200

Open

Description

@okorohelijah

Currently, there are no integration tests in Flutter CI that verify authentic iOS Universal Link (Deep Link) routing on physical devices. We manually have to test deep link behavior when OS updates roll out, which leaves us highly vulnerable to regressions.

Rough Idea

We already host an AASA file at https://flutter-dashboard.appspot.com/.well-known/apple-app-site-association which whitelists com.google.experimental0.dev under the Team ID.

We can utilize this existing infrastructure to build a Devicelab test on a physical Mac_ios bot:

Create a new Devicelab task on mac_ios bot and include apple_signing CIPD dependency

dependencies: >
  [
    {"dependency": "apple_signing", "version": "version:to_2026"}
  ]

add a script to dev/devicelab/bin/tasks/ to update the PRODUCT_BUNDLE_IDENTIFIER to com.google.experimental0.dev, and inject an Entitlements file containing the applinks:flutter-dashboard.appspot.com Associated Domain.

For execution we can install the app with xcrun devicectl device install app --device <id> --source <path> and launch via the universal link xcrun devicectl device process launch --device <id> --url https://flutter-dashboard.appspot.com/invalid_route

Activity

  1. okorohelijah commented on Jul 9, 2026

    @okorohelijah
    ContributorAuthor

    We can also add one for simulators, that way the simulator test runs in pre submit and the physical runs in post-submit since it takes more time

  2. added
    P2Important issues not at the top of the work list
    triaged-iosTriaged by iOS platform team
    on Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listinfra: device labInfrastructure device lab problemsteam-iosOwned by iOS platform teamtriaged-iosTriaged by iOS platform team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions