iOS - Test d'obtention du lien profond différé Facebook

Sep 06 2020

Je souhaite obtenir un lien profond différé après l'avoir envoyé à mon application via l'outil de test FB "Test App Link".

J'ai fourni AppID dans les paramètres du projet Xcode et implémenté la méthode fetchDeferredAppLick dans le fichier AppDelegate. De plus, j'ai défini tous les paramètres d'application nécessaires dans le compte de développement FB et dans le fichier info.plist du projet xcode.
Mais il ne me montre toujours pas de coche verte dans les paramètres de l'application FB.

Lorsque j'envoie un lien profond vers l'application en cliquant sur "Tester le lien profond", j'obtiens le message "La notification du lien profond n'a pas pu être envoyée pour la plate-forme choisie" dans l'invite.

Alors, comment puis-je obtenir des coches vertes dans les paramètres fb de l'application concernant le fait que j'ai déjà implémenté la méthode fetchDeferredAppLink et fourni AppID?

Paramètres de l'application:

Mon code 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
    } 
}

Mon info.plist:

PS. Je peux me connecter au compte de développement FB sur le simulateur. Et la méthode fetchDeferredAppLink renvoie nil.

Réponses

VeronikaBabii Sep 15 2020 at 03:27

Vous devez spécifier add account id dans le paramètre FB App Advanced.

Si vous disposez d'un compte développeur gratuit, supprimez les notifications push de votre projet Xcode.

Ensuite, sur votre appareil physique, vous devez installer l'application Facebook et vous connecter au compte à partir duquel vous avez enregistré votre application.

Branchez votre appareil.

Envoyer une liaison deeplink différée via l'outil de test FB (cochez les deux cases).

Exécutez votre application à partir de Xcode sur votre appareil physique. Pour que l'application se lance, affichez-la à partir des paramètres de votre téléphone -> Général -> Gestion des appareils -> Application de développeur -> Confiance.

Maintenant, votre application devrait fonctionner, vous devriez obtenir un lien profond différé et une coche verte près de la troisième option sur la première photo devrait apparaître.