私が取り組んでいるiOSアプリで、関連ドメイン(ユニバーサルリンク)をセットアップしました。アプリは複数のドメインをホストします。ワイルドカードを使用して設定した一部のドメイン。これらのドメインは機能していないようです。たとえば、https://news.mydomain.com/
にリンクしたいとします。以下を関連ドメインのリストに追加すると、
applinks:*.mydomain.com
->機能しません
applinks:news.mydomain.com
->正常に動作します
私はすべて正しく設定したと思います。Apple-app-site-associationファイルは問題なく設定されています。どちらの場合でも(チャールズプロキシを使用して)Apple-app-site-associationファイルが正常に取得されたことがわかります。
ワイルドカードの場合、リンクはSafariでのみ開きます。
ワイルドカードなしでドメインを構成すると、アプリが開きます。
ここで何か不足していますか?私はデバイス上でiOS 9.3.2を実行しており、Xcode 7.3.1を実行しています。これは今日の最新バージョンです。
私の発見をこのスレッドに追加しました: https://forums.developer.Apple.com/thread/47315
要するに、iOS 10でも、ワイルドカードのセットアップでは、Apple-app-site-association
ファイルがワイルドカードのルートによって提供される必要があるようです。
たとえば、*.domain.com
を使用する場合、Apple-app-site-association
はapp1.domain.com
とdomain.com
などの両方でホストする必要があります。そうでない場合、単純に機能しません。 Xcodeでapplinks:*.domain.com
を指定します。
メインサイトがwww.domain.com
でホストされていて、domain.com
に301リダイレクトがある場合(www.domain.com
にリダイレクトされる)、ユニバーサルリンクではリダイレクトが許可されないため、これは残念です。
私が見つけた回避策は、アプリのメインサブドメインを作成し、ワイルドカードにサブサブドメインを使用することでした。例えば。
app.domain.com
(Apple-app-site-association
ファイルを提供する必要があります)server1.app.domain.com
(Apple-app-site-association
を提供する必要があります)server2.app.domain.com
(...)このように、Xcodeではapplinks:*.app.domain.com
のみを指定でき、ユニバーサルリンクはXcodeでserver1.app.domain.com
、server2.app.domain.com
などを指定しなくても機能します。
ただし、アプリでサーバーを使用する場合は、applinks:app.domain.com
も明示的に指定する必要があります。
これがお役に立てば幸いです。
applinks
のドメイン部分にワイルドカードを追加することは、iOS 9.3 Beta 2
でのみ導入されたようです。 9.3 Beta 2リリースノート:
アプリのすべてのサブドメインを完全修飾ドメイン名としてリストする必要がなく、任意のサブドメインでユニバーサルリンクを使用できるようになりました。エントリの形式は次のとおりです。
:[:port number]は、「webcredentials」、「activitycontinuation」、または「applinks」です。
エントリの一部には、オプションで「*」をプレフィックスとして付けることができます。ワイルドカードサブドメインを示します。例えば:
applinks:*。example.com
あなたはiOS 9.3.2
で実行すると言っています。しかし、あなたのdeployment target
> = iOS 9.3
ですか?そうでない場合は、変更してみてください。あなたの問題は解決すると思います。
ここに、このリリースノートのコピーがあります (申し訳ありませんが、他の公開ソースはありません)
編集:
Apple Doc がドメインでワイルドカードを使用できると言っている場合でも、 これには問題があるようです :
関連付けられたドメインのすべてのサブドメインを照合するには、プレフィックスを使用してワイルドカードを指定できます。特定のドメインの開始前(ピリオドが必要)。ドメインマッチングは、applinksエントリの最も長い部分文字列に基づいています。たとえば、applinks:。mywebsite.comとapplinks:*。users.mywebsite.comのエントリを指定すると、ドメインemily.users.mywebsite.comの照合が、より長い* .usersに対して実行されます。 mywebsite.comエントリ。 * .mywebsite.comのエントリは、アスタリスクの後のピリオドのため、mywebsite.comと一致しないことに注意してください。 * .mywebsite.comとmywebsite.comの両方のマッチングを有効にするには、それぞれに個別のapplinksエントリを提供する必要があります。
私は2016年9月に、iOS 9.3.5とiOS 10ベータの両方でこれを試しました。状況は変更されていないように見えます:applinksにワイルドカードドメインのみが含まれている場合、ドキュメントはこれが機能するはずであると示唆していますが、ユニバーサルリンクはまだ機能していません。
Appleドキュメントのバグです。9.3.1でも同じエラーが発生しました。9.3.2は正常に機能します。非常に興味深いリンクです。 署名の問題については、Laurence Fanのコメントを参照してください)
Appleは、*。domain.comがこのリンクで9.3.2以上で機能することを通知する必要があります ユニバーサルリンクをサポート