質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

1495閲覧

iOS13でfirebaseのDynamicLinkがうまく動かない

momoyuri

総合スコア35

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2020/05/13 14:27

いつもお世話になっております。
現在、swiftにてiOSアプリを開発しております。

こちらに記載のとおりに実装をすることによって、iOS12などの端末(シミュレーター)でアプリがインストールされている状態でDynamic Linkが正常に動作するところまで実装が出来ております。
ただ、同じようにiOS13でDynamic Linkのリンクをタップしたところ、アプリが開かずにストアの方に遷移してしまい、対応方法がわからずに困っております。

こちらのサイトに記載の通り、iOS13ではSceneDelegateに処理を追加する必要があるとの事で、その実装をしてみたり、同サイトに記載のSceneDelegateを破棄したりもしてみたのですが、現象は変わらない状況です。

iOS12ではうまく動いている事から、firebase側の設定や、Associated Domainsの記載ミスなどは無いと考えているのですが、他に考えられる事がありましたら、ご教授頂けませんでしょうか。
何卒、よろしくお願いいたします。

こちらのサイトに記載されていたように、iOS12での実装を前提にして、SceneDelegateに必要なfunction、2つを実装してみたコードを記載させていただきます。
※ アプリ未インストール時の動きについては正常にiOS13でも動作したので、コードからは省いています。

SceneDelegateに実装した内容など

AppDelegate

// MARK: - Firebase DynamicLink extension AppDelegate { func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { print("Dynamiclink2") let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in if let dynamicLink = dynamiclink { let _ = self.handleDynamicLink(url: dynamicLink.url) } } return handled } func handleDynamicLink(url: URL?) -> Bool { print("handleDynamicLink") guard let url = url else { return false } print("handleDynamicLink=(url.absoluteString)") // <- iOS12の場合はここで設定したURLが正常に表示されている return true } }

SceneDelegate

@available(iOS 13.0, *) class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { print("scene") // <- アプリをインストールした後、これは表示されている } func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { print("Dynamiclink1") // <- アプリをインストール直後、Dynamic Linkのリンクタップ後、いずれも表示されない return false } func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { print("userActivity") // <- アプリをインストール直後、Dynamic Linkのリンクタップ後、いずれも表示されない print(userActivity.webpageURL!) } }

環境

xcode: 11.4.1
Firebase: 6.14.0
FirebaseDynamicLinks: 4.0.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問