2017-01-04 33 views
16

Używam Firebase Dynamic Link do udostępniania mojej aplikacji (> = IOS 9) i zapraszania ludzi na wydarzenia (mam na myśli, jeśli masz aplikację może dołączyć do wydarzenia z DeepLink, a jeśli go nie masz, wyślę Cię do sklepu, aby pobrać aplikację przed dołączeniem do wydarzenia).Firebase Dynamic Link nie działa podczas instalowania aplikacji z AppStore po raz pierwszy

śledzę krok docs Firebase:

  • Dostaję odpowiednie JSON w https://app_code.app.goo.gl/apple-app-site-association.
  • Jeśli moja aplikacja jest zainstalowana, program DeepLink działa doskonale.
  • Jeśli moja aplikacja nie jest zainstalowana, Deeplink wysyła cię do sklepu appstore, ale kiedy otwierasz ją po raz pierwszy, nie działa i nie możesz dołączyć do wydarzenia.

Oto mój kod na uzyskanie link na pierwszej instalacji:

w didFinishLaunchingWithOption:

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

i oparte na Firebase docs, przy pierwszym otwarciu, używam następujące funkcje:

//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 
} 

W moim przypadku downloadEventWithDeepLink jest flaga (globalne) sprawdzić po zalogowaniu się użytkownika do mojej aplikacji (i użyj tam zmiennej downloadUrl). Co robię źle w konfiguracji?

Ponadto, nie wiem jak to debugować. Czy istnieje sposób symulacji Appstore pierwszej instalacji w Xcode? Aby sprawdzić, czy są wywoływane poprzednie funkcje (Open Url)?

Dzięki za pomoc!

+0

mam ten sam problem dostałeś jakieś rozwiązanie? –

Odpowiedz

0

Miałem ten sam problem z linkiem, który nie został odebrany po instalacji. Problem polegał na tym, że mój schemat adresu URL nie był poprawnie skonfigurowany.

Aby to działało, zmieniłem typy adresów URL w części informacyjnej mojego celu: Ustawiam identyfikator pakietu w polu Identyfikator i schematy URL.

URL schemes setup

również dodać linię w kodzie instalacyjnym Firebase:

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