2017-06-06 39 views
1

當應用程序安裝時,我看到https://example.com/.well-known/apple-app-site-association的請求,該請求通過正確的json響應獲得200響應。通用深度鏈接在第一次嘗試時不會打開應用程序

奇怪的事情1:應用程序然後繼續嘗試請求/ apple-app-site-association,因爲文件不在根目錄中,所以失敗。爲什麼它會退回到這個文件,如果它已經有一個知名的文件?

應用程序完成開放後,我可以進入Notes或其他內容,然後單擊一個深層鏈接,例如https://example.com/some/path,這將在safari中打開。

奇怪的事情2:在Safari瀏覽器打開網站之前,有兩個.well-known/apple-app-site-association和/ apple-app-site-association的請求。我非常肯定,這個衆所周知的請求是第一位的,並且還有一個比我們知道的版本要多一個。

之後,我現在可以回到Notes並單擊深層鏈接,它現在將正確打開該應用程序。一切都與世界正確。

任何想法如果第一個衆所周知的響應導致它們無法工作併產生回退請求,可能會出現什麼錯誤?任何人有這個問題或任何想法?

以下是來自Charles(app安裝在11:24:18完成)的編輯屏幕截圖以及來自.well-known/apple-app-site-association的編輯響應。

enter image description here

HTTP/1.1 200 OK 
Content-Type: application/json 
Last-Modified: Tue, 06 Jun 2017 00:50:40 GMT 
Accept-Ranges: bytes 
ETag: "[redacted]" 
Content-Length: 156 
Connection: Keep-alive 

{ 
    "applinks": { 
     "apps": [], 
     "details": [ 
      { 
       "appID": "[redacted].com.[redacted]", 
       "paths": [ "*" ] 
      } 
     ] 
    } 
} 
+0

發生失敗請求時,控制檯出現錯誤:'6/6/17,12:02:09 pm swcd(CoreUtils)[180]:###拒絕URL'https://example.com /.well-known/apple-app-site-association'auth方法'NSURLAuthenticationMethodServerTrust':-6754/0xFFFFE59E kAuthenticationErr'這似乎指向TLS錯誤。 – David

回答

2

這是您遇到的問題,因爲您正在代理連接(使用Charles Proxy - 但任何代理都會導致此問題)。 Apple正在檢測連接是否被代理並且不信任下載的文件。

在實際情況下,您實際上不會遇到此問題,因爲您的用戶不會使用Charles Proxy。

+0

這完全正確。而且它也很完美。這是特別的SSL代理,只是通過查爾斯罰款。我代理的原因是試圖找出爲什麼它沒有工作 - 這一定是其他的東西(可能是不正確的應用程序ID前綴),從那以後就解決了。 – David

0

的iOS刮,每次兩個位置。如果兩個文件不匹配,我不確定是否有定義的首選順序,但是我知道在這種情況下會遇到奇怪的行爲。儘量避免它。

看起來確實有某種配置問題導致文件無法在首次嘗試時正確驗證。既然你已經編輯了所有可能讓我研究的細節,但不幸的是我在那裏幫不了什麼忙。

初始失敗後重新抓取鏈接點擊是新的 - 我以前沒有看到過。它必須是最近的補充,以幫助捕捉否則會導致Universal Link行爲損壞的情況(安裝期間的網絡擁塞等)。如果你能夠調試你的初始刮擦錯誤,這應該停止發生。

+0

感謝您的回覆。應用程序前綴和捆綁ID是絕對正確的,它最終會起作用。我拿出的唯一其他東西是ETag和一些來自我們網站的cookies。您希望在回覆中看到哪些其他信息?另外,我查看了啓動時的ios控制檯日誌(我將添加評論給任務),它似乎指向服務器上的TLS安裝問題。雖然SSL證書可以檢查出來 – David

+0

這聽起來像一個與通用鏈接本身無關的問題。你爲什麼要自己實現而不是使用託管深層鏈接提供程序的任何特定原因? –

+0

我們希望鏈接到我們的網站以在我們的應用程序中打開。 – David

相關問題