1

を失敗しAndroidManifest.xmlに次のように私は私のアプリへのリンクを定義します。アンドロイドMアプリのリンクの検証が

<intent-filter android:autoVerify="true"> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.BROWSABLE"/> 
    <category android:name="android.intent.category.DEFAULT"/> 

    <data android:host="mysite.com" android:scheme="http"/> 
    <data android:host="mysite.com" android:scheme="https"/> 
    <data android:host="www.mysite.com" android:scheme="http"/> 
    <data android:host="www.mysite.com" android:scheme="https"/> 
</intent-filter> 

アプリが正常に正しくホストからのURLを検出しますが、ユーザーがアプリケーションでそれらを開くことが好きかなる場合促しブラウザ検証は、Androidモニタコンソールに見られるように失敗するので:

01-17 15:44:28.847 7084-30015/? I/IntentFilterIntentSvc: Verifying IntentFilter. verificationId:2 scheme:"https" hosts:"mysite.com www.mysite.com" package:"com.site.myapp.android.flavor". 
01-17 15:44:29.821 7084-30015/? I/IntentFilterIntentSvc: Verification 2 complete. Success:false. Failed hosts:mysite.com,www.mysite.com. 

マイassetlinks.jsonファイルはmysite.com/.well-known/assetlinks.jsonに位置しており、正しいパッケージ名とSHA256ハッシュを含んでいます。また、httpとhttpsでアクセスできます。私は、SHAハッシュがキーストアからAPKからCERT.RSAファイルを抽出し、keytool -printcert -file CERT.RSA

を使用することによって、私はhttps://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://domain1:port&relation=delegate_permission/common.handle_all_urlsを呼び出すだけでなく、google site Statement List Testerを使用してみましたが、両方ともOKを返すことを一致して確認しました。

私はテスト用にAndroid 7を実行しているNexusデバイスを使用しています。

the documentationによると、私はアプリのリンクが動作するために必要なすべてを行っています。私が確認できるものは他にありますか?

私のサーバーはWindows 7上でIISを実行していますが、IISおよびweb.configファイルにはすでにmimetypeとしてapplication/jsonが追加されています。自分で署名したSSL証明書を使用しているため、失敗する可能性がありますか?

EDIT:SingleHostAsyncVerifierは、検証に失敗したことを記録します。アプリリンクドキュメントの

01-17 15:44:29.817 7084-30017/? I/SingleHostAsyncVerifier: Verification result: checking for a statement with source a < 
a: "https://www.example.com" 
> 
, relation delegate_permission/common.handle_all_urls, and target b < 
a: "com.mypackage.flavor" 
b < 
a: "(SHA256 hash)" 
> 
> 
--> false. 
01-17 15:44:29.820 7084-30016/? I/SingleHostAsyncVerifier: Verification result: checking for a statement with source a < 
a: "https://example.com" 
> 
, relation delegate_permission/common.handle_all_urls, and target b < 
a: "com.mypackage.flavor" 
b < 
a: "(SHA256 hash)" 
> 
> 
--> false. 
+0

このタグでlogcatを確認してください: 'SingleHostAsyncVerifier' –

+0

@SimonMarquis私はちょうど元の質問にそれを加えました。また、検証の失敗を示します。 –

+0

本当に変です。クイックチェック:あなたはシャーと一致していますか? (デバッグビルド対リリースビルド)は、 'application/json'として提供されているファイルです、それは有効ですか? –

答えて

2

unmentionedが、(例えば、およびSHAハッシュと個人用サイトを置き換える)、アプリへのリンクは、サーバーがパブリックまたは信頼できる認証局からの有効なSSL証明書を持っている必要があります。

https://www.thawte.com/で発行されたSSL証明書に切り替えると、アプリリンクの確認が正常に完了します。

関連する問題