2017-09-01 41 views
0

我遇到了一個問題,即我的應用程序的一項功能使用戶能夠與其他用戶共享鏈接。一旦鏈接被共享,它就會顯示爲一個可點擊的視圖,其中包含關於相應網頁(來自HTML代碼中的開放圖形協議)的一些信息,例如標題,「主圖像」等。當網站使用HTTPS時。Swift - 無法從http鏈接獲取信息

然而,當僅使用HTTP,我發現了以下錯誤:

NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

感謝我的研究,我發現,解決的辦法是通過添加以下行來關閉應用傳輸安全info.plist:

<key>NSAppTransportSecurity</key> 
    <dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
    </dict> 

但是,在官方文檔中,指定Apple可能會拒絕使用此標記的任何應用程序。最好的解決方案是爲特定的域添加例外,但我不能真正猜測哪些鏈接將被共享...

您有任何解決方案嗎?

+0

我已經在我的應用程序中使用了那些plist設置,並且這個設置已經在昨天被批准了。因此,雖然蘋果可能不滿意它,你**可以**上傳和發佈應用程序 – Eric

回答

1

你可以使用這個開發沒有問題。我看到有人在提及他們已經使用這個應用程序商店發佈了應用程序。

生產解決方案是添加您需要訪問的特定主機而不是AllowsArbitraryLoads

當然,實際的答案是使用https而不是繞過ATS。

+0

我知道這一點,但問題是,我不是誰會選擇鏈接。用戶選擇他們想要分享的鏈接。因此,如果用戶與不使用HTTPS的網站共享鏈接,他們將無法做到這一點。 – Lantian