Firebase Dynamic Link не работает при установке приложения из AppStore в первый раз

Я использую Firebase Dynamic Link для совместного использования своего приложения ( >= IOS 9) и приглашаю людей на события (я имею в виду, если у вас есть приложение, вы можете присоединиться к событию с помощью DeepLink, и если у вас его нет, Я отправлю вас в Appstore, чтобы загрузить приложение, прежде чем присоединяться к событию).

Я следую шагу Docs Firebase:

  • Я получаю соответствующий JSON в https://app_code.app.goo.gl/apple-app-site-association.
  • Если мое приложение установлено, DeepLink отлично работает.
  • Если мое приложение не установлено, Deeplink отправит вас в AppStore, но при первом открытии он не работает, и вы не можете присоединиться к событию.

Вот мой код для получения ссылки при первой установке:

в didFinishLaunchingWithOption:

    FIROptions.default().deepLinkURLScheme =  "com.jerem.ProjectAlphaSasasa"
// "com.jerem.ProjectAlphaSasasa" is my app bundle Identifier
    FIRApp.configure()

и на основе документов Firebase, при первом открытии, я использую следующие функции:

//MARK: First entry
//when your app is opened for the first time after installation on any version of iOS.
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
    print("00000000000000000")
    FIRCrashMessage("Link during first installation")
    downloadEventWithDeepLink = true
    downloadUrl = url
    return application(app, open: url, sourceApplication: nil, annotation: [:])

}

//same as previous but for older version ios 8 (not relevant)
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    let dynamicLink = FIRDynamicLinks.dynamicLinks()?.dynamicLink(fromCustomSchemeURL: url)
    if let dynamicLink = dynamicLink {

        downloadEventWithDeepLink = true
        downloadUrl = dynamicLink.url
        return true
    }

    return false
}

В моем случае downloadEventWithDeepLink - это флаг (глобальный), который я проверяю после входа пользователя в мое приложение (и использую там переменную downloadUrl). Что я делаю неправильно с настройкой?

Кроме того, я не знаю, как его отладить. Есть ли способ имитировать первую версию Appstore в Xcode? Чтобы узнать, вызваны ли предыдущие функции (Open Url)?

Спасибо за вашу помощь!

Ответы

Ответ 1

У меня была та же проблема, что и ссылка не получена после установки. Проблема заключалась в том, что моя схема URL неправильно настроена.

Чтобы сделать это, я изменил типы URL-адресов в информационной части моей цели: Я установил идентификатор пакета в поле идентификатора и схемы URL.

Настройка схем URL

Я также добавляю строку в свой код настройки firebase:

FIRApp.configure()
FIROptions.default().deepLinkURLScheme = "fr.machin.ES5"

Ответ 2

Это похоже на существующую проблему с Firebase на iOS. Вы используете FirDynamicLinks для обработки динамической ссылки в реализации OPENURL, делаете ли вы то же самое в обработчике CONTINUEUSERACTIVITY???? Пожалуйста, прочитайте эту статью и посмотрите, поможет ли она вам. Реализация здесь в Objective C, вам, возможно, придется найти эквивалентное решение для Swift. Проигнорируйте Родную Часть Реагирования.

https://medium.com/@ramakrishnan_89356/firebase-dynamic-links-for-your-react-native-app-ios-setup-only-c6e1f5a7944e