Skip to content

Integration of "Universal Links" to open MakeCode projects directly within app on iOS #10611

Open
@joernalraun

Description

@joernalraun

Feature Request: Support for Universal Links on iOS for makecode.calliope.cc

Summary

To significantly improve the user experience on iOS—especially when interacting with shared MakeCode project links for the Calliope mini—we propose full support for Universal Links. This would allow links to makecode.calliope.cc to open directly in the Calliope iOS app instead of in the browser, enabling a seamless workflow for flashing projects to the Calliope mini.

Current Limitation

Currently, when a user clicks a MakeCode link (e.g., makecode.calliope.cc/abc123) on iOS, it opens in Safari. If the Calliope iOS app is installed, the ideal behavior would be to open the app directly and load the project.

Goal

Implement Universal Links so that URLs pointing to MakeCode projects automatically open in the Calliope iOS app when installed.

What’s Needed

To enable this, Apple requires an apple-app-site-association (AASA) file to be served from the following location:

https://makecode.calliope.cc/.well-known/apple-app-site-association

Example Content of the AASA File

{
  "applinks": {
    "details": [
      {
        "appIDs": ["TEAMID.APPBUNDLEID", "TEAMID.APPBUNDLEIDDEBUG"],
        "components": [
          {
            "/": "/*",
            "comment": "We match any path on the (sub)domain, as all paths are valid MakeCode IDs"
          }
        ]
      }
    ]
  }
}
  • TEAMID: Found in the Apple Developer Account.
  • APPBUNDLEID and APPBUNDLEIDDEBUG: Identifiers for the release and debug versions of the Calliope iOS app.
  • These values can be sent by email or added to the release build.

Benefits

  • Seamless UX: Opens shared MakeCode project links directly in the app.
  • Improved Accessibility: Flashing from browser to Calliope mini via app becomes instant and intuitive.
  • Testing Ready: This feature is already implemented in the TestFlight version and can be tested as soon as the file is correctly served.

Thanks!

@abchatra @eanders-ms same has also been addressed here: microsoft/pxt-calliope#326

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions