What are the differences between the regular and the pro version?¶
The pro version includes the source code and contains the Windows automatic launcher system which enables your projects to mimic mobile deep link control (activation after the app is launched) out of the box without a single line of code. This feature also enable direct deep linking testing on the Unity editor on Windows (Mac support coming soon).
How to do redirect to store when app/game isn't installed?¶
To achieve the redirect to store when the app isn’t installed, you need two things, a website, and an app with Domain Association and deep linking. When the user clicks on a web link if the app is installed it will automatically open the app. If the app isn’t installed, or the user chooses to open the link in the browser (both android and ios allow such choice) you can either:
- On your website automatically redirect the user to the store (not checking if the app is installed or not)
Try to check if the app is installed, to achieve it you will need to:
a) Try to redirect the user to your app deep link (myapp://), if the user has the app installed, it will either open automatically or ask the user if he wants to open it
b) If it fails (e.g use a 3 seconds timeout), redirect to the store
This deep link behaviour can vary depending on the target platform and browser!
My domain association isn't working.¶
There are a couple of reasons why domain association can fail:
- Your website is not https, both Google and Apple require your website to be https
- Your apple-app-site-association (AASA) or assetlinks file isn't being served without redirects. Vendors require that your configuration file to be served without any redirects, in order to test this you can use any online http tool (e.g reqbin.com)
- Your AASA file has incorrect appID configuration, double check it.
- Your assetlinks file has incorrect sha256_cert_fingerprints or package_name configuration.
- Your plugin integration is malfunctioning (although rare), to ensure that everything is working as expected, configure the plugin with a deep link and test it on an device.
My app opens when I click a link/web link but nothing happens.¶
The best way to double check everything, is run our demo scene on your target device and see if the activations appear as expected. In order to do this simply drag our scene to the Build Settings -> Scenes in Build, and place the Demo scene in the first position. This step is important since it ensures that the integration is working as expected. Possible issues that can cause this on your code are:
- The GameObject where you are making the LinkActivated registration is destroyed before any activation occurrs. We suggest you to do this configurations on DontDestroyOnLoad GameObjects.
- The GameObject where you are making the LinkActivated registration is yet to be created, to ensure this does not happen, place the event registration at your application boot phase. (Do note that the plugin caches the last request, so you can delay the activation as much as you wish).
Your code is throwing an exception on the LinkActivated handler and it's failing silently, the plugin protects the handler activation with a try/catch block to avoid crashes, double check your logs, common issues we found throughout the years are:
a) Trying to access a query string that doesn't exist.
b) The GameObject not being ready to process a LinkActivated handler call, note that the plugin can fire the activation at the moment you register an handler if there is any requests cached.
My Mac build isn't working, module/library not found on the logs¶
If you are building via xcode, double check that the UniversalDeepLink.framework is present on the Build Phases -> Link Binary with Libraries. If not extract the zip under Assets\Plugins\ImaginationOverflow\UniversalDeepLinking\libs\Standalone\UniversalDeepLink.framework.zip to your xcode solution folder and add it to the linked libraries. Although rare this can happen on recently released xcode versions or when something fails(e.g missing permission) in the plugin automatic process.
If you are building directly on Unity on a Mac, it's probably an optool issue (the tool we use to inject the library on your app),Assets\Plugins\ImaginationOverflow\UniversalDeepLinking\libs\Tools\optool. Ensure that the utility has execution permissions (on a terminal chmod +x optool) and on newer macOs versions follow this guide to allow unidentified apps to run
Signing on macOS¶
Our framework isn't signed for security and compatability reasons, so when you are submitting your project for apple store will be required to sign the UniversalDeepLink.framework.
My deep link, domain association isn't working on app X¶
The plugin works by registering your apps, on the target operating system, as a way to process some links (deep links or web links), there are cases of apps that open links internally on custom web views. These web views resolve any links internally not asking the target operating system on the best app to handle them. On these situations the plugin won't work as expected because the app X is bypassing the contract that allow deep linking and domain association to exist. Unfortunately, neither you or we can do anything regarding these situations.
Change the "Open with IO Launcher" on Windows Standalone with launcher¶
When you open a deep link on a Windows standalone target, the browsers will use the metadata of the launcher to prompt the user if he wants to open your product. For example, in chrome it will prompt
Open IO Launcher. To change this prompt you have two alternatives:
- Use the launcher source included in the plugin to make a new launcher with your custom metadata.
- Use the Resource Hacker tool and change the File description property.
After you changed the launcher by either one of the above options, make a new build to a new target folder or simply change your target folder name. This will force the update of the launcher metadata.