1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

株式会社シンプルウェイAdvent Calendar 2024

Day 21

[Flutter] Android AppLinks と iOS UniversalLinks への対応

Last updated at Posted at 2024-12-20

DymnamicLinks が来年廃止されるのに備えて、Flutterアプリで、Android AppLinks と iOS UniversalLinks に対応したので、その一連の手順についてまとめたいと思います。

開発環境

  • Flutter 3.19.6
    • こちら のように、Dart-define-from-fileを使用して開発環境と本番環境を分けています。
  • Xcode 16.0

1. Flutter で使用するライブラリの選定

今回は、app_links を使用しました。

以下のコマンドでインストールします。

flutter pub add app_links

2. 使用するURLの決定

サーバーサイドのエンジニアとアプリ起動に使用するURLを決めます。

3. アプリ側の改修

app_links のドキュメントに従って、設定を行います。
scheme、host、pathPrefix については手順2で決めたものを設定します。

  • Android は こちら
  • iOS は こちら
    • iOS側は、Xcode での設定も必要です。Apple公式サイトでも良いですが、こちら が大変参考になりました。

※ Dart-define-from-file を使用している場合、環境毎の変数を定義したファイル内でアプリを起動させるURLのドメインを指定している場合は、そのドメイン名を修正します。

次に、公式 の通り、/lib/main.dart 内に以下のコードを追加します。

final appLinks = AppLinks(); // AppLinks is singleton

// Subscribe to all events (initial link and further)
final sub = appLinks.uriLinkStream.listen((uri) {
    // Do something (navigation, ...)
});

※ DynamicLinks を使用していた場合は、以下の部分が上記に置き換わるイメージです。

final sub = FirebaseDynamicLinks.instance.onLink.listen((uri) {
    // Do something
});

4. サーバーサイドの対応

アプリ起動に使用するドメインの /.well-known/ 配下に、apple-app-site-association(iOS用)と assetlinks.json(Android用)を設置します。

詳細についてはここでは記載しませんが、以下をご覧ください。

5. テストする

指定のURLを押下した時にアプリが起動するかテストします。
問題なければ対応完了です!

トラブルシューティング

Android

  • app_links のドキュメント の下の方にも書いてありますが、本番環境以外では、Android端末側で「リンクの追加」の設定を行う必要があります。

iOS

  • apple-app-site-association を設置してから反映されるまで、最大2時間程度かかるようなので、気長に待つ必要があります。
    • すぐに動作確認したい場合は、Xcode(Dart-define-from-file を使用している場合、環境毎の変数を定義したファイル内)のURLのドメイン名の後ろに ?mode=developer を付与すると反映を待たなくても良くなります。
      ただしこの場合は、iOS端末の設定アプリから デベロッパ > 「ユニバーサルリンク」セクションの「関連ドメインの開発」をONにする必要があります。
      参考:Associated Domains Entitlement (Apple公式)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?