UniversalLinkとは
UniversalLinkとはiOS9と共に登場したカスタムURLスキームに代わるアプリ起動支援の仕組みです。
例えばどんなことができるかというと…
アプリの宣伝用のLPへのURLリンクをタップした時にアプリがインストール済みであれば、
Safariを開かずにアプリを起動する
といったことができます。
どういったシーンで利用できるかというと…
- 既にインストール済みのアプリであれば、宣伝用ページではなくアプリに飛ばしたい
- 会員登録時に仮メールを送信して、メール内リンクをタップしたらアプリを起動させたい
- キャンペーン期間中のみ、特定のリンクを踏むと、アイテムやクーポンがもらえる
などが考えられます。
UniversalLinkの設定方法
では、具体的にどうすればUniversalLinkが利用できるのでしょうか。
Apple Developer Program上での設定
Xcode上で設定すれば、Apple Developer Programから設定する必要はないとの記事も見かけましたが、
未確認であること、いずれにしても必須設定であることから説明します。
① Apple Developer Programにアクセス
② Certificates, Identifiers & Profiles
> Identifier
> App IDs
を選択
③ 利用する App IDs
を編集して Associated Domains
を Enabled
に変更
たったこれだけの設定でOKです。
Xcode上での設定
ここからはアプリ側の設定を説明します。
と言っても難しいことはありません。
① 先程の手順で設定した App IDs
が Bundle Identifier
に設定されたプロジェクトを作成
② Capabilities
> Associated Domains
を ON
に変更
③ Domains
に飛ばしたいドメインを追加
このとき、 Steps
の2行が ✔
状態になっているかどうかも重要なポイントです。
たったのこれだけの設定でOKです。
サーバサイドの設定
最後にサーバサイドで必要な設定について説明します。
サーバサイドの環境や設定次第では少々苦労することがあるかもしれません。
① apple-app-site-association
ファイルを作成する
1 2 3 4 5 6 7 8 9 10 11 |
|
上記で重要なポイントは…
json
形式だが、拡張子にjson
はつけないapps
は必ず[]
で中身は何も書かないappIDs
は. の形式で書くpaths
はアクセス時に飛ばしたいパスの詳細設定を書く ("*"
は全て飛ばします )
になります。
Team ID
は Apple Developer Program
上から確認できます。
② 作成したファイルを https
サーバのドキュメントルートに配置する
http
サーバの場合は apple-app-site-association
をTLS証明書で署名する必要がありますが、今回は割愛します。
ドキュメントルートはWebサーバの設定ファイルから確認することができます。
1 2 3 4 |
|
例えば、上記のように設定されているのであれば、 /home/user/www/html
配下に apple-app-site-association
ファイルを置きましょう。
③ Webサーバの設定を確認する
UniversalLinkの機能を利用するにはWebサーバが下記設定になっている必要があります。
apple-app-site-association
ファイルにリダイレクトすることなくアクセスできる- 署名していない場合は
Content-type
にapplication/json
を指定する
署名している場合はContent-type
をapplication/pkcs7-mime
に設定する
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
ここまでできれば完成です。
設定完了後の動作確認方法
さて、動作確認には以下2つの方法があります。
前提として、起動させたいアプリをインストールする必要があります。
【動作確認方法】
① Safariで直接URLにアクセス後、ページを上から下にスワイプすると、アプリの表示バーが出て来るので、それをタップする
② メール等に記載されたURLをタップする
①または②の方法でアプリが起動すればUniversalLinkの設定は完了したと言えます。
※Appleが提供している公式ツールもあるのですが、テスト環境用サーバだとアクセスを制限している可能性があるので、上記方法が良いかなと思っています。
まとめ
さて、iOS11が登場して1ヶ月ほど経過しているにも関わらず、今更ながらUniversalLinkの設定方法について書いてみました。
自分でいざ設定しようとすると案外ハマりどころがあったりするので、対応する機会がある方はぜひ試しに対応してみることをオススメします。
と言ったところで本日はここまで。