iOS 9 から導入されたユニバーサルリンクを実装するために、アプリケーションが扱う URL を含んだ apple-app-site-association ファイルを作成して、URL のドメインのルート (トップ) にアップロードする必要があります。
apple-app-site-association ファイルの作成ステップは次のとおりです。
- 関連付けのルールを記載した JSON 形式のファイルを作成する。
- 作成した JSON ファイルを SSL 証明書で署名した apple-app-site-association ファイルを作成する。
- apple-app-site-association ファイルをドメインのルートにアップロードする。
* 関連付けをするウェブサイトが HTTPS に対応している場合は、apple-app-site-association に署名をする必要がありません。
関連付けのルールを記載した JSON 形式のファイル
関連付けのルールを記載した JSON 形式のファイルのフォーマットは次のとおりです。
{
"applinks": {
"apps": [],
"details": {
"Team ID.Bundle Identifier": {
"paths": ["*"]
}
}
}
}
ここで、Team ID.Bundle Identifier は、ユニバーサルリンクを利用するアプリの Team ID と Bundle Identifier をドットで繋いだ文字列になります。Team ID は Apple Developer Center で確認することができます。
関連付けをするウェブサイトが HTTPS に対応している場合は、apple-app-site-association というファイル名で保存します。
HTTPS に対応していない場合は、次のステップでファイルに署名をします。
SSL 証明書で署名する
署名には Apple が信頼する認証局が発行した SSL 証明書が必要です。そこで iOS アプリの開発に使用する証明書を利用します。
- キーチェーンアクセスを起動して、iPhone Distribution 用の SSL 証明書 (certificate.p12) を書き出します。
- コマンドプロンプトで秘密キーを作成します。
openssl pkcs12 -in certificate.p12 -out certificate.key -nocerts
- コマンドプロンプトで証明書を作成します。
openssl pkcs12 -in certificate.p12 -out certificate.pem -nodes -clcerts -nokeys
- コマンドプロンプトで JSON ファイルを署名します。
cat 作成した JSON ファイル | openssl smime -sign -inkey certificate.key -signer certificate.pem -certfile certificate.pem -noattr -nodetach -outform DER > apple-app-site-association
apple-app-site-association ファイルのアップロード
作成した apple-app-site-association ファイルをユニバーサルリンクで関連付けるウェブサイトのルートにアップロードします。
次に apple-app-site-association ファイルがアクセスされたとき、Content-Type ヘッダーが application/pkcs7-mime になるよう、ウェブサイトのルートにある .htaccess ファイルに次の行を追記します。
<Files "apple-app-site-association">
Header set Content-Type "application/pkcs7-mime"
</Files>