UniversalLinksを実装してみた

UniversalLinksを実装してみた

先日iOS9.0のUniversalLinksを実装する機会があったので、忘れないように手順をまとめておきます。

Developer Center上で、Associated Domainsを有効にする。

(プロビジョ二ングを保存し、ダウンロードし直すことをわすれないこと)
スクリーンショット 2015-12-07 15.21.28
 

Xcode上でCapabilitiesの設定をする

アプリと連携させたいドメイン名をAssociated Domains欄に追記します。

例えば、www.lanches.co.jpとアプリを紐付けたい場合は、
applinks:www.lanches.co.jp
webcredentials:www.lanches.co.jp

と指定します。
ネットにあるいろいろな検証記事を見ると、ここの指定には諸説あるようですが、
実際にテストしてみた上では、webcredentialsも指定しないと動きませんでした。
 

apple-app-site-associationファイルを作成する

アプリとサーバーを紐付ける証明書の役割をするファイル。
これを作成し、対象となるサーバーのドキュメントルートに配置します。

Appleの公式ドキュメントにも実際の記述サンプルがありますが、
下記のような形式のファイルとなります。
下記の例では2つのアプリをドメインと紐付けています。
また、アプリが起動する対象となるディレクトリもここで指定しています。
このファイルによって、アプリとサーバーの信頼関係が証明されます。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "9JA89QQLNQ.com.apple.wwdc",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*" ]
            },
            {
                "appID": "TeamID.BundleID2",
                "paths": [ "*" ]
            }
        ]
    }
}

ここでファイルを配置する上でつまづいたポイントをメモ。

  • apple-app-site-associationは、https://でアクセスできる必要がある。(リダイレクトもだめ)
  • 公式ドキュメントにあるとおり、SSL証明書で署名する必要はない。
  • .json拡張子は付与せず、MIME typeはApplicacion/jsonにしろと書いてあるが、MIME typeは気にする必要なし。
  • apple-app-site-associationファイルの書式チェックをしておくこと。ここにApple製のチェックツールがあります。
     

その他注意点

  • pathsは除外条件や、正規表現による表記ができません。
    例えば、/page1/〜/page100/までURLが存在し、/page99/だけアプリの起動をさせたくないような場合に
    NOT /page99/みたいな指定はできないので、こういった場合は1つづつ指定する必要があります。

(iOS 9.2からNOT指定ができるようになるみたいです)

TAG

  • このエントリーをはてなブックマークに追加
しょぼん
取締役 しょぼん syobon

最近エネルギーの90%を卓球に向けています。