Android App Links

Overview

Branch makes it simple to enable Android App Links all while greatly improving on them, offering full attribution, supporting edge cases where Android App Links fail (common) and allowing you to deep link when the user doesn't have your app installed. Note that Android App Links only work on Android 6+. Don't worry, Branch will handle all the other edge cases.

Setup

Generate signing certificate fingerprint

Start by generating a SHA256 fingerprint of your app's signing certificate.

  1. Navigate to your keystore file. This is the file that you use to build the debug and production version of your APK file before deploying it.
  2. Run this command on it to generate the fingerprint: keytool -list -v -keystore my-release-key.keystore
  3. You'll see a value like 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 come out the other end. Copy this.
  1. Head to the Link Settings page on the Branch dashboard.
  2. Toggle the Enable App Links checkbox in the Android section.
  3. Paste the copied fingerprint value into the SHA256 Cert Fingerprints field that appears. image
  4. Scroll down and click Save.

Using multiple fingerprints

You can insert both your debug and production fingerprints for testing. Simply separate them with a comma.

Add Intent Filter to Manifest

  1. Go to the Link Settings page on the dashboard.
  2. Scroll down to the Link Domain area.
  3. Copy your domain name. image
  4. Choose the Activity you want to open up when a link is clicked. This is typically your SplashActivity or a BaseActivity that all other activities inherit from (and likely the same one you selected in the SDK integration guide).
  5. Inside your AndroidManifest.xml, locate where the selected Activity is defined.
  6. Within the Activity definition, insert the intent filter provided below (making sure that xxxx matches the subdomain prefix you've been assigned or selected for yourself). Be sure to add this as its own separate intent filter.
<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="xxxx.app.link" />
    <data android:scheme="https" android:host="xxxx-alternate.app.link" />
    <data android:scheme="https" android:host="xxxx.test-app.link" />
    <data android:scheme="https" android:host="xxxx-alternate.test-app.link" />
</intent-filter>

Using a custom domain or subdomain?

If you use a custom domain or subdomain for your Branch links, you should also add an entry for:

<data android:scheme="https" android:host="mycustomdomainorsubdomain" />

Comments