いつもお世話になっております。
現在、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
あなたの回答
tips
プレビュー