アプリを手動でインストールするからxCodeから(デバイスをMacBookに接続した状態で)Webアプリへのリンクを含むメールをクリックすると、WebアプリではなくCordovaアプリに開かれます(- 期待どおり)。
しかし、アプリをダウンロードしてインストールするとAppStoreまたはtestFlightから(まったく同じコードベースで)ユニバーサルリンクは無視されますでWebアプリが開きます。
Apacheログを監視し、アプリを手動でインストールすると、次のようになります。
XX.XX.XX.XX - - [29/Aug/2018:14:32:33 +0000] "GET /.well-known/Apple-app-site-association HTTP/1.1" 200 730 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
しかし、testFlightまたはAppStoreからアプリをインストールしている間、そのファイルに対するリクエストはありません。
誰かが検索の手がかりを見つけるのを手伝ってくれませんか...プロダクションアプリでUniversalLinkを有効にするにはどうすればよいですか?
生成されたIPAを解凍し、embedded.mobileprovisionを開きました。
<key>Entitlements</key>
<dict>
<key>keychain-access-groups</key>
<array>
<string>XXXX.*</string>
</array>
<key>get-task-allow</key>
<true/>
<key>application-identifier</key>
<string>XXXX.my.domain.com</string>
<key>com.Apple.developer.associated-domains</key>
<string>*</string>
<key>com.Apple.developer.team-identifier</key>
<string>XXXX</string>
<key>aps-environment</key>
<string>development</string>
</dict>
関連付けられたドメインは有効になっていますが、すべてのapplinks:domains
?
あなたが説明するような違いを観察した私の経験では、ほとんどの場合、それは開発および配布プロファイルのアプリの資格の違いが原因でした。アプリプロジェクトの設定で特定の機能が必要であると明確に述べている場合でも(この場合は[関連付けられたドメイン]チェックボックス)、特定の資格がない場合、署名プロセス(配布用にアプリをエクスポートするとき)中にXcodeがエラーをスローしない場合があります。プロビジョニングプロファイル内。
これらは、2つの理由で欠落している可能性があります-このプロファイルのdeveloper.Apple.comポータルに追加されていないか、Xcodeがそのポータルからプロファイルファイルを更新していません。後者の場合、ローカルディスクから古いプロファイルを消去して、Xcodeに強制的に再ダウンロードさせることができます。
実際にcom.Apple.developer.associated-domains
エンタイトルメントを配布ファイルに含めます。IPAファイルを解凍して、com.Apple.developer.associated-domains
キー<key>Entitlements</key>
指定されたセクション ここ 。
これをデバッグする別の方法は、AppStore/TestFlightバージョンのアプリを実行しているときに、コンソール(Xcode-> Window-> Devices&Simulators-> Open Console)でデバイスログを確認することです。アプリのdevバージョンのアプリへのリンクが正しくたどられたときにiOSによって出力されるログ行を見つけ、失敗した場合と比較できます。通常、iOSはその時点で、資格情報が不足していることをログに記録します。
最後に私はこの問題を修正することができました:
Entitlements-Release.plist
には正しいエンタイトルメントが含まれています。私の場合、Entitlements-Debug.plist
は正しいエンタイトルメントを持っていました。また、最後のステップでアプリをエクスポートするときは、通常、含まれる資格に関する概要が表示されます。com.Apple.developer.associated-domains適切なapplinks
エントリとともにリストされます。
次のようになります。
Cordova/Ionic v3を使用している場合
バグがあります...
これらのステップを確認してください:
4つのプロセスがあります
1. appコンソール
アプリID->アプリIDを選択→関連付けられたドメインを有効化->プロビジョニングプロファイルの完了->再度編集
AppName->一般的な<->機能->関連ドメイン-> +->
applinks:example.com
例- https://www.skyscanner.com/Apple-app-site-association
例- https://www.skyscanner.com/.well-known/Apple-app-site-association
Jsonがテキストとして残るので、このファイルを追加しないでください-Apple-app-site-associationの例
4.(重要)
(cordova)プロジェクトフォルダーには2つのファイルがあります:Project-> plateform-> ios-> projectNameFolder->
Entitlements-Debug.plist
Entitlements-Release.plist
値applinks:example.comをCapabilities-> Associated domains-> Domainsに追加すると、Entitlements-Debug.plistは次の行を取得します。
<key>com.Apple.developer.associated-domains</key> <array>
<string>applinks:example.com</string> </array>
しかし、Entitlements-Release.plistは変更されませんでした。この問題を解決するために私が行ったのは、生成された行をEntitlements-Debug.plistからコピーして貼り付けることです。この後、私は以前とまったく同じアーカイブとアップロードのプロセスを行い、すべてがうまくいきました。
そしてionic-plugin-deeplinksを使用してパラメーターを取得し、Deeplinkプロセスをルーティングします
.......おかげで、後で最初にプロジェクトをビルドします