iOS从HTTP加载图像
可以从任何网站下载图像吗 我的问题是iOS从HTTP加载图像,ios,swift,app-transport-security,Ios,Swift,App Transport Security,可以从任何网站下载图像吗 我的问题是应用程序传输安全性,因为不可能在整个互联网上使用域异常,也不安全(可能被苹果禁止)绕过ATS HTTPS工作正常,但如果用户想从HTTP保存图像怎么办?这并不是禁止的,但在某个时候,苹果可能会要求您提供理由,说明为什么您使用ATS例外来降低应用程序的安全性 要允许HTTP连接到单个域(听起来像是您需要的),只需将以下内容添加到Info.plist <key>NSAppTransportSecurity</key> <dict>
应用程序传输安全性
,因为不可能在整个互联网上使用域异常,也不安全(可能被苹果禁止)绕过ATS
HTTPS工作正常,但如果用户想从HTTP保存图像怎么办?这并不是禁止的,但在某个时候,苹果可能会要求您提供理由,说明为什么您使用ATS例外来降低应用程序的安全性 要允许HTTP连接到单个域(听起来像是您需要的),只需将以下内容添加到Info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
NSAppTransportSecurity
NSExceptionDomains
yourdomain.com
n包括多个域
N异常低安全Http负载
N第三方异常低安全Http负载
关键是将异常限制在尽可能狭窄的范围内。在这种情况下,您将限制为仅允许与承载映像的服务器域的不安全(HTTP)连接 仅禁用ATS。禁用ATS不是禁止的。如果您的用例涉及从任意基于HTTP的站点下载图像,那么这样做实际上是您唯一的选择。在这里,单个域没有用处,因为例如,如果我的应用程序是照片拼贴,它将需要访问任何域。如果您事先不知道这些域(没有一个预定义的域列表,你可以从中提取图像,你必须完全禁用ATS。如果苹果问你为什么要禁用所有域的ATS,请准备好回答。我认为你可能有一个合理的理由,但只有苹果知道当他们开始执行规则时,他们会允许什么。)嘿,我在过去几年一直在谈论这个问题。我想没有解决办法。这完全取决于苹果的意愿和当前的规则。上面的代码可能会帮助某些人,所以我将把它作为一个答案。我不确定你所说的“没有解决办法”是什么意思。苹果有文件证明的解决方案是禁用ATS,并为您不能限制每个域的ATS例外提供理由。对此,您有答案,所以应该足够了。