首页 > 解决方案 > 未安装应用时,Firebase 动态链接会打开 Weblink 而不是 App Store

问题描述

我正在使用 Firebase 动态链接通过邮件发送信息。当我在安装应用程序时尝试打开它们时,这些链接有效。但是,当未安装应用程序时,它们无法正常工作。
当我在未安装应用程序的情况下打开链接时,他们会打开我的主页,更准确地说是实际链接。我的代码在这里:

static func generateDynamicLinkFromProduct(product: Product, completion: @escaping (URL?) -> Void) {
    let domain = "https://my-homepage.com/"
    let bundleID = Bundle.main.bundleIdentifier
    var package = "my.app.on.android"
    let meta = product.metaJson!
    guard let link = URL(string: domain + "product=" + meta) else {
        completion(nil)
        return
    }
    let dynamicLinksDomainURIPrefix = "https://myapp.page.link"
    let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix)
    linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: bundleID!)
    linkBuilder?.iOSParameters?.appStoreID = "APP_STORE_ID"
    linkBuilder?.navigationInfoParameters = DynamicLinkNavigationInfoParameters()
    linkBuilder?.navigationInfoParameters?.isForcedRedirectEnabled = true
    linkBuilder?.androidParameters = DynamicLinkAndroidParameters(packageName: package)
    let options = DynamicLinkComponentsOptions()
    options.pathLength = .short
    linkBuilder?.options = options
    let longLink = linkBuilder?.url
    print(longLink)
    linkBuilder?.shorten() { url, warnings, error in
        print(url)
        if (error == nil) {
            completion(url)
        } else {
            completion(nil)
        }
    }
}

(domain、bundle、package 和 prefix 替换为实际应用的数据)

动态链接打开的实际内容link,即打开https//my-homepage.com/product=

调试的输出显示了这一点:

e

€dit:生成的长链接包含isiibi参数

标签: iosswiftfirebase-dynamic-links

解决方案


检查您的 appStoreId。

我遇到了同样的问题,结果我用我的应用程序的 appStoreId 切换了我的开发团队 ID。


推荐阅读