Skip to content

Domain Association

The documentation below is just a quick setup guide so that you can quickly integrate the Domain Association capability of the ImaginationOverflow Universal Deep Linking plugin if you wish to know more about this feature you can consult the official documentation:

Note that the Universal Deep Linking plugin already handles all registration and configuration to support Domain Association, you won't need to change any configurations on your manifest or configuration files on your Unity project.

The plugin does not, however, create or configure the required files that you need to host on your website, nor the dev account configurations required to enables this capability on some platforms.

The following configuration steps are only required if you wish to use the Domain Association feature, if you are only using Deep Linking, you can skip these steps.

The first thing you will need to do is activate the Associated Domains service on your app id:

  1. Login on your Apple developer account in https://developer.apple.com/
  2. In Identifiers -> App ID's, create or edit the app you wish to add Domain Association.
  3. Check the Associated Domains checkbox
  4. Save the changes

After you added the Associated Domain service, your page should look like the following:

appid.png

From the above image, set-aside the Prefix and the ID. In Sudoku Zenkai case the Prefix is 5DVD99WQGR and the ID com.imaginationoverflow.com.sudokuzenkai.

Now you need to create a json file named apple-app-site-association (no extension) with the following contents:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "[PREFIX].[ID]",
                "paths": [ "*"]
            }
        ]
    }
}

With the file created you need to upload it to your website. The file should be accessible on either, the root or the .well-known directory:

https://<your_domain>/.well-known/apple-app-site-association

or

https://<your_domain>/apple-app-site-association

You can check Sudoku Zenkai and Loyca (other of our projects) association files on: http://sudokuzenkai.imaginationoverflow.com/apple-app-site-association

http://loyca.imaginationoverflow.com/.well-known/apple-app-site-association

With the above configuration, you are telling the iOS that all links to your website should be opened in your game, you may wish to configure only a few paths, to do that you can check the official documentation.

Finally, your site must be using HTTPS, if you don't have it this feature won't work!

The first thing you need to configure the Domain Association is a package name, to configure that on your Unity Project click on Edit -> Project Settings -> Player. In the Android options you will find the Package Name setting:

droidpackagename.png

For more info on how to choose a package name checkout Google Documentation.

The second thing you need to have is a keystore, you need to sign your game before submitting it to the store, you can get more info on Google documentation about this topic.

After creating your keystore, you need to get SHA-256 certificate fingerprint, to do that just run the following command on your terminal (note the keytool comes with the Java SDK) :

keytool -list -v -keystore mystorekeystore.keystore

Running this command should yield something similar to the following image: keystool.png

With the package name and SHA-256 certificate fingerprint, you can finally create the digital asset link file, the filename should be assetlinks.json

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "[MY_APP_PACKAGE_NAME]",
    "sha256_cert_fingerprints": ["[SHA256_FINGERPRINT_FROM_KEYTOOL]"]
  }
}]
Finally you need to host the file on your website, it needs to be available on the root or .well-known directory.

https://<your_domain>/.well-known/assetlinks.json

or

https://<your_domain>/assetlinks.json

You can check Sudoku Zenkai and Loyca digital asset link on the following links:

https://sudokuzenkai.imaginationoverflow.com/assetlinks.json

https://loyca.imaginationoverflow.com/.well-known/assetlinks.json

These files have optional configurations that you can use, for more info about these configurations check the official documentation.

Note: You can get the production SHA-256 certificate fingerprint on your Google Play Console account, just navigate to Release Management -> App signing and

Windows UWP - Uri Handling

To enable Domain Association on UWP you need to reserve a game name on the Windows Dev Center dashboard, to do that you can follow the oficial documentation.

After you reserve your game name, you will need to go into the game settings under the Windows Dev Center dashboard, App Management -> App identity:

uwppfn.png

From there you can check your game Package Family Name, just as seen in the picture above.

With it, you need to create a json file named windows-app-web-link (no extension) and upload it to your website, under the root or .well-know directory.

[{
  "packageFamilyName": "[YOUR_PACKAGE_FAMILY_NAME]",
  "paths": [ "*" ],
  "excludePaths" : [ ]
 }] 

For some examples check out Sudoku Zenkai and Loyca windows-app-web-link files:

https://sudokuzenkai.imaginationoverflow.com/windows-app-web-link

https://loyca.imaginationoverflow.com/windows-app-web-link

You can set up other configurations on windows-app-web-link for more info check the official documentation.

Finally, it's mandatory that your website supports HTTPS, because the windows will make an HTTPS request to try to retrieve the link.

Notes

  • The domain association feature only works for iOS, Android, and Windows (UWP).
  • At ImaginationOverflow we are using Cloud Flare free tier service to enable HTTPS on all our domains.