Linksを試してみました。関連づけファイル(apple-app-site-association)はS3に置きました。Linksを試してみました。関連づけファイル(apple-app-site-association)はS3に置きました。S3SIN2017.02.0814300この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。Schemeを使用すると、特定のスキームでアプリを起動することが可能です。Schemeは、そもそもアプリがインストールされていないと何も出来ません。スキームは、他のアプリとの競合を確実に回避することもできませんでした。Linksを試してみました。Linksを実装する作業は、概ね次のとおりです。Domainsの追加アプリ起動時のハンドリングなお、作成したサンプルでの名前等は、次のようになっています。apple-app-site-accosiationapple-app-site-associationは、次のようなJSON形式のファイルです。}}appsは、必須ですが、何も指定しません。Identifire」です。pathsには、アプリに遷移させるURLを指定しますが、今回は、全てを意味するワイルドカードを設定しました。サーバへの配置サーバへの配置では、下記の要件があります。httpsでアクセスできる(httpの場合は署名が必要)ドメインのルートに配置し、リダイレクトなしでアクセスができるContent-Typeはapplication/json(署名がある場合は、application/pkcs7-mime)今回は、S3に配置してhttpsでアクセスすることで、この要件をクリアしました。S3にバケット(名前を「universal-links-bucket」としました)を作成し、そこに、index.html及びapple-app-site-associationを置きました。apple-app-site-associationのContent-Typeをapplication/jsonに設定しています。下記のURLでアクセス可能になります。]下の図は、Chromeを使用して、httpsで、ドメインのトップからapple-app-site-associationにアクセスできることを確認しているようすです。念のため、curlでも確認してみます。リダイレクトなしでアクセスでき、Content-Typeもapplication/jsonになっているのが分かります。S3で準備したドメインを設定します。記述要領は、applinks:ドメイン名です。Domainsを有効にしたAppIDを作成するような紹介も有りましたが、現在のXcodeでは、自動で作成されるので、必須作業ではないようです。下記は、自動的に生成されたAppIDです。名前が、XCで始まっています。実は、ここまで出来たら、Safariからアプリへの遷移は可能になっています。https://universal-links-bucket.s3.amazonaws.com/index.htmlへのリンクをタップすると、Webページは表示されずに、アプリが直接起動します。入力した場合は、直接アプリは起動せず、当該ページが表示されますが、少し下にスクロールすると図のようなボタンが表示され、これをタップすると、アプリが起動します。Linksでアプリが起動された場合、そのURLは、application(_:continue:restorationHandler:)で取得することが可能です。NSUserActivityのwebpageURLにそのまま入ってますので、これに応じてアプリの振る舞いを実装できます。true}上記のコードは、URLをログに表示していますが、例えば、下記のようなリンクから遷移した場合、図のようになっているのが確認できます。テストツール関連付けファイルの内容をデバッグするために、テストツールが公開されています。Toolこちらで、apple-app-site-associationの設置状況が確認可能です。アプリが未公開の状態では、下記のようにPASSEDにはなりませんので注意が必要です。一部の記事で、シミュレーターでは動作確認できないような記載を見かけたのですが、特に問題なく動作しています。9のシュミレータでは、動作しないようです。Chromeでの動作リンク先への遷移は、Chromeからでも、動作しました。戻り先もChromeになっています。アドレスバーに直接入力した場合は、Webページが表示されるだけで、下スクロールしても、アプリを開くボタンは表示できません。Linksを試してみました。9以降でしか動作しないので、先のカスタムリンクとの連携が必要不可欠だと思います。次回は、その辺を掘り下げて確かめてみたいと思います。