課題

Google は 2025 年 8 月 25 日に Firebase Dynamic Links をサービス終了します。当社が保守する約 40 本の iOS / Android アプリでは、下記機能に必須のディープリンクを Dynamic Links で実装していました。リンクが失効すると onboarding とサポート工数が大幅に増えるため、3ヶ月以内に代替手段へ切り替える必要が生じました。

  • 会員登録
  • パスワードリセット
  • メールアドレス変更

結果

Android は App Links、iOS は Universal Links を採用し、Backend で生成する全リンクを再設計。検証期間を含め約 3 か月で 40 アプリすべてをストア公開まで完了しました。

Firebase Dynamic Links廃止の発覚と移行期限

Dynamic Links は「アプリが入っていなければストアへ、入っていればコンテンツへ」というクロスプラットフォームリンクでした。廃止により URL は 404 を返し、Short Links API も 4xx 応答になります。2025 年 8 月 25 日以降にリンク障害が起きてもロールバックはできないため、「切り替え完了=唯一のリスクヘッジ」と位置付けました。

代替技術の選定――Android App Links と iOS Universal Links

項目

Android App Links

iOS Universal Links

公式サポート

Android 6.0 以降

iOS 9 以降

実装方式

Digital Asset Links でドメイン検証

apple-app-site-association でドメイン検証

ユーザー体験

選択ダイアログをスキップし直接遷移

Safari 経由せずアプリを起動

Web フォールバック

ブラウザで該当 URL 表示

同上

Firebase 依存

なし

なし

両技術とも「所有ドメイン証明によるリンク自動ルーティング」が特徴で、Dynamic Links 依存を完全に排除できます。

メールリンクフロー再設計――Backend・アプリ間の責務整理

旧実装は Firebase SDK が署名付きリンクを生成していましたが、新実装では Backend が署名トークン付き URL を出力します。アプリは OS にルーティングを委ね、トークン検証 API を呼び出す構成に変更しました。

AndroidのDynamicLinksのフロー

iOSのUniversal Linksのフロー

Backend 改修ポイント

  • 署名方式の独自実装:HMAC-SHA256 で 10 分有効トークンを発行。Database の password_resets テーブルでリプレイ攻撃を防止。
  • URL ルーティングの単純化:/action/:type/:token を 1 本に統一。
  • 監査ログ:CloudWatch Logs にトークン検証結果を出力し異常値を Prometheus で監視。

品質保証――自動テストとパイロット展開

テストレイヤ

旧ケース数

新ケース数

備考

Unit

85

102

署名失効やタイムゾーン誤差を追加

API

24

40

トークン不正・多重利用シナリオ

E2E (Detox)

6

9

OS ルーティング検証

パイロットは影響度の小さい 5 アプリで実施し、CS 問い合わせゼロを確認後に残りを一括配信しました。

つまずきポイントと解決策

課題

原因

解決策

Android 13 でリンクがブラウザに落ちる

android:autoVerify が無効

Play Console の Digital Asset Links Debugger で検証後、証明書 SHA256 を更新

iOS TestFlight で Universal Links が無反応

apple-app-site-association キャッシュ

該当ドメインを .well-known に再配置し curl で application/json を返却するか確認

メールクライアント経由の URL エンコード崩れ

Outlook の改行自動挿入

token を Base64URL エンコードし 72 字ごとに改行しない

今後の展望――リンクインフラの"所有"を続ける

Dynamic Links 廃止は「リンク機能を第三者に委ねるリスク」を顕在化させました。リンク生成を自前 API に統合し、証明ファイルと TLS 証明書を IaC 管理することで、将来のプラットフォーム変更にも対応可能な体制を整えました。今後は CI で定期的にドメイン検証を行い、リンクインフラを「運用資産」として磨いていきます。

まとめ

  • 締切が決まっている場合、「代替技術の早期確定」が成功の鍵
  • firebase dynamiclinks 代替 の本命は Android App Links / iOS Universal Links
  • Backend でリンク責務を一元化すると、テストと監視が容易
  • 40 アプリでも 設計→自動化→パイロット→一括展開 の型で 3 か月以内に移行できた

リンクは小さな UX ですが、サービスの信頼を支える基盤でもあります。廃止告知に振り回されない開発プロセスこそ、長期運用のコストを最小化する最良の投資といえます。