Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS deep link refresh #1225

Open
wants to merge 27 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
title: Configure deep link settings
description: Configure deep link settings for your app
slug: en/sdk/ios/v4/features/deep-links/configure-deep-link-settings
sidebar-position: 1
versions:
- label: v5
value: v5
default: true
- label: v4
value: v4
redirects:
v5: /en/sdk/ios/features/deep-links/configure-deep-link-settings
---

<br />
## Create an app

[Create an app](https://help.adjust.com/en/article/app-setup) in the Adjust dashboard.

Please note that the Adjust dashboard only supports one bundle ID (`com.example.app`) and app scheme (`example://`) for each app. If your app uses different bundle IDs and/or app schemes for your release and debug builds, create a separate debug app.

## Add iOS platform

Add iOS in the platform settings for your app. This step requires entering the bundle ID. If you're not sure of the bundle ID for your app build, enter a temporary value (`com.example.app`) to save the platform settings. Follow the rest of this guide to collect all required data points, then return to platform settings in the dashboard to finish the configuration.

<br />
## Set up a branded domain

In the Adjust dashboard, [set up a branded domain](https://help.adjust.com/en/article/set-up-branded-domain) using Adjust's go.link domain (for example: `brandname.go.link`).

If your iOS app and Android app use separate apps in Adjust, ensure that you select the same branded domain (`brandname.go.link`) for both apps in the Adjust dashboard.

If you use separate apps for release and debug builds, create a separate branded domain for your debug app (`brandnamedebug.go.link`). If your debug apps use separate apps for iOS and Android in Adjust, ensure that you also select this same branded domain for both debug apps in the Adjust dashboard.

Make note of your branded domains to configure in Xcode in the next section.

<br />
## Configure settings in Xcode
<br />
### Configure universal links

1. Open your Xcode project.
2. In the navigator pane, select the project name to access the project settings.
3. In the project settings, under **Targets**, select the appropriate target (usually your app's name).
4. Select the **Signing & Capabilities** tab.
5. Complete these steps for both the **Release** and **Debug** sub-tabs:

- Make note of the value in the **Bundle Identifier** field. This is your app's bundle ID ("Release Bundle ID" or "Debug Bundle ID," respectively), which you need to configure in the iOS platform settings in the Adjust dashboard.
- In the **Associated Domains** section, add an entry for each of your branded domains. For the example domain `brandname.go.link`, here is the required entry:

`applinks:brandname.go.link`

**Troubleshoot missing or problematic Associated Domains settings**

- If you don't see the **Associated Domains** section you might need to enable it first:
1. Next to the **Release** or **Debug** sub-tab (wherever it's missing), click **+ Capability**.
2. Search for "Associated Domains" and select it.
- If you get an error message, such as "Provisioning profile \{profile_name\} doesn't support the Associated Domains capability" when trying to enable Associated Domains, your provisioning profile likely needs to be updated:
- For automatic signing, make sure "Automatically manage signing" is selected at the top of the Signing & Capabilities page.
- For manual signing:
1. Go to the Apple Developer portal and [enable the Associated Domains capability](https://developer.apple.com/help/account/manage-identifiers/enable-app-capabilities) for your app.
2. [Download and import](https://help.apple.com/xcode/mac/current/#/dev1bf96f17e) the updated provisioning profile into Xcode.

### Retrieve or configure app scheme

App scheme is required for certain use cases where iOS doesn’t support universal links. You can reuse an existing app scheme for Adjust deep linking.

1. In the Xcode navigator pane, select the project name to access the project settings.
2. Under Targets, select the appropriate target (usually your app’s name).
3. Select the **Info** tab.
4. Expand the **URL Types** section.

If your app already has an app scheme, there will be URL Type entries, each of which has a single value for **URL Schemes**. Use the table below to determine your app schemes based on your URL Types configuration. Make note of the app schemes to configure them in the Adjust dashboard later.

| **URL Schemes** field | App Scheme |
| ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Static value, such as `example` | `example://` is the "Release App Scheme" |
| Static values, such as `example`, `exampleDebug` in separate URL Types entries | `example://` is the "Release App Scheme"<br />`exampleDebug://` is the "Debug App Scheme" |
| Dynamic build setting variable, such as `$(APP_SCHEME)` | Go to **Build Settings** tab -> search for variable name, such as "APP_SCHEME" -> values for Release and Debug are the "Release App Scheme" and "Debug App Scheme," respectively |

If you need to create an app scheme, follow these steps:

- Select the **+** button to add a new URL Type.
- Fill in the following fields:
- **Identifier**: `$(PRODUCT_BUNDLE_IDENTIFIER)`
- **Role**: Editor
- **URL Schemes**: Enter your desired app scheme value (enter `example`, not `example://`). Don't use `http`, `https`, or reserved iOS schemes like `mailto`, `tel`, `sms`, or `facetime`. Entering a static value here will create a single app scheme used for both release and debug builds.
- Once created, make note of the app scheme for configuration in the Adjust dashboard later.

<br />
## Retrieve App ID Prefix from Apple Developer Portal

1. Log into the [Apple Developer portal](https://developer.apple.com/account/).
2. Under **Certificates, IDs & Profiles**, select **Identifiers**.
3. Select your app.
4. Near the top of the page, make note of the **App ID Prefix** to configure in the Adjust dashboard in the next section.
<br />

## Finish configuring iOS platform settings

In the Adjust dashboard, finish configuring [iOS platform settings](https://help.adjust.com/en/article/platforms-ios-android-amazon-microsoft) for your apps using the below data points that you collected.

| Data Point | Example | Requirement |
| ------------------ | ----------------- | ------------------------------------------------------------------ |
| Release Bundle ID | com.example.app | Required. |
| Debug Bundle ID | com.example.debug | Required if Debug Bundle ID is different than Release Bundle ID. |
| Release App Scheme | example:// | Required for use cases where iOS doesn't support universal links. |
| Debug App Scheme | exampleDebug:// | Required if Debug App Scheme is different than Release App Scheme. |
| App ID Prefix | ABCDE12345 | Required. |
98 changes: 0 additions & 98 deletions src/content/docs/sdk/ios/v4/features/deep-links/data-points.mdx

This file was deleted.

55 changes: 0 additions & 55 deletions src/content/docs/sdk/ios/v4/features/deep-links/deep-link.mdx

This file was deleted.

Loading