iOSユニバーサルリンクがアプリ内で開かない


109

だから私はこのチュートリアルに正確に従い、提供されたものと同じ値を使用します:https : //blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9

Apple Associationファイルもリンクディレクトリに用意されています。
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

しかし、ジルチ。

誰かがこれを完成させましたか?行方不明のものはありますか?


2
あなたが任意のステップ逃さないようにするここにチェックアウトstackoverflow.com/questions/35609667/...を
Vineet Choudharyさん

回答:


189

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

  1. ドメインをこのリンク検証ツールに貼り付けて、問題がないことを確認してくださいhttps : //limitless-sierra-4673.herokuapp.com/(ShortStuffSushiへのクレジット- リポジトリを参照)

  2. エンタイトルメントで指定されたドメインでTLSが適切に設定されていない場合、iOSはシステムログにエラーメッセージを記録します。アプリケーションログではなく、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、Mail、Slackなど)からクリックしても機能します。他の人は、Google検索結果のリンクをクリックすると、アプリが直接開いたと報告しています。

  4. ユニバーサルリンクがアプリを開くことに成功し、クリックしてSafariに(アプリのナビゲーションバーの右上隅にあるサイトをタップして)クリックした場合、iOSはそのURLにアクセスするとアプリを開くのを停止します。次にSafariで、プルダウンしてページの上部に[開く]のバナーを表示できます。私はこれに多くの時間を費やしました。サイトへのクリックスルー=> ULの無効化は、apple-app-site-assocationファイルで指定したパスに基づいて、パス固有のように見えることに注意してください。したがって、別のルートがyoursite.com/a/*ありyoursite.com/b/*、をクリックした場合ますyoursite.com/a/*してアプリを直接開く場合、アプリの右上隅にクリックしてに移動するオプションがありますyoursite.com/a/*。その場合、その後の訪問yoursite.com/a/*アプリではなくブラウザで開きます。ただし、yoursite.com/b/*影響を受けず、アプリを直接開く必要があります。

問題が何であるかを発見した場合はお知らせください。個人的には、ユニバーサルリンクがどのように機能し、どのようなエッジケースが存在するのかについて非常に興味があります。幸運を。


1
同じこと。とても奇妙。アプリを直接開くこともあれば、webViewを開くこともあります。ドキュメントを明確にしてほしい。この機能の操作は不安定です
Legolas

4
1)については、httpsでサービスを提供している場合、apple-app-site-associationファイルに署名する必要はなくなりました。
Jeremy Hicks

11
iOSデバイスの再起動も役立つ場合があります。私はすべての設定と構成を3回チェックし、すべてが正しいことを確信していましたが、それでも機能しません。次に、別のデバイスを試してみましたが、完全に機能しました。次に、元のデバイスからアプリを削除し、デバイスを再起動して、アプリを再インストールしましたが、
正常に

4
アプリの右隅にあるWebサイトのリンクを誰かが誤って押してしまった場合、サファリの代わりにアプリに戻る方法は?
iEngineer

3
Open in Appバナーがどこにも表示されませんでした。長い検索の後の解決策は次のとおりです。ノーツアプリにサイトのリンクを入力します(これはユニバーサルリンクです)。次に[完了]をクリックします。リンクになったら、長押しして「AppNAME-HEREで開く」を選択!
kishorer747 2016

64

これがうまくいかない理由はたくさんあります。2つの点で問題が発生しました。

  • Xcodeでは、Associated Domainsエンタイトルメントを追加するとき、各エントリはapplinks:ドメイン名で始まり、次にドメイン名である必要があります。例えばapplinks:www.apple.com

  • Xcodeによって資格ファイルが作成されましたが、ビルドには含まれていませんでした。そのボックスを手動でクリックする必要がありました。

そして、はい、それをした後、apple-app-site-associationファイルに署名する必要はありませんでした:それは単なるテキストであり、それがHTTPS経由で提供されている限り機能します。(ただし、iOS 8をサポートしている場合は、署名する必要があります。)


4
また、アプリをテストデバイスから完全に削除し、最終的に機能する前にビルドして再度実行する必要がありました。
Phil Andrews

14
私の日を保存すると、これが私の問題でしたが、XCodeが資格ファイルを作成しましたが、ビルドには含まれていませんでした。手動でそのボックスをクリックする必要がありました。
チャム

12
ビルドにエンタイトルメントファイルを含めることで、問題も修正されました。Xcode 8では、ファイルインスペクターのターゲットメンバーシップチェックボックスが実際には無効になっていることに注意してください。ビルド設定に移動して、資格ファイルをリソースのコピーフェーズに追加する必要がありました。
Charles A.

5
@cham:「XCodeで資格ファイルが作成されましたが、ビルドには含まれていませんでした。手動でそのボックスをクリックする必要がありました。」
Thang Pham

6
@AwaisFayyazビルドフェーズ>バンドルリソースのコピーに移動します。プラス記号をクリックし、資格ファイルを追加します。
s.zainulabideen

36

どうやらUniversal Linksの関連ファイルを作成するためドキュメントに誤りがあるようです。

それが言うところ:

appIDキーの値は、アプリのチームIDとバンドルIDです

それは言うべきです

appIDキーの値は、アプリのプレフィックスとバンドルIDです

ほとんどのアプリでは、チームIDとアプリのプレフィックスは同じように見えますが、アプリが何年もストアに存在している場合、これらの値は異なる可能性があります。

この値を見つけるには、https://developer.apple.comのメンバーセンターを開いて、「証明書、識別子、プロファイル」を確認し、「識別子」、「識別子」の下の表の「アプリID」をクリックします。アプリを見つけ、そこでプレフィックス値とバンドルIDを使用して、関連付けファイルのAppIDを作成します。


2
+1、これは私に大いに役立ちました。それがうまくいかなかった理由を理解するのに半日かけてください。これが私には当てはまるようです
Ivo Beckers

あなたは私の一日を救いました、確かに私のアプリはずっと前で、アプリのプレフィックスはチームIDとは異なります。
Ti3t

これは私のために働く唯一のものです。ありがとうございました!
2019

これが私の解決策でした。素晴らしいアドバイス。
vincenth

33

この問題をデバッグするには、アプリのインストール時にデバイスのコンソール出力で「swcd」を検索して、ユニバーサルリンクの登録が機能したか失敗したかを確認します。

  1. シミュレータではなく、実際のデバイスを使用してください。
  2. デバイスからアプリを削除します。
  3. デバイスをコンピューターに接続し、デバイスのコンソール出力をxcodeで表示します。(ウィンドウ->デバイス-> [デバイス]->コンソールを開く)。このウィンドウは開いたままにします。
  4. アプリをインストールして起動します。
  5. コンソール出力を「swcd」にフィルタリングします。成功すると、次のスクリーンショットのようなものが表示されます。失敗した場合は、別のものが表示されます。何も表示されない場合は、Associated Domainsエンタイトルメントを追加するなど、基本的なことを行っています。

アプリリンクが正常に追加されました


2
素晴らしいヒント!私はhttps://をapplinks:エンタイトルメントに追加し、聴いたいフルパスも指定しましたが、どちらも間違いでした。example.com/path * を指定しました。ここでは、domain.comのみを指定し、example.comのAASAファイルは、アプリのバンドルIDに対するパスを指定しています
Numan Tariq

3
現金ボーナスを送金できますか?私はこのひどいユニバーサルリンクセットアップのすべてのステップを2日間かけて過ごしましたが、あなたのアプローチを試すまで何も役に立ちませんでした。私のドメインのfirebaseのルートフォルダーで私の関連付けファイルをホストするのは本当に残念でした、そしてそれはAppleが最初に.well-known /サブディレクトリをクエリし、firebaseがそれ自身の(!)正しい関連付けファイルでそれに応答するように見えることがわかりましたアプリがリンクされていません。ああ、どうやって私はこれを見つけることになっているんだ、アップル?
nalexn

ああ素晴らしいヒント!私はこのデバイスコンソールについて知りませんでした。Xcodeコンソールの出力を見ただけです。私の問題は、3つのディープリンクドメインのうち2つがDIDで機能するが、最後のドメインでは機能しないことでした。そしてコンソールで、最後のドメインで "appllinks:<domain>"(2 L's)とつづりを間違えたのを見ました。とにかく、ユニバーサルリンクが実際に登録されているかどうかをチェックする素晴らしい方法に感謝します!(コンソールログにもアプリのアンインストール時のリンクの削除:+1が見つかりました)
Arno Teigseth

1
デフォルトでその冗長であることになっていますか?そのような詳細なログを取得できないので、これは操作が成功しないことを意味しますか?
Nicholas Allio

26

St.derrick's Answerは有益です。

しかし、ユニバーサルリンクを再び有効にして、サファリの代わりにアプリで開くには、次のことを行う必要があります。

  • メールまたはiMessageのユニバーサルリンクを長押しすると、Safariで開くかアプリで開くかのオプションが表示されます。

2
のオプションはなくapp、コピー、開く、閲覧リストに追加するなどのオプションはありません
iEngineer '28

1
ほとんどこの問題のデバッグに夢中になりましたが、これが解決策または私でした。多分それが正しく設定されておらず、メールアプリがリンクをsafariで開く場合、常にsafariで開きますか?わからないが、一度長押しした-> 'myapp'で開く...そしてリンクが正しく開く!
ハーバート

1
この解決策に感謝します。私はこれにほぼ一日詰まりました。あなたは私の日を救った。
アンドリュー、2016年


18

私にとって問題であることに気付いたのは、ルートディレクトリへのリンク(例http://example.com/:)がアプリを開かなかったが、パス(例:)を追加した場合、http://example.com/mypathそれが機能したことです。"/"パスリストに追加することで解決しました:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TEAM_ID.BundleIdentifier",
                "paths": [ "*", "/" ]
            }
        ]
    }
}

この Apple Developer Forumsスレッドでslutskerが回答したとおり。


17

Universal Linkが正しく実装されているかどうかを確認するための簡単な手順。

  • アプリを起動する予定のリンクを押し続けます。コンテキストメニューに[[アプリ名]で開く]が表示されます。

  • Lotus Notesアプリを開き、アプリを開く予定のリンクを入力します。[完了]をタップします。リンクが黄色に変わり、リンクをタップするとSafariではなくアプリが開くはずです。

  • リンク場合http://yourDomain.comは、アプリを起動していない、してみてくださいhttp://yourDomain.com/yourFolder/を

  • Safariの場合、コンテキストメニューにSafariで[[アプリ名]で開く]と表示されていても、リンクをタップすると、アプリを起動する代わりにSafari自体でリンクが開く

    a。「プルして更新」するように、リンクをクリックしたときに開いたサファリページをプルダウンしてみてください。アプリを開くことができるバナーが表示されます。バナーをタップしてアプリを開き、ホームボタンを押してアプリを閉じ、Safariに戻り、もう一度リンクをタップしてアプリを起動してください。今回は、バナーをタップするとアプリでリンクを開くための設定が保存されているため、アプリが起動するはずです。

    b。手順a。を実行してもアプリが起動しない場合は、リンクをGmailなどのウェブメールにメールで送信し、Safariでウェブメールサイトを開いてリンクをクリックしてみてください。これが機能する場合は、リンクと同じドメインからアプリを起動しようとしている可能性があります。私が見たところ、同じドメインからアプリを起動するとほとんど失敗します。リンクがユーザーと同じドメインにある場合、safariはリンク先URLがユニバーサルリンクであるかどうかを確認しません。したがって、別のドメインからアプリを起動してみてください。


3
それだけで、何時間もこの問題に対処していて、同じドメインからのアプリの起動はほとんど失敗します。ありがとう:)
maledr53

12

ユニバーサルリンクを統合した後、プロジェクトのバージョンまたはビルド番号をインクリメントすることも非常に重要です。削除/再インストールしても、バージョンを変更しない限り、iOSはリンクを取得しません。


1
この!私は上記のすべてのアドバイスを通じて行くだろうと私のリンクはまだiOS版としてのSafariを起動してしまうため、バンドルバージョンは、以前のバージョンからのキャッシュされた結果を使用している、私のテストが失敗した全く何だったapple-app-site-association間違ったAppIDの接頭辞を持っていた
ZAIチャン

カイル、愛してると思う!この答えは一日を救います、ありがとう!
ネイカー2017

これは私にとって秘伝のタレでした!ありがとう、ありがとう、ありがとう!
ヌリダー

10
  • リンクをブラウザーのURLフィールドに貼り付けた場合、ユニバーサルリンクは機能しません。

  • ユニバーサルリンク 作業駆動ユーザーを持つ<a href="...">要素をクリックし、ドメイン間で。例:google.comにbnc.ltを指すユニバーサルリンクがある場合、アプリを開きます。

  • ユニバーサルリンクは 、同じドメインでのユーザー主導<a href="...">要素のクリックでは機能ません。例:google.comのユニバーサルリンクがgoogle.comの別のユニバーサルリンクを指している場合、アプリは開きません。

  • ユニバーサルリンク<a>は、ユーザーアクションの一部でない限り、JavaScriptを介して(window.onload内または要素の.click()呼び出しを介して)トリガーすることはできません。

ソース:https : //dev.branch.io/getting-started/universal-app-links/support/ios/#appsbrowsers-that-support-universal-links

3番目の弾丸は、理解するのに約1日かかりました。


1
3番目の弾丸、これも同じです。それを理解するのに何時間も無駄にされました。Appleはそれについて素晴らしい非常に愚かな説明さえ持っています:「iOSはユーザーの最も可能性の高い意図を尊重し、Safariでリンクを開く」ここで自分自身を参照してください
jox

第3弾TOP!
バイトロス

10

オープン(ユニバーサル)リンクを簡単にテストする必要がある場合は、次のコマンドを使用して、ターミナルからシミュレータでリンクを開くこともできます。

xcrun simctl openurl booted yourapp_or_http://yourlink

例えば:

xcrun simctl openurl booted https://www.google.com


1
これは機能していません。常にSafariを開くだけです。実際のデバイスで実行しても機能します。シミュレータなしでデバッグ/開発を行うのは少し面倒なので、どんなアイデアでもありがたいです。
2018年

7

ここで人々が他の解決策を探している場合、私たちは多くの問題がポップアップし、頭痛の種を引き起こしているのを見たので、ユニバーサルリンクのデバッグに全体を段階的にまとめました。

見てみな:

ユニバーサルリンクデバッグガイド

デバッグガイドのプレビュー

ユニバーサルリンクを新たにセットアップするだけの場合は、このガイドが非常に役立ちます。

iOSディープリンク設定ガイド

お役に立てば幸いです。


とても助かります、ありがとう!実際のデバイスで実行しているときに私のために働いたが、iOSシミュレーターではなかった。
Josh Sklar

6

将来私と同じ問題に遭遇する人が増える場合に備えて、私が発見したことをいくつか追加すると思いました。これらは主に認証エラーに関連しています。

Appleは明示的にそれを述べていませapple-app-site-associationんが、署名されている場合でも、ファイルはhttps経由で提供される必要があります。httpsに使用される証明書も、アップルによって信頼されている必要があります。そのため、[設定]-> [一般]-> [プロファイル]でデバイスに追加された証明書はSafariでhttpsを許可しますが、ユニバーサルリンクの機能は許可しません。

デバイスログでは、デバイスとサーバー間の認証エラー時に、のように値が出力され"TrustResultValue" : 4ます。A TrustResultValueが5の場合、証明書が間違ったドメイン用であることを意味します(例:www.test.comから提供されるtest.com)。あTrustResultValueが4の場合、証明書はこの用途で信頼されていません。

ここでデバッグするためのいくつかの有用なステップがあるかもしれません。「apple-app-site-associationへのアクセスのテスト」セクションは、デバイスがapple-app-site-associationファイルを取得していることを確認するためのステップバイステップガイドです。手順は次のように要約されます。

  1. アプリをアンインストールします。インストール時にファイルがダウンロードされるため、これが必要です。

  2. サーバーが適切に機能しないようにしapple-app-site-associationます。

  3. xcodeで、ウィンドウ->デバイスを開き、デバイスを選択します。

  4. ウィンドウの下部にある三角形をクリックして、デバイスログを開きます。

  5. ゴミ箱をクリックしてログを消去し、関連している可能性のある以前のログを消去します。

  6. 再生ボタンをクリックして、xcodeでアプリを再インストールします。

  7. アプリが起動した後、デバイスがファイルを正しくリクエストしている場合、デバイスのログに「apple-app-site-association」を検索すると見つかるエラーが含まれているはずです。

apple-app-site-associationファイルが適切に配信された場合(ステップ2は省略)、エラーは発生しません。問題がある場合は、代わりに認証エラーが表示されることがあります。


1
Charlesプロキシを使用してSSLスプーフィングを行っていたため、信頼値は4になりました。プロキシをオフにすると、成功しました。
ベン・フリン

6

最も一般的な原因は、ユーザーが右上をタップしたときに、今後アプリ(この場合はUber)を開かないようにiOSに指示することです。

修正するには、プルダウンしてスマートバナーを表示し、[開く]をタップします。

Safariでプルダウンして、もう一度開く

これはその後、アプリを開くことを「記憶」します。


5

次の場所にapple-app-site-associationファイルを追加しました。

https://example.com/apple-app-site-association

iOS 9では問題なく動作しましたが、iOS 10では動作しませんでした。

問題は.well-knownパスにあるようです:

https://example.com/.well-known/apple-app-site-association

そのためのhttps://example.com/.well-known/apple-app-site-associationにリダイレクトパスhttps://example.com

<Notice>: Allowing redirect 'https://example.com/.well-known/apple-app-site-association' -> 'https://example.com/'
<Notice>: ### Rejecting AASA file size 154466 for URL https://example.com/.well-known/apple-app-site-association

私の意見では、.well-knownパスが何らかの理由で正しく機能しない場合、ユニバーサルリンクが壊れます。


マニュアルには、「ファイルはリダイレクトなしでHTTPS経由でアクセスできる必要がある」と明記されています。
eonil 2016年

マニュアルには、「iOS 9.3.1以降で実行されるアプリの場合、ファイルが署名されているかどうかに関係なく、apple-app-site-associationファイルの非圧縮サイズは128 KB以下である必要がある」とも明記されています。このファイルは154 KBです。
Roberto

iOS11では、サーバーは明示的に404ステータスを返す必要があります: example.com/.well-known/apple-app-site-association次に、swcdはルートへのフォールバックを使用しますexample.com/apple-app-site-association。あなたはすぐにポストマンのようなツールを使用して返されたHTTPステータスを確認することができます
マックスOdnovolyk

4

私はなんとかそれを動作させることができましたが、それはかなりの時間と苦労を要しました。注意あなたが署名しない限り、 apple-app-site-association ファイルを(署名はオプションです!)しますSafariでリンクをタップしていないあなたのアプリを開く(それは私に頭痛の多くを引き起こしています)。


1
それは奇妙です。Appleは、 純粋なユニバーサルリンクとiOS9での使用には署名が不要であるとドキュメントで述べています。サインインする必要があるのは、iOS 8ハンドオフ/共有Webクレデンシャルをサポートする場合のみです。面白い!同じ問題があるので、署名してみます。
wrtsprt 2015年

署名は確かにオプションです。Mobile SafariでリンクをタップしてネイティブiOSアプリを開くことを「Webブラウザーからネイティブアプリへのハンドオフ」と呼びます。この場合、jsonファイルにactivitycontinuationプロパティを追加する必要がありapple-app-site-associationます。developer.apple.com/library/ios/documentation/UserExperience/...
Devy

3

これを理解するために、私を1日近くかけてもらいました。私が抱えていた問題は、更新されたプロビジョニングプロファイルをXCodeにダウンロードしていなかったことです(この後にXCodeも再起動しました)。

(設定>アカウント>詳細の表示>すべてダウンロード)


3

シミュレータでユニバーサルリンクをテストできます

以下からのサポートユニバーサルリンク:App検索プログラミングガイド


6
誰かがシミュレータで動作するようにユニバーサルリンクを取得していますか?何度も試してみましたが、うまくいきませんでした。同じフローの実際のデバイスを使用しても機能します。
Tony

私もこれをテストすることができませんでした。Safariがシミュレーターでユニバーサルリンクをトリガーするようにしようとしても、物理デバイスで適切に機能するにもかかわらず、無駄でした。
Albert Bori 2016

シミュレーターでそれらを動作させることもできませんでした。@AlbertBoriあなたはこれを機能させましたか?
2018年

私はそれらがシミュレータで動作しないことをほぼ確信しています。私は他のすべての落とし穴に精通しており、それらをシミュレーターで動作させることはできません..
Fattie

3

2日後、私はこれらの種類のリンク(ブランチから)を知った

applinks:xxxx.app.link

アプリケーションをアーカイブ(アドホック)した後でのみ機能し、電話にインストールします。


3

apple-app-site-associationFirebaseでホストしている場合は、必ず/.well-known/サブディレクトリに配置してください。Xcodeは最初にそのURLを照会し、成功した場合apple-app-site-associationはルートディレクトリ内のを照会しようとしないようです。なんらかの理由で、FirebaseエンジニアはホストされたWebサイトを/.well-known/apple-app-site-association、カスタムのファイルを上書きする空の(ただし正しく形成された)関連付けファイルで自動的に応答するようにしたため、何も機能しない理由がわかりません!


2
最後に!どうもありがとう。どこかで書かれていますか?Firebaseはどこかに文書化する必要があります。
BerkayTurancı19年

2

developer.apple.comに移動し、配布プロファイルの1つを編集します。編集ページで、アプリIDのポップアップを開くと、アプリ名のリストが表示され、アプリ名の後ろの()括弧内には実際のすべてのアプリID が表示されます。アプリによっては、プレフィックスとしてチームIDを持つ場合がありますが、ない場合あります。()内のポップアップメニューに表示される内容を正確に使用し、apple-app-site-association詳細のappIDフィールドに入力してください。私はアプリとそのユニバーサルリンクでまさにこの問題を抱えていました。


2

私にとっての問題はapple-app-site-associationファイルであることが判明しました。Appleのドキュメントによると、applinksパラメータのみが必要です。私はactivitycontinuationパラメータを追加し、それはうまくいきました。

{
  "activitycontinuation": {
    "apps": [
      "9JA89QQLNQ.com.apple.wwdc"
    ]
  },
  "applinks": {
    "apps": [],
    "details": [{
        "appID": "9JA89QQLNQ.com.apple.wwdc",
        "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*" ]
      }]
  }
}

3年後、私たちはこの問題にぶつかりました。追加するactivitycontinuationと、修正されます。
レディオノット

2

実際に機能するのとまったく同じ問題/解決策の組み合わせを実際に見たことがないので、誰かが同じ問題を抱えている場合に備えて、私の問題を追加することもできます!

私のアプリでは、カスタムURLスキーム(で設定APP_TARGET > Info > URL Types)を使用しており、ここからURLスキームをFirebaseコンソールに設定して一致させましたが、それでも機能しませんでした。

私の問題は実際には2つの問題でした:

署名の自動管理をチェックするかどうかに注意してください

以前のようにXcodeの「署名を自動管理する」設定を確認している場合は、簡単なデモアプリを作成しようとしただけなので、使用されているTeamIDがFirebaseコンソールのものと一致することを確認する必要があります。私は最初にApple Developer Accountにアクセスして、メンバーシップページからチームIDをコピーしましたが、後でXcodeによって使用されている実際のIDが異なることがわかりました。(これはAPP_TARGET > General > Signing > Signing Certificate.私にとってはのように見えましたiPhone Developer: My Name (TEAM_ID))で見つけることができます。

URLタイプのバンドルIDの前にTeamIDをプレフィックスします

FirebaseコンソールとXcodeでこれらが一致していることを確認した後、次の問題はURLスキームの識別子でした。ここではバンドル識別子を使用するのが一般的ですが、Firebaseは実際には、Firebaseコンソールで指定したチームIDをプレフィックスとしてこれに付けるため、XcodeのURLタイプセクションの識別子にもプレフィックスを付ける必要がありました。

これらの2つの修正とGoogleService-Info.plistファイルの再ダウンロードの後、私は問題なく動的リンクを開いた。


2

絶望の2日後、私はようやくそれを修正したと思います。これが私の解決策です:

古いアプリは新しいアプリとは異なるアプリプレフィックスを使用しているようです。新しいアプリは、この目的でのみチームIDを使用します。アプリのプレフィックスとチームIDが同一でない場合は、Appleアプリサイトの関連付けファイルでアクティビティ継続フィールドを指定する必要があるようです:

{
    "activitycontinuation": {
        "apps": [
            "YOUR_APP_PREFIX.de.company.app"
        ]
   },
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "YOUR_APP_PREFIX.de.company.app",
        "paths": ["/*"]
      }
    ]
  }
} 

私が地獄にいる間に経験したもう1つのことは、アプリを削除してデバイスを再起動することがこのファイルを強制的に更新する唯一の方法のように思われるということでした。


1

私にとって、私のエラーは、私たちのサイトがwww.domain.comをdomain.comにリダイレクトしているため、すべてのwww.domain.com/*が原因で失敗することでした。お役に立てば幸いです。


1

カレンダーアプリを使用して、iOSシミュレーターでユニバーサルリンクをテストすることができました。

イベントを作成し、テストするURLをイベントのURLフィールドに追加しました。次に、作成されたイベントを表示するときに、URLリンクをタップするだけで、アプリが開きます。


これは私にはうまくいかないようです、私は彼らがシミュレーターでうまくいかないようにするためにあらゆることを試みました。実際のデバイスでは問題なく機能しますが、開発/デバッグには理想的ではありません。リンクを長押ししてみましたが、「アプリで開く」オプションがありません。
2018年

1

これを機能させるために1日を費やした後、電話を再起動すると問題が解決しました。

アプリのアンインストール/再インストールも機能しませんでした。


1

iOS13の場合、新しいフォーマットがあります-ここをチェックしてください ください

ファイルを次のように更新しました。

{
  "applinks": {
      "details": [
           {
             "appIDs": [ "ABCDE12345.com.example.app" ],
             "components": [
               {
                  "/": "/my-link/*",
                  "exclude": true,
                  "comment": "Matches any URL whose path starts with /my-link/ and instructs the system not to open it as a universal link"
               }
             ]
           }
       ]
   },
   "webcredentials": {
      "apps": [ "ABCDE12345.com.example.app" ]
   }
}

true になるには"exclude": truecomponentsオブジェクトに追加する必要がありcommentます
skornos

@skornos良い点。私は私の答えを修正します。
アニタ

0

このページを見つける将来の読者のために...

私も同じような状況でした。しかし、私の状況では、iOS10はAOKで動作しており、私が何をしても(バンプビルド番号、削除/再インストールなど)、iOS9は動作しないように見えました。

私はこれをiOS10からやってきたので、iOS9をサポートする必要がありました。当時、ここのドキュメント-https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html-ファイルがWebサーバーのルートに配置される可能性があることを明確に述べています(例/apple-app-site-association)または.well-knownフォルダー(例/.well-known/apple-app-site-association)。私もAndroidをサポートしています。Androidも同様のファイルに.well-knownフォルダーを使用しているので、両方に配置することにしました。

iOS10での新規インストールの場合、ルートファイルを明確に要求して失敗し、.well-knownファイルを要求して成功します。

iOS9の場合、それは明らかにルートファイルを要求し、失敗し、他には何もしません。

解決策:iOS9をサポートしている場合は、ファイルをに置きます/apple-app-site-association


0

私の場合、私のエラーはクエリパラメータをパスに置くことでした:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TEAM_ID.BundleIdentifier",
                "paths": [ "/auth-ui/hub?target=confirm&*" ]
            }
        ]
    }
}

パスから「?target = confirm&*」を削除すると、機能し始めます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.