2015-09-29 85 views
2

我試圖從iTunes下載具有有效URL的圖像 - 但該圖像未被下載。這裏是鏈接:無法從iTunes下載圖像作品

http://is5.mzstatic.com/image/thumb/Music7/v4/53/fc/a2/53fca253-84b1-f2cd-4e17-98be502ec53c/UMG_cvrart_00602547534873_01_RGB72_1500x1500_15UMGIM41882.jpg/60x60bb-85.jpg

現在,當我嘗試下載圖像,它返回NULL一些奇怪的原因:

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString: @"http://is5.mzstatic.com/image/thumb/Music7/v4/53/fc/a2/53fca253-84b1-f2cd-4e17-98be502ec53c/UMG_cvrart_00602547534873_01_RGB72_1500x1500_15UMGIM41882.jpg/60x60bb-85.jpg"]]; 

這僅發生於藝術品的iTunes鏈接。

(LLDB)PO的imageData

+0

的問題是與iOS 9: http://stackoverflow.com/questions/30720813/cfnetwork-sslhandshake-failed-ios-9 – etayluz

回答

3

我知道這是一段時間,但如果別人都在尋找一個解決這個...

在iOS系統9蘋果開始需要URL上的應用傳輸安全性。這意味着「http:」需要替換爲「https:」。

當你得到像artworkUrl60這樣的圖像URL時,它仍然是「http:」,因爲Apple不想破壞現有的應用程序。

合理的做法是用「https:」替換「http:」。

但這並不奏效!如果將它粘貼到瀏覽器中,它甚至不起作用,因爲mzstatic.com網站似乎沒有有效的證書。

解決方法是完全關閉ATS(不推薦)或白名單mzstatic.com。

開放的Info.plist並插入以下內容:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <false/> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>mzstatic.com</key> 
     <dict> 
      <!--Include to allow subdomains--> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <!--Include to allow HTTP requests--> 
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
     </dict> 
    </dict> 
</dict> 

這似乎是解決這個問題。

大衛

+0

我剛剛提出雷達27625853這一點。 –

+0

問題是,蘋果公司是否會接受,當提交到應用程序商店?這是我最關心的問題。 – Ken

+0

我有幾個應用程序進入App Store。這是解決這個問題和類似問題的標準解決方案。那是大約12個月前。今天不知道。 –