OS 9中默認(rèn)非HTTS的網(wǎng)絡(luò)是被禁止的,當(dāng)然我們也可以把NSAllowsArbitraryLoads設(shè)置為YES禁用ATS。不過(guò)iOS 10從2017年1月1日起蘋(píng)果不允許我們通過(guò)這個(gè)方法跳過(guò)ATS,也就是說(shuō)強(qiáng)制我們用HTTPS,如果不這樣的話提交App可能會(huì)被拒絕。但是我們可以通過(guò)NSExceptionDomains來(lái)針對(duì)特定的域名開(kāi)放HTTP可以容易通過(guò)審核。
1、首先需要后臺(tái)兼容ssl
2、需要在info.plist中刪除原有的兼容HTTPS的 App Transport Security Settings 中的 Allow Arbitrary Loads :YES 刪除
3、然后添加例外NSExceptionDomains
添加的域名為字典類型的 每個(gè)字典類型下面的key有三種NSIncludesSubdomains、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads。全都是BOOL類型的
- NSIncludesSubdomains是否允許子域名使用http YES 就是允許
- NSExceptionRequiresForwardSecrecy 這個(gè)添加例外的話一般都是設(shè)置為NO 的看要不然也沒(méi)有添加例外的必要了。
- NSExceptionAllowsInsecureHTTPLoads 是否允許在HTTPS環(huán)境下使用http 添加HTTP類外當(dāng)然YES
示例如下圖阿里云的服務(wù)器。只需要設(shè)置域名。而不是子域名。
注意 !圖片的域名如果是http的話也要添加例外的。要不然圖片是加載不出來(lái)的。
Paste_Image.png
如有疑問(wèn)歡迎交流。我會(huì)第一時(shí)間回復(fù)。