Skip to main content

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.:
      applinks:xxx.linkhive.tech
      or your branded custom domain.
    • Your app will expect an apple-app-site-association file hosted at:
      https://xxx.linkhive.tech/.well-known/apple-app-site-association  
      https://yourbrandeddomain.com/.well-known/apple-app-site-association
      LinkHive automatically hosts and updates this file once you create the iOS platform in the dashboard, so no manual hosting is needed.
  • 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-association file.

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.xml inside 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 in AndroidManifest.xml to 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.

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.

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: