5
1

More than 3 years have passed since last update.

【iOS】FirebaseのDynamic Linksからディープリンクを受け取る

Posted at

どういうことか

Dynamic Linksの設定方法は省く。
設定したURLをXcode側で対応してアプリで受け取りたい。

ここではDynamic Linksで SampleAppDynamicLinks.page.link というURL接頭辞を設定したという想定で書く。

ドメインを許可する

Entitlementの追記

  1. まず.xcodeprojファイルを選択、左側のTARGETから該当のアプリを選択
  2. 上部タブのSinging & Capabilitiesを選択
  3. 上部タブすぐ下の+ Capabilityを押す。Associated Domainsを選択
  4. Associated DomainsのDomainsの+ボタンを押して applinks:SampleAppDynamicLinks.page.link を記入
  5. Apple Developerのサイトにログインし、Certificates, Identifiers & Profiles > Identifiers > 該当のアプリを選択。ページ内でAssociated Domainsにチェックを入れてSave

info.plistの追記

  1. +ボタンを押してURL Typesを追加
  2. URL Typesで+ボタンを押す。item 0の中にURL identifierというKeyがある。Valueに link.page.SampleAppDynamicLinks.app.schemes と記入
  3. URL identifier+ボタンを押す。追加したKeyは URL Schemes を選択。追加されたitem 0のValueに SampleAppDynamicLinks を記入

ライブラリのインストール

Podfileに追記

pod 'Firebase/Analytics'
pod 'Firebase/DynamicLinks'
$ pod install

URLを受け取る

AppDelegate.swift
// 公式ドキュメントでは import Firebase と書いてあるが FirebaseDynamicLinks と書かないとエラーになった
import FirebaseDynamicLinks

    // 中略

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        FirebaseApp.configure()

        // 中略
    }

    // DynamicLinkのハンドリング
    func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                     restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {

        let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in

            // Dynamic Linksで設定したディープリンクを受け取る
            guard let deepLink = dynamiclink?.url else { return }

            // 受け取ったディープリンクを使ってなにかする処理を書く
        }
        return handled
    }

おわり(´・ω・`)

5
1
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
5
1