分支深层链接未打开应用程序

Nic*_*ick 23 ios applinks branch.io

我一直在尝试(不成功)使用Branch实现深入链接到我们的iOS应用程序.分支URL直接重定向到App Store,从不尝试打开应用程序.我肯定错过了什么.

我做了什么:

  1. 包含分支SDK(CocoaPods)已添加branch_key到应用程序plist
  2. 在应用程序plist中为URL类型添加了URL方案
  3. Associated Domains在项目和开发人员控制台中的App ID中启用.
  4. 确保权利文件包含在构建中.

  5. AppDelegate中注册的深层链接处理程序

仪表板:设置 - >链接设置:

  1. "始终尝试打开应用程序"已选中
  2. "IOS URI Scheme"设置为应用程序的自定义URI方案.
  3. 选中"启用通用链接".
  4. Bundle Identifier和Apple App Prefix都设置正确.

    在Branch Dashboard中的"Marketing"选项卡下,我创建了一个链接.我正在通过电子邮件将此链接发送给自己并在设备上打开它(Mail.app).Safari打开,然后打开App Store,就像没有安装应用程序一样.

既没有application:openURL:sourceApplication:annotation也没有application:continueUserActivity:restorationHandler被召唤.

AppDelegate方法:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let branch: Branch = Branch.getInstance()
    branch.initSessionWithLaunchOptions(launchOptions, andRegisterDeepLinkHandler: { params, error in
        if (error == nil) {
            // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app
            // params will be empty if no data found
            // ... insert custom logic here ...
            NSLog("params: %@", params.description)
        }
    })
    return true
}

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
    // pass the url to the handle deep link call

    return Branch.getInstance().continueUserActivity(userActivity)
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    // pass the url to the handle deep link call
    Branch.getInstance().handleDeepLink(url);

    // do other deep link routing for the Facebook SDK, Pinterest SDK, etc
    return true
}
Run Code Online (Sandbox Code Playgroud)

我错过了配置步骤吗?这是因为应用程序是通过Xcode调试而不是通过应用程序商店安装的?我期待看到调用应用程序委托方法,但它们不是.

Nic*_*ick 13

似乎必须通过App Store/Test Flight/Ad Hoc安装应用程序,否则将不会考虑安装该应用程序.

我使用Ad Hoc配置将应用程序安装到我的设备上,一切正常.

  • 来自Branch.io的Alex:这不是***准确.通过Xcode安装应用程序时,分支链接正常工作 - 这肯定是由于其他一些配置问题. (5认同)
  • @Nick:我的动态和市场链接几乎在一个月前工作正常,但从昨天起这些链接将我重新引导到safari,然后再转到app store而不是应用程序.我已经检查了所有设置三次,并且在我从safari移动到我的应用程序后,然后我得到回调分支io方法与params. (2认同)

小智 11

对我来说,即使我在没有Adhoc发行版的情况下安装了tethered,链接也能正常工作.然后有一天它停止了工作.那是因为我在app中点击了前进链接到bnc.

对此的修复很容易 - 只需长按链接即可.选项显示"在应用程序中打开".单击此按钮,链接由app处理.下一次,链接按预期工作,即使没有长按,因为Safari会记住这是默认行为.