2015-09-29 28 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个月前。今天不知道。 –