首次从appstore安装应用时,Firebase动态链接无效

时间:2017-01-04 19:28:52

标签: ios swift firebase deep-linking firebase-dynamic-links

我正在使用Firebase动态链接分享我的应用(> = IOS 9)并邀请其他人参加活动(我的意思是,如果你有应用,你可以加入DeepLink的活动,如果你没有它,我会在加入活动之前将你送到appstore下载应用程序。)

我按照Firebase文档步骤操作:

  • 我在https://app_code.app.goo.gl/apple-app-site-association获得了相关的JSON。
  • 如果我的应用已安装,则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变量)。我在设置方面做错了什么?

另外,我不知道如何调试它。有没有办法在Xcode中模拟Appstore首次安装?要确定是否调用了以前的函数(Open Url)?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我认为通过删除应用程序并单击链接来测试实现,一旦将您带到App Store,您无需从那里安装应用程序,而是从Xcode安装,您应该会收到动态链接打电话。

建议不要担心太多,您应该专注于测试动态链接是否在应用程序打开的情况下打开应用程序。在应用启动和关闭时测试其是否正常运行。

如果您在重定向到应用程序时遇到问题,请检查是否已在URL类型中注册了捆绑标识符,并在功能标签中将域添加为blscrapeR。 如果您使用的是自定义域,则还必须将其注册到info.plist中。

我从未在项目中设置applinks:your_dynamic_links_domain变量,并且它们都可以正常工作

答案 1 :(得分:-1)

我遇到了同样的问题,安装后没有收到链接。问题是我的网址方案没有正确设置。

为了使其工作,我更改了目标的信息部分中的URL类型: 我在标识符和URL方案字段中设置了包ID。

URL schemes setup

我还在firebase的设置代码中添加了一行:

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