web-dev-qa-db-fra.com

Comment télécharger le fichier Apple-app-site-association pour une liaison universelle dans le serveur pour l'application iOS?

Quelle est la procédure pour télécharger Apple-app-site-association fichier dans le serveur. stg1.example.com est le site Web où liaison universelle doit être fait et le fichier doit être téléchargé dans le chemin racine de celui-ci.Comment faire le service pour télécharger pour la liaison universelle dans iOS. Comment télécharger le fichier formaté json sur le serveur?

15
Shrawan

Le Apple-app-site-association le fichier doit être accessible via HTTPS, sans aucune redirection, à https: //stg1.example.com/Apple-app-site-association.

Le fichier ressemble à ceci:

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "{app_prefix}.{app_identifier}",
            "paths": [ "/path/to/content", "/path/to/other/*", "NOT /path/to/exclude" ]
        },
        {
            "appID": "TeamID.BundleID2",
            "paths": [ "*" ]
        }
    ]
}
}

fichier de démonstration dans exemple

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "M8HBL5W4VV.com.Universal-Links",
                "paths": [ "/iOS-Universal-Links/*"]
            }
        ]
    }
}

[~ # ~] note [~ # ~] - N'ajoutez pas .json à la Apple-app-site-association nom de fichier.

Les clés sont les suivantes:
apps: Doit avoir un tableau vide comme valeur, et il doit être présent. C'est ainsi que Apple le veut.
details: est un tableau de dictionnaires, un pour chaque application iOS prise en charge par le site Web. Chaque dictionnaire contient des informations sur l'application, l'équipe et les ID de bundle.

Il existe 3 façons de définir des chemins:
Static: l'intégralité du chemin pris en charge est codé en dur pour identifier un lien spécifique, par exemple/statique/termes
Wildcards: A * peut être utilisé pour faire correspondre les chemins dynamiques, par ex./books/* peut correspondre au chemin d'accès à la page de n'importe quel auteur. ? à l'intérieur de composants de chemin spécifiques, par ex. livres/1? peut être utilisé pour faire correspondre tous les livres dont l'ID commence par 1.
Exclusions: L'ajout d'un chemin avec NOT exclut la correspondance de ce chemin.

L'ordre dans lequel les chemins sont mentionnés dans le tableau est important. Les indices antérieurs ont une priorité plus élevée. Une fois qu'un chemin correspond, l'évaluation s'arrête et les autres chemins sont ignorés. Chaque chemin est sensible à la casse.

Prise en charge de plusieurs domaines

Chaque domaine pris en charge dans l'application doit mettre à disposition son propre fichier d'association Apple-app-site-association. Si le contenu servi par chaque domaine est différent, le contenu du fichier changera également pour prendre en charge les chemins respectifs. Sinon, le même fichier peut être utilisé, mais il doit être accessible sur tous les domaines pris en charge.

Validez votre serveur avec Apple Outil de validation de la recherche d'applications
Testez votre page Web pour les API de recherche iOS 9. Entrez une URL et Applebot explorera votre page Web et montrera comment vous pouvez optimiser pour de meilleurs résultats https://search.developer.Apple.com/appsearch-validation-tool/

Code du site Web

Le code du site Web peut être trouvé dans la branche gh-pages sur https://github.com/vineetchoudhary/iOS-Universal-Links/tree/gh-pages


Signature du fichier App-Site-Association (pour les serveurs non HTTPS)

Remarque : Vous pouvez ignorer cette partie si votre serveur utilise HTTPS pour servir le contenu et accéder au guide de configuration de l'application.

Si votre application cible iOS 9 et que votre serveur utilise HTTPS pour diffuser du contenu, vous n'avez pas besoin de signer le fichier. Sinon (par exemple lors de la prise en charge de Handoff sur iOS 8), il doit être signé à l'aide d'un certificat SSL d'une autorité de certification reconnue.

Remarque : Ce n'est pas le certificat fourni par Apple pour soumettre votre application à l'App Store. Il doit être fourni par un tiers, et il est recommandé d'utiliser le même certificat que vous utilisez pour votre serveur HTTPS (bien qu'il ne soit pas obligatoire).

Pour signer le fichier, créez d'abord et enregistrez-en une simple version .txt. Ensuite, dans le terminal, exécutez la commande suivante:

cat <unsigned_file>.txt | openssl smime -sign -inkey example.com.key -signer example.com.pem -certfile intermediate.pem -noattr -nodetach -outform DER > Apple-app-site-association

Cela produira le fichier signé dans le répertoire courant. Le example.com.key, example.com.pem, et intermediate.pem sont les fichiers mis à votre disposition par votre autorité de certification.

Remarque : Si le fichier n'est pas signé, il doit avoir un Content-Type de application/json. Sinon, ce devrait être application/pkcs7-mime.


Découvrez ma réponse complète et détaillée ici

Comment prendre en charge les liens universels dans l'application iOS et le serveur d'installation pour cela?

29
Vineet Choudhary