どういうことか
Dynamic Linksの設定方法は省く。
設定したURLをXcode側で対応してアプリで受け取りたい。
ここではDynamic Linksで SampleAppDynamicLinks.page.link
というURL接頭辞を設定したという想定で書く。
ドメインを許可する
Entitlementの追記
- まず**.xcodeprojファイルを選択、左側のTARGET**から該当のアプリを選択
- 上部タブのSinging & Capabilitiesを選択
- 上部タブすぐ下の**+ Capability**を押す。Associated Domainsを選択
- Associated DomainsのDomainsの+ボタンを押して
applinks:SampleAppDynamicLinks.page.link
を記入 - Apple Developerのサイトにログインし、Certificates, Identifiers & Profiles > Identifiers > 該当のアプリを選択。ページ内でAssociated Domainsにチェックを入れてSave
info.plistの追記
- +ボタンを押してURL Typesを追加
- URL Typesで+ボタンを押す。item 0の中にURL identifierというKeyがある。Valueに
link.page.SampleAppDynamicLinks.app.schemes
と記入 - 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
}
おわり(´・ω・`)