iOS
SDK quickstart
This quickstart takes you from a new Ferry project to a link that routes inside your app.
Before you begin
You need:
- An iOS, Android, Flutter, or React Native app.
- A Ferry account and project.
- Your app’s bundle ID or Android package name.
- At least one store destination and a web fallback URL.
-
Create a project
In the Ferry dashboard, create a project for one app. Select the project’s analytics timezone, then add the app identifiers and destinations Ferry should use when the app is not installed.
-
Claim a link domain
Claim a shared hostname such as
acme.feryl.io, or connect one custom hostname such asgo.acme.com.Each hostname belongs to one Ferry project. Ferry uses that project to publish the platform association files and choose the correct redirect behavior.
-
Copy the public project key
Copy the
pk_key for the project. This key is intentionally safe to ship in the app and is the only credential a Ferry SDK accepts.Never add an
sk_key to application code, mobile configuration, or a bundled environment file. -
Add your platform SDK
Choose the guide for your app:
Android
Flutter
React Native
-
Register your link handler
Every SDK exposes one listener for both direct and deferred links. Register it early and route using the customer-defined
datapayload.Ferry link receiveddata.screen = "product"data.product_id = "sku_123"isDeferred = false or trueYour routeropen product "sku_123" -
Connect the app to the domain
iOS requires the Associated Domains entitlement. Android requires an
autoVerifyApp Links intent filter. Flutter and React Native still require the corresponding native platform configuration. -
Create and open a test link
In the dashboard, create a link with a payload such as:
{"data": {"screen": "product","product_id": "sku_123"}}Open the generated
https://link on a physical device. Confirm that an installed app opens the expected screen. -
Test a fresh installation
Delete the app, open the same Ferry link, install the app from its store destination, then launch it. The same link listener should receive a link with
isDeferredset totruewhen Ferry finds a match.
Success checklist
- An installed-app link opens the correct screen.
- A fresh installation receives the intended payload when a match is available.
- The app has only a
pk_public key. - The project dashboard receives a link open.
- Optional login, signup, and purchase events appear under the originating link.
Next, read link payloads before defining production routes.