How to Set Up Your Platforms
1. Web Platform
No special setup is needed for web links. Simply:
- Go to your Admin Dashboard
- Create a Web platform entry
- Start generating dynamic links that work across all browsers immediately.
2. iOS Platform
To enable Universal Links on iOS, follow these steps:
-
Complete Apple's Universal Links setup on your app:
- Configure your app's Associated Domains entitlement by adding your domain, e.g.:
or your branded custom domain.
applinks:xxx.linkhive.tech - Your app will expect an
apple-app-site-associationfile hosted at:LinkHive automatically hosts and updates this file once you create the iOS platform in the dashboard, so no manual hosting is needed.https://xxx.linkhive.tech/.well-known/apple-app-site-association
https://yourbrandeddomain.com/.well-known/apple-app-site-association
- Configure your app's Associated Domains entitlement by adding your domain, e.g.:
-
In your Admin Dashboard:
- Add a new iOS platform.
- Enter your app's Bundle ID and Team ID.
⚠️ Note: It can sometimes take up to 24 hours for Apple to fully recognize and propagate the
apple-app-site-associationfile.
Once configured, your dynamic links will open your app seamlessly on iOS devices.
3. Android Platform
Configure AndroidManifest.xml
To enable Android App Links, do the following:
-
Add the following intent filters to your app's
AndroidManifest.xmlinside the activity that will handle the links:<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="xxx.linkhive.tech" />
<!-- For branded domains, replace host accordingly -->
</intent-filter>
Important:
Since this plugin uses third-party deep linking libraries (e.g.,app_links), make sure to add the following inside your<activity>tag inAndroidManifest.xmlto disable Flutter's native deep linking:<meta-data android:name="flutter_deeplinking_enabled" android:value="false"/>This prevents conflicts between native Flutter deep linking and your plugin.
assetlinks.json
Your app will verify domain ownership by fetching the assetlinks.json file from:
https://xxx.linkhive.tech/.well-known/assetlinks.json
https://yourbrandeddomain.com/.well-known/assetlinks.json
The assetlinks.json file is automatically hosted by the LinkHive.
It contains your app's package name and SHA256 fingerprint to verify domain ownership.
Example content:
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.your_app_package",
"sha256_cert_fingerprints": ["YOUR_SHA256_CERT_FINGERPRINT"]
}
}
]
Note: Ensure your app’s package name and SHA256 fingerprint are correctly configured in LinkHive dashboard.
LinkHive automatically hosts and updates this file once you create the Android platform in the dashboard, so you do not need to manually upload or configure it.
- In your Admin Dashboard:
- Add a new Android platform.
- Enter your app's Package Name and SHA-256 Certificate Fingerprint.
⚠️ Note: Android domain verification is usually immediate, but this may vary depending on Google Play Services and device cache.
Once done, your links will open directly in your Android app.
Verify Domain Link
To check if your app’s domain verification is successful, run:
adb shell pm get-app-links com.example.your_app_package
Look for a line like:
Domain verification state: your.domain.com: verified
If the domain shows verified, your setup is correct.
Test Deep Link with adb
Use the following command to simulate opening a deep link on your Android device or emulator:
adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://subdomain.linkhive.tech/shortCode"
Replace the URL with your actual deep link. If your app is properly configured, this command will open your app directly to the linked content.
LinkHive Deep Linking Setup
After your app is registered and the necessary Universal Links (iOS) or App Links (Android) intent filters are configured, LinkHive automatically handles all routing and link resolution for your dynamic links.
No SDK installation or extra dependencies are required to support basic deep linking.
For detailed platform setup, refer to: