iOS - 测试让 Facebook 深度延迟 link

iOS - Test getting Facebook deferred deep link

我想在通过“测试应用程序 Link”FB 测试工具将其发送到我的应用程序后获得延迟深度 link。

我在 Xcode 项目设置中提供了 AppID,并在 AppDelegate 文件中实现了 fetchDeferredAppLick 方法。以及我在 FB 开发帐户和 xcode 项目 info.plist 文件中设置所有必要的应用程序设置。
但它仍然没有在 FB 应用程序设置中显示绿色复选标记。

当我通过单击“测试深度 Link”向应用程序发送深度 link 时,我收到“无法为所选平台发送深度 link 通知”消息提示。

那么我如何才能在应用程序 fb 设置中获得关于我已经实施 fetchDeferredAppLink 方法并提供 AppID 的绿色复选标记?

应用设置:

我的 AppDelegate 代码:

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        AppEvents.activateApp()
        
        ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions) 

        AppLinkUtility.fetchDeferredAppLink { (url, error) in
            
            if let error = error {
                print("Received error while fetching deferred app link: \(error)")
            } else if let url = url {
                
                print("Deeplink is \(url)")
                
                // should open cautch deeplink here
                if #available(iOS 10, *) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(url)
                }
            } else { // url is nil 
                print("\nNo app link available\n")
            }
        }
        
        // MARK: - OneSignal
        let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false]

        // add OneSignal app id
        OneSignal.initWithLaunchOptions(launchOptions, appId: "", handleNotificationAction: nil, settings: onesignalInitSettings)

        OneSignal.inFocusDisplayType = OSNotificationDisplayType.notification;

        // to show the iOS push notification prompt
        OneSignal.promptForPushNotifications(userResponse: { accepted in
          print("User accepted notifications: \(accepted)")
        })
        
        return true
    }
    
    // MARK: - Track App Installs and App Opens
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        ApplicationDelegate.shared.application(app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation])
        return true
    }

    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        ApplicationDelegate.shared.application(application, open: url, sourceApplication: sourceApplication, annotation: annotation)
        return true
    } 
}

我的info.plist:

PS。我可以在模拟器上登录 FB 开发帐户。和 fetchDeferredAppLink 方法 returns nil.

您应该在 FB App Advanced 设置中指定添加帐户 ID。

如果您有免费的开发者帐户 - 从您的 Xcode 项目中删除推送通知。

然后在您的物理设备上安装 Facebook 应用程序并登录到您注册应用程序时使用的帐户。

插入您的设备。

通过 FB 测试工具发送延迟的深层链接(选中两个复选框)。

运行 您的应用来自 Xcode 在您的物理设备上。要启动应用程序,请在 phone 设置 -> 常规 -> 设备管理 -> 开发人员应用程序 -> 信任中显示信任它。

现在您的应用应该 运行,您应该会在第一张照片的第三个选项附近获得延迟深层链接和绿色复选标记。