Remplacer Firebase Dynamic Links : guide de migration vers Flinku
Google a fermé Firebase Dynamic Links le 25 août 2025. Les liens page.link et les domaines personnalisés FDL ne fonctionnent plus, et il n'est plus possible d'en créer. Si votre application utilisait FDL pour l'onboarding, le parrainage ou vos campagnes, ces parcours sont cassés.
Ce guide explique comment remplacer Firebase Dynamic Links par Flinku, avec des SDK pour Flutter, iOS, Android et React Native. Le code ci-dessous correspond aux versions actuelles des SDK.
Ce que faisait Firebase Dynamic Links
Un lien FDL faisait quatre choses :
- Ouvrir un écran précis de votre application si elle était installée.
- Envoyer l'utilisateur vers l'App Store ou le Play Store sinon.
- Retrouver le lien d'origine après l'installation (deep linking différé).
- Fonctionner sur iOS, Android et le web avec une seule URL.
Flinku couvre ces quatre cas. Chaque projet reçoit un sous domaine votreapp.flku.dev, et Flinku sert automatiquement les fichiers apple-app-site-association et assetlinks.json nécessaires aux Universal Links et aux App Links.
Étape 1 : créer votre projet Flinku
- Créez un compte gratuit sur app.flinku.dev, sans carte bancaire.
- Créez un projet et renseignez votre bundle ID et votre Team ID iOS, ainsi que le nom de package Android et son empreinte SHA256. Si vous utilisez Play App Signing, prenez l'empreinte affichée dans la Play Console, section App signing.
- Notez l'URL de votre projet, par exemple
https://votreapp.flku.dev.
Étape 2 : convertir vos anciens liens
L'outil de migration sur app.flinku.dev/migrate accepte vos URL Firebase Dynamic Links et les convertit en liens Flinku, avec leurs destinations et leurs paramètres.
Étape 3 : remplacer le SDK
Retirez le SDK Firebase Dynamic Links de votre application, puis appelez configure au démarrage et match au premier lancement. match renvoie le lien sur lequel l'utilisateur a cliqué avant d'installer l'application, avec ses paramètres.
Flutter
dependencies:
flinku_sdk: ^0.7.3
import 'package:flinku_sdk/flinku_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
Flinku.configure(baseUrl: 'https://votreapp.flku.dev');
runApp(const MyApp());
}
// Dans initState de votre premier écran
final link = await Flinku.match();
if (link != null) {
final promo = link.params?['promo'];
Navigator.pushNamed(context, link.deepLink!);
}
iOS (Swift)
Ajoutez le package https://github.com/flinku-dev/ios-sdk avec Swift Package Manager.
import FlinkuSDK
Flinku.configure(baseUrl: "https://votreapp.flku.dev")
Task {
let link = await Flinku.match()
if link.matched, let deepLink = link.deepLink {
// Ouvrir l'écran correspondant à deepLink, avec link.params
}
}
Android (Kotlin)
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.flinku-dev:android-sdk:0.7.2'
}
// Dans Application.onCreate()
Flinku.configure(this, baseUrl = "https://votreapp.flku.dev")
// Dans votre écran de démarrage
lifecycleScope.launch {
val link = Flinku.match(this@SplashActivity)
if (link.matched) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(link.deepLink)))
}
}
React Native
npm install flinku-react-native @react-native-async-storage/async-storage
import { Flinku } from 'flinku-react-native';
const flinku = new Flinku({
userId: 'identifiant-utilisateur',
baseUrl: 'https://votreapp.flku.dev',
});
const link = await flinku.match();
if (link) {
// Naviguer vers link.deepLink avec link.params
}
Étape 4 : Universal Links et App Links
Sur iOS, activez la capacité Associated Domains et ajoutez :
applinks:votreapp.flku.dev
Sur Android, ajoutez ce filtre dans AndroidManifest.xml, dans l'activité qui reçoit les liens :
<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="votreapp.flku.dev" />
</intent-filter>
Étape 5 : tester sur un vrai appareil
- Désinstallez l'application de l'appareil de test.
- Touchez un lien Flinku sur cet appareil.
- Installez la version de test et ouvrez la.
matchdoit renvoyer le lien et ses paramètres.
Pour vérifier vos fichiers de configuration, utilisez gratuitement le validateur AASA et le validateur assetlinks.
Tarifs
Le plan gratuit comprend 3 projets, 300 liens par mois et 10 000 clics par mois, avec le deep linking différé et le suivi des parrainages inclus. Les plans payants coûtent 12 $ et 39 $ par mois. Le prix dépend des liens et des clics, pas du nombre d'utilisateurs actifs.