1. ホーム
  2. ios

[解決済み] iOS ユニバーサルリンクがアプリ内で開かない

2022-07-14 03:49:52

質問

そこで、このチュートリアルに従って、提供されたものと同じ値を使用しました。 https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9

Apple Associationファイルもlinkディレクトリに用意されています。

WEB_PAGE:PORT_NUMBER/apple-app-site-association

こちら側ですべて設定されているようです。

エンタイトルメントを追加し、プロビジョニング プロファイルを更新し、すべてがセットアップされました。

私のデバイスでアプリを実行し、リンクを開くと、次のようになります。 http://WEB_PAGE:PORT_NUMBER を開くと、必ずSafariが起動します。

以下のメソッドにブレークポイントがあるくらいです。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler

しかし、zilch。

誰かこれを完成させた人はいるのでしょうか?何か足りないものがあるのでしょうか?

どのように解決するのですか?

いくつかの問題が考えられます。

  1. このリンクバリデータにあなたのドメインを貼り付けてみて、問題がないことを確認してください。 https://limitless-sierra-4673.herokuapp.com/ (ShortStuffSushiに感謝します。 レポ )

  2. iOS は、エンタイトルメントで指定されたドメインで TLS が適切に設定されていない場合、システムログにエラーメッセージを記録します。これは、アプリケーション ログではなく、OS ログに埋もれています。エラーメッセージは次のようなものです。 Sep 21 14:27:01 Derricks-iPhone swcd[2044] <Notice>: 2015-09-21 02:27:01.878907 PM [SWC] ### Rejecting URL 'https://examplecustomdomain.com/apple-app-site-association' for auth method 'NSURLAuthenticationMethodServerTrust': -6754/0xFFFFE59E kAuthenticationErr . エラーメッセージは ここで TLSにCloudFlareを使用するための簡単な(不完全な)説明です。 ここで .

  3. 私個人のテストでは、Safari でリンクをクリック/入力しても、一度もアプリが直接開かれたことはありません。他のアプリ (iMessage、メール、Slack など) からのクリックは があります。 が機能しました。また、Google の検索結果のリンクをクリックすると、アプリが直接開いたという報告もあります。

  4. ユニバーサル リンクがアプリを開くことに成功し、その後 (アプリのナビ バーの右上隅でサイトをタップして) Safari に移動した場合、次のことに注意してください。 iOS はその URL にアクセスしたときにアプリを開くことを停止します。 . そして、Safari では、プルダウンすると、ページの上部に "開く" と書かれたバナーが表示されるようになります。 無駄な時間を過ごしてしまった。 なお、クリックスルーは=>ULを無効化するようです。 パス特定 と思われます。ですから、もしあなたが別々のルートを持っているなら yoursite.com/a/*yoursite.com/b/* をクリックすると yoursite.com/a/* をクリックしてアプリを直接開いた場合、アプリの右上隅のオプションで yoursite.com/a/* . これを実行すると、それ以降に yoursite.com/a/* はアプリではなく、ブラウザで開かれます。しかし yoursite.com/b/* は影響を受けず、アプリを直接開くことができるはずです。

何が問題なのかがわかったら教えてください。個人的には、ユニバーサル リンクがどのように機能するのか、また、どのようなエッジ ケースが存在するのか、非常に興味があります。がんばってください。