Deep links in AppleWatch

This page describes the procedure to create deep links in iOS. I was able to launch an IOS Companion app (name of the app in my case) using its deep link.

But the same is not working in AppleWatch. This is my plist to register a custom scheme - Companion:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <!-- <key>CFBundleTypeRole</key>
            <string>Viewer</string> -->
            <key>CFBundleURLName</key>
            <string><some unique ID></string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>Companion</string>
            </array>
        </dict>
    </array>
</dict>
</plist>

I have implemented onOpenURL(perform:) to handle app launches using a deep link (url).

var body: some Scene {
    WindowGroup {
        ContentView()
            .onOpenURL(perform: { (link: URL) in
                    
                Log(String(format: "Link = %@", link.absoluteString))

                // Use then deep link
            })
    }
}

In iOS, I tested deep links in two ways:

  1. Wrote the full deep link in Notes app and tapped it.
  2. Created another app called AppLauncher with a Button saying 'Launch using Deep link'.... which when clicked opens the deep link using open(_:options:completionHandler:).

Both the approaches work in iOS, but in watchOS, I can only try 2 because Notes app is not available for AppleWatch. So, I created another watchOS app called AppLauncher, which displays a SwiftUI Button saying 'Launch using Deep link', which when tapped, tries to open the link using openSystemURL(_:). But as mentioned in the documentation (linked earlier),

Opens the specified system URL.

this API only works for links associated with System apps i.e., Apple's call and message apps.

So, how else can I use deep link to launch another app? I believe it's possible to launch an app using its deep link because the info.plist keys required to define a deep link scheme association (CFBundleURLTypes, CFBundleURLSchemes etc) is valid for watchOS too.

Deep links in AppleWatch
 
 
Q